Example boards layout and library fixes#519
Merged
Merged
Conversation
wow that was fast
There was a problem hiding this comment.
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 changedSwitchMatrixargument/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 on lines
+26
to
+28
| Parameters: | ||
| socket = "top" | "bottom": the contact side for the socket. | ||
| """ |
| self.ext = self.Block(Fpc050Bottom(self.length), external=True) | ||
| mirror = True | ||
| else: | ||
| raise ValueError(f"invalid ext_contact") |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Board layouts for the IoT fan / addressable strip driver, BLE joystick v2, and keyboard.
Library changes: