Skip to content

Example boards layout and library fixes#519

Merged
ducky64 merged 93 commits into
masterfrom
iot-fan-layout
Jun 17, 2026
Merged

Example boards layout and library fixes#519
ducky64 merged 93 commits into
masterfrom
iot-fan-layout

Conversation

@ducky64

@ducky64 ducky64 commented Jun 17, 2026

Copy link
Copy Markdown
Collaborator

Board layouts for the IoT fan / addressable strip driver, BLE joystick v2, and keyboard.

Library changes:

  • Add PMOS only load switch
  • Changes the keyboard switchmatrix args to be ncols first (x dimension) and for internal switch ordering (which matters for refdesing) to advance along a row
  • Add option to flip sense resistor in INA219. Not used.
  • Change INA219 to use sense_pwr_in and sense_pwr_out, for consistency.
  • Add 2mm header, socket, and socket-pair
  • Split out JST and Molex connectors

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates several example boards (USB source/measure, BLE joystick v2, keyboard, IoT fan, desk controller) with new layouts/netlists, while also evolving the core library to add connector variants and improve consistency in sensor and switch-matrix APIs.

Changes:

  • Updated multiple example PCB layouts/netlists (svgpcb outputs + KiCad project settings) and corresponding Python board definitions/refinements.
  • Library updates: added a PMOS-only LoadSwitch, updated INA219 sense port naming (sense_pwr_in/out) with optional sense flip, and changed SwitchMatrix argument/order semantics.
  • Added/organized connector parts: 2.00mm headers/sockets and split JST/Molex connector definitions; added an FPC “tab” footprint for subboards.

Reviewed changes

Copilot reviewed 42 out of 50 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
examples/UsbSourceMeasure/UsbSourceMeasure.svgpcb.js Layout/netlist update; rename INA219 sense net to sense_pwr_in.
examples/UsbSourceMeasure/UsbSourceMeasure.net.ref Netlist reference updated for renamed INA219 sense net.
examples/test_usb_source_measure.py Updated to use sense_pwr_in/out instead of sense_pos/neg.
examples/test_keyboard.py Updated SwitchMatrix dimensions + OLED wiring change to I2C and explicit pin naming.
examples/test_iot_fan.py Added extra GPIO/connector changes; updated power tree; still has one deprecated INA219 alias use (commented).
examples/test_ble_joystick.py Added FPC socket/tab pairing helper; updated power gating + load switches; still has one deprecated INA219 alias use (commented).
examples/prerouted_blocks/.gitignore Ignore KiCad project files under prerouted blocks.
examples/Keyboard/Keyboard.svgpcb.js Keyboard layout/netlist regenerated for new switch-matrix ordering and I2C OLED wiring.
examples/Keyboard/Keyboard.kicad_pro KiCad project design-rule/settings tweaks for Keyboard example.
examples/IotFan/IotFan.svgpcb.js IoT fan layout/netlist regenerated (connectors, regulators, amp changes).
examples/IotFan/IotFan.kicad_pro KiCad project design-rule/settings tweaks for IoT fan.
examples/IotFan/IotFan_control.kicad_pro New KiCad project for IoT fan control sub-board.
examples/edg.pretty/RotaryEncoder_Alps_EC11J15-Switch.kicad_mod Footprint UUID + NPTH geometry adjustments.
examples/edg.pretty/FpcTab_1x08_P0.50mm.kicad_mod New custom FPC “tab” footprint for subboard mating.
examples/DeskController/DeskController.svgpcb.js Netlist regenerated to reflect switch-matrix ordering changes.
examples/DeskController/DeskController.net.ref Netlist reference updated for switch-matrix ordering changes.
examples/BleJoystick/BleJoystick.svgpcb.js BLE joystick layout/netlist regenerated (connectors, load switches, testpoints, etc).
examples/BleJoystick/BleJoystick.net.ref BLE joystick netlist reference regenerated for the updated design.
examples/BleJoystick/BleJoystick.kicad_pro KiCad project design-rule/settings tweaks for BLE joystick.
examples/BleJoystick/BleJoystick_stick.net.ref Stick subboard netlist updated to use the FPC tab footprint/pinning.
examples/BleJoystick/BleJoystick_stick.kicad_pro New KiCad project for BLE joystick stick sub-board.
examples/BleJoystick/BleJoystick_btns.kicad_pro New KiCad project for BLE joystick buttons sub-board.
examples/BasicKeyboard/BasicKeyboard.svgpcb.js Netlist regenerated to reflect switch-matrix ordering changes.
examples/BasicKeyboard/BasicKeyboard.net.ref Netlist reference updated for switch-matrix ordering changes.
edg/parts/connector/Molex.py New Molex connector definitions (PicoBlade + SL).
edg/parts/connector/Jst.py New JST connector definitions (XH/PH/SH) split out of Headers.
edg/parts/connector/Headers.py Added 2.00mm header/socket + pair generator; removed JST/Molex from this file.
edg/parts/connector/Connectors.py Updated import to JST SH connector from new module.
edg/parts/connector/init.py Re-export new connector classes (2mm + JST + Molex modules).
edg/parts/analog/opamp/Ina219.py INA219 API change to sense_pwr_in/out, generator-based optional sense-flip, deprecation shims.
edg/circuits/SwitchMatrix.py SwitchMatrix arg order swapped + internal cell generation order changed.
edg/circuits/DigitalAmplifiers.py Added LoadSwitch block.
edg/circuits/init.py Re-export LoadSwitch from circuits package.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread examples/test_iot_fan.py Outdated
Comment thread examples/test_iot_fan.py Outdated
Comment thread examples/test_ble_joystick.py Outdated
Comment on lines +26 to +28
Parameters:
socket = "top" | "bottom": the contact side for the socket.
"""
Comment thread examples/test_ble_joystick.py Outdated
self.ext = self.Block(Fpc050Bottom(self.length), external=True)
mirror = True
else:
raise ValueError(f"invalid ext_contact")
Comment thread edg/parts/connector/Jst.py Outdated
Comment thread edg/parts/connector/Molex.py Outdated
@ducky64 ducky64 merged commit 3fc9d5d into master Jun 17, 2026
12 checks passed
@ducky64 ducky64 deleted the iot-fan-layout branch June 17, 2026 05:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants