Incorrect routing between ground area and SMD pads

Hi,

I would like to know why KiCad won’t detect grounded pads when filling a ground area, even though they are part of a grounded die pad.
In the following example, I am using a SON50P300X300X100-11N footprint which die pad has four grounded pads (not part of the official pinout). When filling the ground area, Kicad only detects the die pad as grounded, but not the four pads, resulting in one track added between those pads.
I tried adding two vias on the pads, as well as one a track (highlighted in the screenshot) but this didn’t help.

My KiCad version:

Application: KiCad PCB Editor x64 on x64

Version: 8.0.6, release build

Libraries:
wxWidgets 3.2.6
FreeType 2.13.2
HarfBuzz 9.0.0
FontConfig 2.14.2
libcurl/8.8.0-DEV Schannel zlib/1.3.1

Platform: Windows 10 (build 19045), 64-bit edition, 64 bit, Little endian, wxMSW

Build Info:
Date: Oct 14 2024 01:02:33
wxWidgets: 3.2.6 (wchar_t,wx containers)
Boost: 1.85.0
OCC: 7.8.1
Curl: 8.8.0-DEV
ngspice: 43
Compiler: Visual C++ 1939 without C++ ABI

SONP300X300X100-11N

The most likely answer, without seeing the project, is that your Filled Zone is not on the same “GND” . . . do you have multiple GND nets ? or it might be that you haven’t refilled the zones, have you tried the B hotkey ?

Another option is that the zone itself is set to not connect to pads, but more likely is that there is some problem with how the footprint itself is defined. The name of your footprint does not fall into a pattern of how KiCad names footprints, and footprints from external sources are often not completely compatible with KiCad.

For a better diagnosis, make a small test project which uses this footprint, add something simple such as a few resistors so there is something to connect to, and then zip up and upload the project, so we can have a look at it.

Yes, I tried re-filling using Shift-B but this didn’t change anything.

Sure, will upload that later today.

Ahhhhh . . . you have set the zone to have thermal relief ? turn that to solid and re-fill.

image

For me it looks like it being made as a single pad so only one set of thermal connections is made.

Can you confirm that solid connection is never a problem for reflow soldering. I suppose it is not but I just have some doubts because you heat PCB to 160° and then for very short time to may be 250°. Do the zone being at 160° gets high temperature as fast as element pads?

I need thermal reliefs.
Since KiCad finds the die pad when filling the area, it would be nice if it could detect when portions of that pad exceed the main rectangle, and use the said portions (here, the four pads) to link to the area being filled.
Right now, filling adds a track that can’t be removed.

I suppose that having them defined (in footprint definition) as separate pads KiCad will connect them as you wish. Center pad can have its Pad connection set to None and there will be no those tracks you don’t want.
Just experiment yourself with it.

I checked the footprint. The die pad and is four pads are part of a same polygon.
Here’s a small test project with the footprint.
TEST.zip (32.4 KB)

Would have helped if you had said this at the beginning . . . I assumed you wanted the fill to connect to the thermal pad.

I have looked into your zip-file. Like you have lately discovered (and Piotr already guessed) the thermal pad consists of only one pad (central pad + custom polygone). Kicad connects every pad with the same number of thermal spokes (if possible).
There is no AI which guesses “I think this polygone pad has some obstacles/fingers, let’s add some additional thermal spokes”.

If you want more automatic generated thermal spokes:

  • just add some manual drawn tracks
  • in the FP-editor add some additional pads on the outer tips of the polygone fingers (see
    test_FP2.zip (46.3 KB)
    , modified FP on the right)

additional remarks:

  • use this footprint carefully. The designer of this FP has drawn the openenings on the mask-layer as individual objects and with roughly 0,075um expansion value for this mask openings.
  • normally a thermal pad is used to dissipate the heat from the integrated circuit into the pcb gnd-plane. If you connect the pad only with thermal spokes this heat transfer is reduced - you should not run the ic with full power requirements.

This does not make sense for this footprint.

But if you insist. KiCad’s automatic thermal reliefs work nicely for the “easy cases”, and as mf_ibfeew mentioned, this is far beyond that. So just draw the shape in form you want. Drawing some tracks is the obvious way, as an alternative you can use graphic shapes. Graphic shapes do not get modified like copper zones, and always keep the form in which you draw them.

2 Likes

(post deleted by author)

Thanks a lot for your updated example. I didn’t think about the obvious workaround consisting in adding pads with the same pin number. They are now connected to the filled area, despite the remaining track between them. What would be interesting is the possibility of deleting unwanted connections after filling an area.

The four die pad vias are present on the real project (you can see two on the initial screenshot).

Of course it doesn’t make sense for this footprint ! But on the pcb I’m working on, the ground area covers larger holes which definitely need thermal reliefs. I finally override the footprint connections by disabling thermal reliefs. After all the four die pads are enough in this case.

And after each zone refilling you will be deleting unwanted connections and you will be not using “Check zone fills before plotting”.
In my opinion current solution is enough good - set for selected pad “Pad connection” to None.

Sorry, but don’t blame others for your mistake.
At picture in first post you see zone being connected to thermal pad by regular zone thermal relief connection.