Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions PCB/GPIO_table.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,10 @@ board now, so the pin roles map over conceptually).
## Digital Inputs / Outputs
| Function | Pin | Notes |
|---|---|---|
| Vol up | 9 (GPIO16) | Internal pull-up, active low |
| Vol down | 10 (GPIO17) | Internal pull-up, active low |
| Vol up | 33 (GPIO40) | Internal pull-up, active low |
| Vol down | 32 (GPIO39) | Internal pull-up, active low |
| Trigger up (mirrored VOL pair, opposite-handed variant) | 9 (GPIO16) | Internal pull-up, active low |
| Trigger down (mirrored VOL pair, opposite-handed variant) | 10 (GPIO17) | Internal pull-up, active low |
| Digital trigger (bumper) | 11 (GPIO18) | Internal pull-up, active low |
| Thumbstick click (KEY) | 23 (GPIO21) | Internal pull-up, active low |
| Macro button 1-6 | 24, 25, 28, 29, 30, 31 (GPIO47, 48, 35, 36, 37, 38) | Internal pull-up, active low — direct-wired, no scan matrix |
Expand Down Expand Up @@ -212,6 +214,7 @@ exposed GPIO/ADC path with this sense pin.
---

## Spare GPIO
Pins 32-35 (GPIO39-42, default JTAG) — clean, no caveats.
Pins 34-35 (GPIO41-42, default JTAG) — clean, no caveats. Pins 32/33 from
the same JTAG group are now used by BTN_VOL_DN/BTN_VOL_UP.
Pins 15, 16, 26 (GPIO3/46/45) — usable, but strapping pins, best for a
static/non-boot-critical signal.
11 changes: 7 additions & 4 deletions PCB/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ files are organized.
| 22 (GPIO18) | XBee ON_SLEEP status input |

Usable with care (strapping pins, sampled at boot): 15 (GPIO3), 16 (GPIO46), 26 (GPIO45).
Clean spares (default JTAG): 32-35 (GPIO39-42).
Clean spares (default JTAG): 34-35 (GPIO41-42). 32/33 from the same group are used by BTN_VOL_DN/BTN_VOL_UP.

The module integrates the WiFi/BT radio, antenna, flash, and crystal
internally — no external wireless component, no bit-banged interface
Expand Down Expand Up @@ -84,8 +84,10 @@ consuming GPIO, unlike the bare-RP2350A design this replaced.
### Digital Inputs / Outputs
| Function | Pin | Notes |
|---|---|---|
| Vol up | 9 | Active low, internal pull-up |
| Vol down | 10 | Active low, internal pull-up |
| Vol up | 33 | Active low, internal pull-up |
| Vol down | 32 | Active low, internal pull-up |
| Trigger up (mirrored VOL pair, opposite-handed variant) | 9 | Active low, internal pull-up |
| Trigger down (mirrored VOL pair, opposite-handed variant) | 10 | Active low, internal pull-up |
| Digital trigger (bumper) | 11 | Active low, internal pull-up |
| Thumbstick click (KEY) | 23 | Active low, internal pull-up |
| Macro buttons 1-6 | 24, 25, 28, 29, 30, 31 | Active low, internal pull-up — direct-wired, no scan matrix |
Expand All @@ -102,7 +104,8 @@ give isn't worth the added complexity, unlike the bare-RP2350A design
(only 1 spare pin) this replaced.

### Spare GPIO
Pins 32-35 (default JTAG, clean) and 15/16/26 (strapping, usable with care).
Pins 34-35 (default JTAG, clean) and 15/16/26 (strapping, usable with care).
32/33 from the same JTAG group are used by BTN_VOL_DN/BTN_VOL_UP.

---

