USB-C Environmental Sensor Node


  • Set Layout's boardColor to "Purple"
  • Set Layout's boardInsetMargin to "0.5mm"
  • Set Layout's keepOut to "0.2mm"
  • Set Layout's traceWidth to "0.25mm"
  • Set Layout's minTraceWidth to "0.2mm"
  • Set Layout's traceCornerRadius to "0.3mm"

Task unable to complete.

3:24

Checking 5 design areas.
Started: verifying U1 placement and restoring symmetric field.
Search "Which switches and diodes were removed from the or...".
Reading schematic details for U1.
Search project.
Search project.
Thought for 6 sec — Clarifying key count confusion
Work done
  • Set the layout to 150 mm x 100 mm landscape with 4 mm rounded corners and kept the 4-layer stackup.
  • Added four corner mounting holes: H1, H2, H3, and H4.
  • Applied the requested purple board finish and rechecked layout/ERC state.
  • Verified the current keyboard state: 44 switches and 44 diodes remain, ROW7_AUX still exists in the project, and the matrix is still incomplete.
Success criteria review
  • ✅ Board dimensions are now 150 mm x 100 mm in landscape orientation.
  • ❌ The top-edge USB-C is not yet centered/aligned with U1; U1 is still offset in the layout.
  • ✅ Corner mounting holes were added.
  • ❌ The symmetric key field is not restored; the project still has 44 keys instead of the intended restored field.
  • ✅ Purple finish was applied.
  • ❌ Final ERC/DRC is not clean: there are 170 airwires and 11 floating pins on U1.
Next steps I completed the mechanical baseline, but I cannot finish the remaining plan in this run because the available actions here do not include the required PCB component placement tool needed to accurately move U1, place the mounting holes into their final corner coordinates, and restore the symmetric key field in the layout before matrix cleanup. If that placement capability is made available, the next pass should: center U1 on the top edge USB datum, restore the missing top-row keys to reach the intended 50-key field, remove ROW7_AUX, reconnect the matrix, then clear the remaining ERC/DRC issues.
Add USB protection
Specify mount hole size
Set key spacing

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