Solder mask aperture bridges items with different nets

Diagnostic signature

Solder mask aperture bridges items with different nets

A DRC violation in KiCad indicating that a single continuous solder mask opening exposes multiple copper items belonging to different nets. This lack of a solder mask dam between the items increases the risk of solder bridging and short circuits during assembly.

What it means

The `solder_mask_bridge` diagnostic in KiCad indicates that a continuous gap or hole in the solder mask exposes multiple separate copper areas that belong to different electrical nets. A solder mask is typically designed to cover the spaces between adjacent traces and pads, providing an insulating barrier (often called a solder mask dam or web) that prevents solder from unintentionally joining them. When the mask openings for adjacent elements merge, this protective barrier is eliminated. Consequently, there is an increased risk that solder will flow across the gap during reflow or wave soldering, creating a short circuit between the different nets.

Why it happens

KiCad emits this warning when the geometric expansion of the solder mask around copper items causes their respective apertures to overlap. This typically happens when the global or footprint-specific "Solder mask expansion" setting is larger than half the physical distance separating two pads of different nets. It can also be triggered if the "Minimum solder mask web width" constraint in the board setup is larger than the remaining mask strip between two items, causing the software to merge the apertures instead of generating an unmanufacturable thin sliver of mask. Additionally, drawing custom overlapping graphical shapes on the `F.Mask` or `B.Mask` layers that intersect multiple items of different nets will explicitly cause this violation.

Minimal reproduction

(kicad_pcb (version 20240108) (generator "pcbnew")
  (setup
    (solder_mask_expansion 0.15)
  )
  (net 1 "Net-(J1-Pad1)")
  (net 2 "GND")
  (footprint "Test:Pad_1" (layer "F.Cu") (pos 0 0)
    (pad "1" smd rect (at 0 0) (size 1 1) (layers "F.Cu" "F.Mask") (net 1 "Net-(J1-Pad1)"))
  )
  (footprint "Test:Pad_2" (layer "F.Cu") (pos 1.2 0)
    (pad "1" smd rect (at 0 0) (size 1 1) (layers "F.Cu" "F.Mask") (net 2 "GND"))
  )
)

How to fix it

Reduce the solder mask expansion value or decrease the minimum solder mask web width in the board settings to restore an insulating barrier between the copper items, or increase the physical clearance between the affected components.

```kicad-pcb
(kicad_pcb (version 20240108) (generator "pcbnew")
  (setup
    (solder_mask_expansion 0.0)
  )
  (net 1 "Net-(J1-Pad1)")
  (net 2 "GND")
  (footprint "Test:Pad_1" (layer "F.Cu") (pos 0 0)
    (pad "1" smd rect (at 0 0) (size 1 1) (layers "F.Cu" "F.Mask") (net 1 "Net-(J1-Pad1)"))
  )
  (footprint "Test:Pad_2" (layer "F.Cu") (pos 1.2 0)
    (pad "1" smd rect (at 0 0) (size 1 1) (layers "F.Cu" "F.Mask") (net 2 "GND"))
  )
)
```

Step 1

Step 2

Step 3

Step 4

Step 5

Upstream references

DRC flags Front solder mask aperture bridges items with different nets for connected Rectangle and Lines added to a PCB from a footprint (#18213) · Issue - GitLab

"Rear solder mask aperture bridges items with different nets" comes back after being excluded from DRC (#14217) · Issue - GitLab

DRC flags aperture bridging error for mask aperture over graphical copper item (rectangle, circle, non-assigned zone) (#10922) · Issue · kicad/code/kicad - GitLab