Expand Down
8 changes: 4 additions & 4 deletions PCB/mcu_core.kicad_sch
Original file line number Diff line number Diff line change
Expand Up @@ -1993,7 +1993,7 @@
)
(uuid "2c578b9f-32b5-49da-b54c-ae614d5ea8ed")
)
(hierarchical_label "BTN_VOL_DN"
(hierarchical_label "BTN_THR_DN"
(shape input)
(at 176.53 88.9 0)
(effects
Expand All @@ -2004,7 +2004,7 @@
)
(uuid "2cae71ff-5f43-4afa-b53d-1d801de4ec24")
)
(hierarchical_label "BTN_THR_DN"
(hierarchical_label "BTN_VOL_UP"
(shape input)
(at 237.49 93.98 0)
(effects
Expand All @@ -2015,7 +2015,7 @@
)
(uuid "356b22c9-cd73-4de0-92a9-18048200906c")
)
(hierarchical_label "BTN_VOL_UP"
(hierarchical_label "BTN_THR_UP"
(shape input)
(at 176.53 86.36 0)
(effects
Expand All @@ -2026,7 +2026,7 @@
)
(uuid "3c613379-d769-4570-ba38-e6d5760c17af")
)
(hierarchical_label "BTN_THR_UP"
(hierarchical_label "BTN_VOL_DN"
(shape input)
(at 237.49 91.44 0)
(effects
Expand Down
222 changes: 0 additions & 222 deletions PCB/oled.kicad_sch
Original file line number Diff line number Diff line change
Expand Up @@ -587,52 +587,6 @@
)
)
)
(global_label "3V3"
(shape passive)
(at 171.45 100.33 90)
(fields_autoplaced yes)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
(uuid "baf10e49-2327-45d5-8eb4-6359430a2396")
(property "Intersheetrefs" "${INTERSHEET_REFS}"
(at 171.45 100.33 0)
(hide yes)
(show_name no)
(do_not_autoplace no)
(effects
(font
(size 1.27 1.27)
)
)
)
)
(global_label "3V3"
(shape passive)
(at 142.24 100.33 90)
(fields_autoplaced yes)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
(uuid "cdfb3af5-bce8-4cab-9e93-634d8d6a89b9")
(property "Intersheetrefs" "${INTERSHEET_REFS}"
(at 142.24 100.33 0)
(hide yes)
(show_name no)
(do_not_autoplace no)
(effects
(font
(size 1.27 1.27)
)
)
)
)
(hierarchical_label "I2C_SCL"
(shape bidirectional)
(at 198.12 106.68 0)
Expand All @@ -655,28 +609,6 @@
)
(uuid "bab9a0b4-36ac-4f87-8e74-1f39fbb87f3a")
)
(hierarchical_label "I2C_SDA"
(shape bidirectional)
(at 142.24 107.95 90)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
(uuid "d85d7d35-e34b-407a-a42d-9a14b2322faf")
)
(hierarchical_label "I2C_SCL"
(shape bidirectional)
(at 171.45 107.95 90)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
(uuid "e8c3ff45-6594-4444-80f7-6b8269b7a7c5")
)
(symbol
(lib_id "SnipsControllers:SSD1306_OLED_4pin")
(at 214.63 105.41 0)
Expand Down Expand Up @@ -920,158 +852,4 @@
)
)
)
(symbol
(lib_id "Device:R")
(at 171.45 104.14 0)
(unit 1)
(body_style 1)
(exclude_from_sim no)
(in_bom yes)
(on_board yes)
(in_pos_files yes)
(dnp no)
(fields_autoplaced yes)
(uuid "62ff29d6-640f-491d-8e6b-d80c00185d74")
(property "Reference" "R_I2C_SCL1"
(at 173.482 104.14 90)
(show_name no)
(do_not_autoplace no)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Value" "4.7kΩ"
(at 171.45 104.14 90)
(show_name no)
(do_not_autoplace no)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Footprint" "Resistor_SMD:R_0402_1005Metric"
(at 169.672 104.14 90)
(show_name no)
(do_not_autoplace no)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Datasheet" ""
(at 171.45 104.14 0)
(show_name no)
(do_not_autoplace no)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Description" "Resistor"
(at 171.45 104.14 0)
(show_name no)
(do_not_autoplace no)
(effects
(font
(size 1.27 1.27)
)
)
)
(pin "1"
(uuid "b7176b9f-ff91-4823-a0af-ff8d638c84bb")
)
(pin "2"
(uuid "bf3d7a9e-c511-4b88-8f55-6e467d485e46")
)
(instances
(project "snips_controller"
(path "/21935953-32a0-46ad-8079-8177920c6978/ab30dd66-bbd7-4b32-bf8e-8b7d2bf83841"
(reference "R_I2C_SCL1")
(unit 1)
)
)
)
)
(symbol
(lib_id "Device:R")
(at 142.24 104.14 0)
(unit 1)
(body_style 1)
(exclude_from_sim no)
(in_bom yes)
(on_board yes)
(in_pos_files yes)
(dnp no)
(fields_autoplaced yes)
(uuid "dad5f9d9-b965-49cf-b467-256f0347621b")
(property "Reference" "R_I2C_SDA1"
(at 144.272 104.14 90)
(show_name no)
(do_not_autoplace no)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Value" "4.7kΩ"
(at 142.24 104.14 90)
(show_name no)
(do_not_autoplace no)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Footprint" "Resistor_SMD:R_0402_1005Metric"
(at 140.462 104.14 90)
(show_name no)
(do_not_autoplace no)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Datasheet" ""
(at 142.24 104.14 0)
(show_name no)
(do_not_autoplace no)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Description" "Resistor"
(at 142.24 104.14 0)
(show_name no)
(do_not_autoplace no)
(effects
(font
(size 1.27 1.27)
)
)
)
(pin "1"
(uuid "ba040091-dbd5-4cd3-b1b5-e391bc85c2c1")
)
(pin "2"
(uuid "7f671b16-fff0-40aa-bbee-9cb19c853c49")
)
(instances
(project "snips_controller"
(path "/21935953-32a0-46ad-8079-8177920c6978/ab30dd66-bbd7-4b32-bf8e-8b7d2bf83841"
(reference "R_I2C_SDA1")
(unit 1)
)
)
)
)
)
23 changes: 23 additions & 0 deletions PCB/snips_controller.kicad_dru
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
(version 1)

(rule "Alps SKRTLAE010 locating-peg clearance"
(constraint hole_clearance (min 0.08mm))
(condition "(A.Reference == 'SW_PWR1' || A.Reference == 'SW_VOL_UP1' || A.Reference == 'SW_VOL_DN1' || A.Reference == 'SW_THR_UP1' || A.Reference == 'SW_THR_DN1' || A.Reference == 'SW_TRIG_DIG1') && A.Reference == B.Reference")
)

(rule "XBee3 THT courtyard exception"
(constraint courtyard_clearance (min -1mm))
(condition "A.Reference == 'U_XBEE1' || B.Reference == 'U_XBEE1'")
)

(rule "BQ25185 thermal-pad via clearance"
(constraint clearance (min 0mm))
(constraint hole_clearance (min 0mm))
(condition "A.Reference == 'U_CHG1' && A.Reference == B.Reference")
)

(rule "BQ25185 thermal-pad via geometry"
(constraint hole_size (min 0.15mm))
(constraint annular_width (min 0.04mm))
(condition "A.Reference == 'U_CHG1'")
)
Loading
Loading