Pads joined in soldermask layer in gerber files

Bug #1698457 reported by Emily Björk on 2017-06-16
22
This bug affects 4 people
Affects Status Importance Assigned to Milestone
KiCad
Medium
Seth Hillbrand

Bug Description

Application: pcbnew
Version: 4.0.6 release build
wxWidgets: Version 3.0.2 (debug,wchar_t,compiler with C++ ABI 1010,GCC 6.3.0,wx containers,compatible with 2.8)
Platform: Windows 8 (build 9200), 64-bit edition, 64 bit, Little endian, wxMSW
Boost version: 1.60.0
Curl version: libcurl/7.52.1 OpenSSL/1.0.2k zlib/1.2.11 libssh2/1.8.0 nghttp2/1.19.0 librtmp/2.3
         USE_WX_GRAPHICS_CONTEXT=OFF
         USE_WX_OVERLAY=OFF
         KICAD_SCRIPTING=ON
         KICAD_SCRIPTING_MODULES=ON
         KICAD_SCRIPTING_WXPYTHON=ON
         USE_FP_LIB_TABLE=HARD_CODED_ON
         BUILD_GITHUB_PLUGIN=ON

Reproducible on platforms: Windows 10 and Gentoo Linux confirmed (Kicad 4.0.4).

Steps to reproduce:
1. Create new layout in Pcbnew.
2. Add housings TQFP32 7x7mm 0.8mm pitch footprint from the standard library.
3. Rotate footprint by 45degrees
4. Set soldermask clearance to 0.05mm and minimum width to 0.15mm.
5. Plot to gerber.
6. Open the solder mask layer in gerber viewer.

Actual result: Several pads will have been joined in the soldermask layer.
Expected result: No pads are joined in the solder mask layer.

I believe that the issue is caused by a missing epsilon value when computing the soldermask on a rotated component. It so happens that the footprint has 0.55mm wide pads and 0.8mm pitch, if you add it up with the clearance and minimum width you get: 0.8mm === 0.55mm + 2*0.05mm + 0.15mm and I believe that it's a truncation error in the floating point math used to compute the final solder mask.

For now I'm working around it by using 0.0499999 solder mask clearance.

Jeff Young (jeyjey) on 2018-05-11
Changed in kicad:
importance: Undecided → Low
status: New → Triaged
Jeff Young (jeyjey) on 2018-12-10
Changed in kicad:
milestone: none → 6.0.0-rc1
importance: Low → Medium
Frank Severinsen (shack) wrote :

I just experienced this issue as well (in newest nightly). but for me it was simply a matter of setting the minimum width to something lower than 0.25mm. Some visualization of the joined soldermask in PCBNew and perhaps also the 3D viewer would be really handy as well. Should this be a seperate issue?

Nick Østergaard (nickoe) wrote :

Please add a test file such that it is easy to test.

tags: added: pcbnew
Jeff Young (jeyjey) wrote :

Note that while it would be nice to fix the rounding error, the "real" fix to this would be DFM checks, which we're tracking here: https://bugs.launchpad.net/kicad/+bug/1783093.

Frank Severinsen (shack) wrote :

@Jeff
I dont know if this should be a seperate bug, but could the minimum soldermask width be set to something lower by default? if a functioning board is made in V4 (which doesnt have the minimum width) and opened by V5 there will be 0.25mm minimum width which is not shown anywhere but the gerbers.

Seth Hillbrand (sethh) wrote :

@Frank- We already changed that in v5.0.1

Frank Severinsen (shack) wrote :

@Seth the default solder mask min width being 0.25 when importing V4? This seems to still be an issue

Seth Hillbrand (sethh) wrote :

Only applies to new projects. We don't change people's existing board settings.

Frank Severinsen (shack) wrote :

@Seth V4 projects doesn't have a solder mask min_width setting. So if we don't want to change peoples settings, we should set it to as close to zero as possible.

My problem was all my V4 ported boards which had worked fine before, suddently had the 0.25mm solder mask min width after porting to V5.

Seth Hillbrand (sethh) wrote :

Thanks Frank. I see that now. I'll check a fix later tonight. That was an oversight in lp:1786765

KiCad Janitor (kicad-janitor) wrote :

Fixed in revision 6421b15b83be7fb086528666e33d3662acff1c93
https://git.launchpad.net/kicad/patch/?id=6421b15b83be7fb086528666e33d3662acff1c93

Changed in kicad:
status: Triaged → Fix Committed
assignee: nobody → Seth Hillbrand (sethh)
Frank Severinsen (shack) wrote :

Thanks Seth

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers