Chat

Welcome to Flux

Treat Flux like your intern. Tell it what you'd like to build and it'll get to work. You can also ask it questions, brainstorm ideas, and teach it your preferences. Learn More

Explain project
Write a project description
Find schematic issues
Create a test plan
Simulate a circuit
Prepare for Manufacturing
Component Selection Workflow
New Subsystem Wizard
Write I2C initialization code
Generate firmware skeleton

Refine this doc
Ask about this doc
KYB1 Dome Pad Import Blocker
Status
Blocking PCB routing and manufacturing export.
The exact historical metal-dome footprint imports successfully and can be placed, but Flux currently interprets its two electrically separate contact regions as overlapping pins on different nets. Auto-routing cannot proceed safely because its preflight removes the affected switch pins from their nets.
Affected design
  • Product: Black Magick Heavy Industries KYB1
  • Model: BLKMGK-KYB1-BASIC
  • Affected part: Metal_Dome_Oblong_5x4mm
  • Part project: https://www.flux.ai/samfm/metaldomeoblong5x4mm~rl
  • Instances affected: SW1–SW69
  • Source format: KiCad .kicad_sym + .kicad_mod
Correct source geometry
The footprint is a normally-open PCB contact intended for a conductive snap dome. The two copper contacts must remain electrically isolated until the metal dome is pressed.
Contact 1 — center electrode
  • Pad number: 1
  • SMD copper: circle, 2.5 mm diameter
  • Local position: (0, 0)
  • Layers: F.Cu, F.Mask
  • Additional same-net plated via:
    • Local position: (0, -0.7 mm)
    • Pad diameter: 1.0 mm
    • Drill: 0.6 mm
    • Layers: all copper
Contact 2 — curved outer electrode
  • Pad number: 2
  • Type: KiCad custom SMD pad
  • Anchor position: (0, -2.5 mm)
  • Anchor size: 0.9 × 0.9 mm
  • Layers: F.Cu, F.Mask
  • Orientation: 90 degrees
  • Arc primitive width: 0.9 mm
  • Arc points, in the custom pad's local coordinates:
    • Start: (-0.68, -1.85)
    • Mid: (0.001473, 0.022459)
    • End: (-0.709409, 1.883951)
The custom-pad primitive coordinates must be transformed relative to the pad-2 anchor and rotation. They must not be interpreted as component-origin coordinates or collapsed onto pad 1.
Copper-pour keepout
Each dome has an F.Cu footprint-local keepout permitting tracks, vias, pads, and footprints but prohibiting copper pours. Approximate vertices relative to the footprint origin:
  1. (0, -2.600001)
  2. (2.35, -1.8)
  3. (2.349999, 1.85)
  4. (0, 2.65)
  5. (-2.35, 1.8)
  6. (-2.35, -1.8)
Observed Flux behavior
  1. The combined KiCad symbol and footprint import reports success.
  2. All 69 instances retain their schematic connections and PCB centers.
  3. PCB/router preflight reports DRC_OVERLAPPING_PINS_DIFFERENT_NETS for pad 1 and pad 2 on every switch.
  4. Example:
    • SW1:1 is on COL0
    • SW1:2 is on KEY_01
    • Flux reports the two pins as physically overlapping.
  5. Preflight states that the pins will be removed from their respective nets.
  6. Therefore routing would corrupt or omit all 69 switch connections.
This is not an intentional copper overlap. The historical KiCad PCB uses the footprint successfully as a normally-open metal-dome contact.
Reproduction procedure
  1. Import the provided Metal_Dome_Oblong_5x4mm.kicad_sym and Metal_Dome_Oblong_5x4mm.kicad_mod together.
  2. Place one instance on a PCB.
  3. Connect pad 1 and pad 2 to different nets.
  4. Run PCB DRC or auto-route preflight.
  5. Observe DRC_OVERLAPPING_PINS_DIFFERENT_NETS between pads 1 and 2.
The same behavior occurs across all 69 KYB1 switch instances.
Likely import defect
The importer or PCB geometry engine appears to mishandle one or more of:
  • Custom-pad primitive coordinates relative to the pad anchor
  • The custom pad's 90-degree rotation
  • Arc primitive bounding geometry
  • Duplicate same-number SMD and through-hole pads for contact 1
  • Footprint-local copper keepout parsing
The most likely issue is that the pad-2 arc primitive is transformed around the component origin instead of its pad anchor, causing its effective collision geometry to overlap pad 1.
Required Flux fix
Flux needs to preserve KiCad custom-pad transforms exactly:
  1. Apply custom primitives relative to the custom pad anchor.
  2. Apply the pad's local rotation before applying footprint rotation/translation.
  3. Compute collision and DRC geometry from the transformed arc stroke—not from an oversized anchor or incorrect bounding box.
  4. Preserve duplicate same-number pad/via geometry as one terminal without merging it with pad 2.
  5. Preserve the footprint-local copper-pour keepout.
  6. Keep terminal-to-pad net binding stable for both contacts.
Acceptance criteria
The issue is resolved when:
  • A single imported dome footprint shows visible separation between contacts 1 and 2.
  • Pad 1 and pad 2 may be assigned to different nets without an overlap violation.
  • The 0.6 mm plated via remains electrically part of pad 1.
  • The curved pad-2 electrode matches the original KiCad geometry and orientation.
  • The local copper-pour keepout is present and blocks fills only.
  • Auto-route preflight no longer reports DRC_OVERLAPPING_PINS_DIFFERENT_NETS for SW1–SW69.
  • Routing preserves all 138 switch terminal connections.
  • Gerber output matches the source footprint when overlaid or dimensionally compared.
Project impact
Until this is fixed:
  • PCB routing is blocked.
  • Matrix functionality cannot be validated in routed copper.
  • Final DRC cannot pass.
  • Gerber, drill, assembly, and editable KiCad manufacturing packages cannot be finalized safely.
No routing should be attempted by ignoring the warning because preflight explicitly removes the affected pins from their nets.
  • Status

  • Affected design

  • Correct source geometry

  • Contact 1 — center electrode

  • Contact 2 — curved outer electrode

  • Copper-pour keepout

  • Observed Flux behavior

  • Reproduction procedure

  • Likely import defect

  • Required Flux fix

  • Acceptance criteria

  • Project impact

Black Magick Heavy Industries - KYB1 thumbnail
Black Magick Heavy Industries KYB1 programmable wireless keyboard, model BLKMGK-KYB1-BASIC, featuring a 69-key layout, XIAO ESP32-C5 controller, Seeed Studio Wio-SX1262 LoRa/Wi-Fi module, configurable RGB backlighting, microSD storage, dual USB-C interface

Properties

Pricing & Availability

Distributor

Qty 1

Arrow

$9.54–$14.41

Digi-Key

$5.21–$5.25

HQonline

$9.94–$10.02

LCSC

$19.51–$19.67

Mouser

$27.72–$27.93

TME

$1.23–$1.35

Verical

$8.39–$37.36

Controls