Pads joined in soldermask layer in gerber files

Bug #1698457 reported by Emily Björk
22
This bug affects 4 people
Affects Status Importance Assigned to Milestone
KiCad
Fix Committed
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.

Tags: pcbnew
Jeff Young (jeyjey)
Changed in kicad:
importance: Undecided → Low
status: New → Triaged
Jeff Young (jeyjey)
Changed in kicad:
milestone: none → 6.0.0-rc1
importance: Low → Medium
Revision history for this message
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?

Revision history for this message
Nick Østergaard (nickoe) wrote :

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

tags: added: pcbnew
Revision history for this message
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.

Revision history for this message
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.

Revision history for this message
Seth Hillbrand (sethh) wrote :

@Frank- We already changed that in v5.0.1

Revision history for this message
Frank Severinsen (shack) wrote :

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

Revision history for this message
Seth Hillbrand (sethh) wrote :

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

Revision history for this message
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.

Revision history for this message
Seth Hillbrand (sethh) wrote :

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

Revision history for this message
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)
Revision history for this message
Frank Severinsen (shack) wrote :

Thanks Seth

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

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.