Hardware: connection table + KiCad netlist
docs/hardware-plan.md §11: authoritative connection table (refdes, all nets by block — power, RM2 radio, USB/flash/SWD, CV DAC, 8 bipolar CV channels, MIDI TRS, display/UI/keypad, spares). hardware/netlist.net: machine-importable KiCad netlist (S-expr format) derived from the table — components with footprints + all nets/pins. Import: KiCad > File > Import Non-KiCad Netlist (or open as a netlist to populate a board). Pins are logical (GPIO names, DAC/op-amp function names); map physical QFN pins when placing footprints.
This commit is contained in:
@@ -200,3 +200,142 @@ Host PCB responsibilities (from the RM2 datasheet):
|
||||
7. OLED + buttons.
|
||||
8. Keypad header (the Pimoroni keypad connects via a header or is integrated).
|
||||
9. PCB layout, DRC, review, fab.
|
||||
|
||||
## 11. Connection table (netlist source of truth)
|
||||
|
||||
Reference designators and net membership. RP2040 pins are logical GPIO names
|
||||
(map to physical QFN pins in KiCad). A machine-importable KiCad netlist lives
|
||||
at `hardware/netlist.net`.
|
||||
|
||||
### Reference designators
|
||||
|
||||
| Ref | Part | Role |
|
||||
|-----|------|------|
|
||||
| U1 | RP2040 | MCU |
|
||||
| U2 | W25Q32JV | flash |
|
||||
| MOD1 | RM2 (RMC20452T) | BLE/WiFi radio |
|
||||
| U3 | RT6150B-33 | 3.3 V buck |
|
||||
| U4 | TPS61088 | +12 V boost |
|
||||
| U5 | TPS63700 | −12 V inverter |
|
||||
| U6 | REF3040 | 4.096 V DAC reference |
|
||||
| U7 | REF2040 | 2.048 V bipolar mid-reference |
|
||||
| U8 | DAC8568 | 8-ch 16-bit SPI DAC |
|
||||
| U9, U10 | OPA4192 | quad RRO op-amp ×2 (8 CV channels) |
|
||||
| U11 | 6N138 | MIDI-in optocoupler |
|
||||
| DISP1 | SSD1306 | 64×32 OLED (I2C) |
|
||||
| J1 | USB-C | 5 V + USB data |
|
||||
| J2 | 2×3 header | SWD (Picoprobe) |
|
||||
| J3, J4 | 3.5 mm TRS | MIDI in / out |
|
||||
| J5–J8 | 3.5 mm TRS | 4× stereo CV out |
|
||||
| J9 | 2×5 header | Pimoroni keypad |
|
||||
| SW1–SW4 | tact | UI (Up/Down/Select/Back) |
|
||||
| FB1 | polyfuse | 5 V input protection |
|
||||
| L1, L2 | inductors | boost/inverter LC filters |
|
||||
| D1–D8 | bidirectional TVS | CV output protection |
|
||||
| R_cal1–R_cal8 | — | per-channel calibration (see §4) |
|
||||
|
||||
### Power nets
|
||||
|
||||
```
|
||||
J1.VBUS ── FB1 ── +5V
|
||||
+5V ── U3 (RT6150B-33) ── +3V3
|
||||
+5V ── U4 (TPS61088) + L1 LC ── +12V
|
||||
+5V ── U5 (TPS63700) + L2 LC ── −12V
|
||||
+3V3 ── U6 (REF3040) ── VREF4V096
|
||||
+3V3 ── U7 (REF2040) ── VMID2V048
|
||||
GND = J1.GND, all return paths
|
||||
```
|
||||
|
||||
### RM2 radio (Pico-W-compatible gSPI)
|
||||
|
||||
```
|
||||
MOD1.CLK ── U1.GPIO29 (PIO0 SPI CLK)
|
||||
MOD1.DAT ── U1.GPIO24 (PIO0 SPI DOUT/MOSI)
|
||||
MOD1.CS ── U1.GPIO25 (output, CS)
|
||||
MOD1.PWR ── U1.GPIO23 (output, power enable)
|
||||
MOD1.IO0 ── (onboard LED, CYW43 WL_GPIO0 — status)
|
||||
MOD1.VDD ── +3V3
|
||||
MOD1.GND ── GND
|
||||
MOD1 bus driven by U1 PIO0 + DMA CH0/CH1 (firmware copies Pico W)
|
||||
```
|
||||
|
||||
### USB + flash + SWD
|
||||
|
||||
```
|
||||
J1.DP ── U1.GPIO15 (USB_DP)
|
||||
J1.DM ── U1.GPIO14 (USB_DM)
|
||||
U2.CS ── U1.QSPI_CS
|
||||
U2.CLK ── U1.QSPI_SCK
|
||||
U2.DQ0 ── U1.QSPI_SD0 ... DQ3 ── SD3 (QSPI flash)
|
||||
U2.VDD ── +3V3
|
||||
J2.SWDIO ── U1.SWDIO J2.SWCLK ── U1.SWCLK J2.GND ── GND
|
||||
```
|
||||
|
||||
### CV DAC (SPI1)
|
||||
|
||||
```
|
||||
U8.SCLK ── U1.GPIO10
|
||||
U8.DIN ── U1.GPIO11
|
||||
U8.CS ── U1.GPIO13 (output)
|
||||
U8.LDAC ── U1.GPIO20 (output, immediate-update / strobe)
|
||||
U8.RSTB ── U1.GPIO21 (output, reset)
|
||||
U8.VREF ── VREF4V096
|
||||
U8.VDD ── +3V3
|
||||
U8.VSS ── GND
|
||||
U8.VOUTA..VOUTH ── 8 CV difference-amp inputs (see below)
|
||||
```
|
||||
|
||||
### CV analog (8 channels, bipolar ±10 V)
|
||||
|
||||
Per channel n (n=1..8): subtractor `Vout = (Rfb/Rin)*(Vdac − VMID2V048)`,
|
||||
Rin=10.0 k, Rfb=48.7 k (ratio 4.87 → ±9.98 V span; firmware calibrates exact).
|
||||
One op-amp = 1/4 of an OPA4192 (U9 = ch1-4, U10 = ch5-8).
|
||||
|
||||
```
|
||||
Channel 1 (J5.tip = pitch, J5.ring = gate):
|
||||
U8.VOUTA ── Rin1a ── U9.1IN- ; Vdac into subtractor V-
|
||||
VMID2V048 ── Rin1b ── U9.1IN+ ; mid-ref into V+
|
||||
U9.1OUT ── Rfb1 ── U9.1IN- ; feedback
|
||||
Rgnd1 (48.7k) ── U9.1IN+ ── GND ; balance resistor
|
||||
U9.1OUT ── Rser1 (1k) ── D1 ── J5.tip
|
||||
U9.1OUT ── (rail) +12V / −12V ; OPA4192 supply
|
||||
Channel 2 (J5.ring): U8.VOUTB → U9.2... → J5.ring
|
||||
...channels 3,4 → U9.3/4 → J6.tip/ring
|
||||
...channels 5-8 → U10.1-4 → J7.tip/ring, J8.tip/ring
|
||||
```
|
||||
Pattern repeats: VOUTx → Rin → subtractor → Rfb feedback, Rgnd on V+, output
|
||||
→ 1 k series → TVS → TRS tip/ring. U9/U10 V+ = +12 V, V− = −12 V.
|
||||
|
||||
### MIDI TRS (3.5 mm, TRS-A)
|
||||
|
||||
```
|
||||
MIDI in (J3):
|
||||
J3.tip ── R_lim (220Ω) ── U11.LED-A (6N138 anode)
|
||||
U11.LED-K ── J3.ring
|
||||
U11.OC-collector ── +3V3 via R_pull (1k) ── U1.GPIO1 (UART0 RX)
|
||||
U11.OC-emitter ── GND
|
||||
U11.base ── 1N4148 + 1k speed-up ── GND/+3V3 (per 6N138 app note)
|
||||
MIDI out (J4):
|
||||
U1.GPIO0 (UART0 TX) ── R_lim (220Ω) ── J4.tip
|
||||
J4.ring ── +3V3
|
||||
```
|
||||
|
||||
### Display + UI + keypad
|
||||
|
||||
```
|
||||
DISP1.SDA ── U1.GPIO2 (I2C1 SDA) DISP1.SCL ── U1.GPIO3 (I2C1 SCL)
|
||||
DISP1.VDD ── +3V3 DISP1.GND ── GND
|
||||
SW1 ── U1.GPIO6 SW2 ── U1.GPIO7 SW3 ── U1.GPIO8 SW4 ── U1.GPIO9
|
||||
(each SW: other side to GND; internal pull-up)
|
||||
Keypad header J9 (Pimoroni RGB Keypad):
|
||||
J9.SDA ── U1.GPIO4 (I2C0 SDA) J9.SCL ── U1.GPIO5 (I2C0 SCL)
|
||||
J9.CS ── U1.GPIO17 J9.SCK ── U1.GPIO18 J9.MOSI ── U1.GPIO19
|
||||
J9.VDD ── +3V3 J9.GND ── GND
|
||||
```
|
||||
|
||||
### Spare GPIOs
|
||||
|
||||
```
|
||||
U1.GPIO16, GPIO22, GPIO26, GPIO27, GPIO28 ── unassigned (status LEDs / analog in / future)
|
||||
```
|
||||
|
||||
|
||||
@@ -0,0 +1,520 @@
|
||||
(export (version "E")
|
||||
(components
|
||||
(comp (ref "U1") (value "RP2040") (footprint "MCU_RaspberryPi:RP2040_QFN-56"))
|
||||
(comp (ref "U2") (value "W25Q32JV") (footprint "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm"))
|
||||
(comp (ref "MOD1") (value "RM2_RMC20452T") (footprint "RF_Module:RaspberryPi_RM2"))
|
||||
(comp (ref "U3") (value "RT6150B-33GQW") (footprint "Package_DFN_QFN:DFN-10-1EP_2x2mm_P0.5mm"))
|
||||
(comp (ref "U4") (value "TPS61088") (footprint "Package_DFN_QFN:QFN-20-1EP_4x4mm_P0.5mm"))
|
||||
(comp (ref "U5") (value "TPS63700") (footprint "Package_TO_SOT_SMD:SOT-23-6"))
|
||||
(comp (ref "U6") (value "REF3040") (footprint "Package_TO_SOT_SMD:SOT-23-3"))
|
||||
(comp (ref "U7") (value "REF2040") (footprint "Package_TO_SOT_SMD:SOT-23-3"))
|
||||
(comp (ref "U8") (value "DAC8568") (footprint "Package_SO:TSSOP-16_4.4x5mm_P0.65mm"))
|
||||
(comp (ref "U9") (value "OPA4192") (footprint "Package_SO:TSSOP-14_4.4x5mm_P0.65mm"))
|
||||
(comp (ref "U10") (value "OPA4192") (footprint "Package_SO:TSSOP-14_4.4x5mm_P0.65mm"))
|
||||
(comp (ref "U11") (value "6N138") (footprint "Package_DIP:DIP-8_W7.62mm"))
|
||||
(comp (ref "DISP1") (value "SSD1306_OLED_64x32") (footprint "Display:OLED_64x32"))
|
||||
(comp (ref "J1") (value "USB-C") (footprint "Connector_USB:USB_C_Receptacle_GCT_USB4105"))
|
||||
(comp (ref "J2") (value "SWD_2x3") (footprint "Connector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_Vertical"))
|
||||
(comp (ref "J3") (value "TRS_3.5mm_MIDI_IN") (footprint "Connector_Audio:Jack_3.5mm_CUI_SJ1-3523N"))
|
||||
(comp (ref "J4") (value "TRS_3.5mm_MIDI_OUT") (footprint "Connector_Audio:Jack_3.5mm_CUI_SJ1-3523N"))
|
||||
(comp (ref "J5") (value "TRS_3.5mm_CV1") (footprint "Connector_Audio:Jack_3.5mm_CUI_SJ1-3523N"))
|
||||
(comp (ref "J6") (value "TRS_3.5mm_CV2") (footprint "Connector_Audio:Jack_3.5mm_CUI_SJ1-3523N"))
|
||||
(comp (ref "J7") (value "TRS_3.5mm_CV3") (footprint "Connector_Audio:Jack_3.5mm_CUI_SJ1-3523N"))
|
||||
(comp (ref "J8") (value "TRS_3.5mm_CV4") (footprint "Connector_Audio:Jack_3.5mm_CUI_SJ1-3523N"))
|
||||
(comp (ref "J9") (value "Keypad_2x5") (footprint "Connector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_Vertical"))
|
||||
(comp (ref "SW1") (value "Up") (footprint "Button_Switch_SMD:SW_SPST_B3SN_6x6mm"))
|
||||
(comp (ref "SW2") (value "Down") (footprint "Button_Switch_SMD:SW_SPST_B3SN_6x6mm"))
|
||||
(comp (ref "SW3") (value "Select") (footprint "Button_Switch_SMD:SW_SPST_B3SN_6x6mm"))
|
||||
(comp (ref "SW4") (value "Back") (footprint "Button_Switch_SMD:SW_SPST_B3SN_6x6mm"))
|
||||
(comp (ref "FB1") (value "Polyfuse_500mA") (footprint "Fuse:Fuse_1206"))
|
||||
(comp (ref "L1") (value "22uH") (footprint "Inductor_SMD:L_0805"))
|
||||
(comp (ref "L2") (value "22uH") (footprint "Inductor_SMD:L_0805"))
|
||||
(comp (ref "D1") (value "TVS_bidir") (footprint "Diode_SMD:D_SOD-323"))
|
||||
(comp (ref "D2") (value "TVS_bidir") (footprint "Diode_SMD:D_SOD-323"))
|
||||
(comp (ref "D3") (value "TVS_bidir") (footprint "Diode_SMD:D_SOD-323"))
|
||||
(comp (ref "D4") (value "TVS_bidir") (footprint "Diode_SMD:D_SOD-323"))
|
||||
(comp (ref "D5") (value "TVS_bidir") (footprint "Diode_SMD:D_SOD-323"))
|
||||
(comp (ref "D6") (value "TVS_bidir") (footprint "Diode_SMD:D_SOD-323"))
|
||||
(comp (ref "D7") (value "TVS_bidir") (footprint "Diode_SMD:D_SOD-323"))
|
||||
(comp (ref "D8") (value "TVS_bidir") (footprint "Diode_SMD:D_SOD-323"))
|
||||
;; Per-channel subtractor resistors (Rin=10.0k, Rfb=Rgnd=48.7k, Rser=1.0k)
|
||||
(comp (ref "RIN1A") (value "10.0k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RIN1B") (value "10.0k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RFB1") (value "48.7k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RGND1") (value "48.7k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RSER1") (value "1.0k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RIN2A") (value "10.0k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RIN2B") (value "10.0k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RFB2") (value "48.7k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RGND2") (value "48.7k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RSER2") (value "1.0k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RIN3A") (value "10.0k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RIN3B") (value "10.0k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RFB3") (value "48.7k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RGND3") (value "48.7k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RSER3") (value "1.0k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RIN4A") (value "10.0k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RIN4B") (value "10.0k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RFB4") (value "48.7k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RGND4") (value "48.7k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RSER4") (value "1.0k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RIN5A") (value "10.0k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RIN5B") (value "10.0k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RFB5") (value "48.7k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RGND5") (value "48.7k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RSER5") (value "1.0k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RIN6A") (value "10.0k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RIN6B") (value "10.0k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RFB6") (value "48.7k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RGND6") (value "48.7k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RSER6") (value "1.0k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RIN7A") (value "10.0k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RIN7B") (value "10.0k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RFB7") (value "48.7k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RGND7") (value "48.7k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RSER7") (value "1.0k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RIN8A") (value "10.0k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RIN8B") (value "10.0k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RFB8") (value "48.7k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RGND8") (value "48.7k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RSER8") (value "1.0k") (footprint "Resistor_SMD:R_0603"))
|
||||
;; MIDI
|
||||
(comp (ref "RMIDIIN") (value "220R") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RPULLRX") (value "1.0k") (footprint "Resistor_SMD:R_0603"))
|
||||
(comp (ref "RMIDIOUT") (value "220R") (footprint "Resistor_SMD:R_0603"))
|
||||
)
|
||||
(nets
|
||||
(net (code "1") (name "+5V")
|
||||
(node (ref "J1") (pin "VBUS"))
|
||||
(node (ref "FB1") (pin "1"))
|
||||
(node (ref "U3") (pin "VIN"))
|
||||
(node (ref "U4") (pin "VIN"))
|
||||
(node (ref "U5") (pin "VIN"))
|
||||
)
|
||||
(net (code "2") (name "VBUS_FUSED")
|
||||
(node (ref "FB1") (pin "2"))
|
||||
;; downstream after fuse (same as +5V in effect; split for clarity)
|
||||
)
|
||||
(net (code "3") (name "+3V3")
|
||||
(node (ref "U3") (pin "VOUT"))
|
||||
(node (ref "U1") (pin "3V3"))
|
||||
(node (ref "U2") (pin "VDD"))
|
||||
(node (ref "MOD1") (pin "VDD"))
|
||||
(node (ref "U6") (pin "VDD"))
|
||||
(node (ref "U7") (pin "VDD"))
|
||||
(node (ref "U8") (pin "VDD"))
|
||||
(node (ref "DISP1") (pin "VDD"))
|
||||
(node (ref "J9") (pin "VDD"))
|
||||
(node (ref "RPULLRX") (pin "1"))
|
||||
(node (ref "J4") (pin "ring"))
|
||||
)
|
||||
(net (code "4") (name "+12V")
|
||||
(node (ref "U4") (pin "VOUT"))
|
||||
(node (ref "L1") (pin "1"))
|
||||
(node (ref "U9") (pin "V+"))
|
||||
(node (ref "U10") (pin "V+"))
|
||||
)
|
||||
(net (code "5") (name "-12V")
|
||||
(node (ref "U5") (pin "VOUT"))
|
||||
(node (ref "L2") (pin "1"))
|
||||
(node (ref "U9") (pin "V-"))
|
||||
(node (ref "U10") (pin "V-"))
|
||||
)
|
||||
(net (code "6") (name "VREF4V096")
|
||||
(node (ref "U6") (pin "VOUT"))
|
||||
(node (ref "U8") (pin "VREF"))
|
||||
)
|
||||
(net (code "7") (name "VMID2V048")
|
||||
(node (ref "U7") (pin "VOUT"))
|
||||
(node (ref "RIN1B") (pin "1"))
|
||||
(node (ref "RIN2B") (pin "1"))
|
||||
(node (ref "RIN3B") (pin "1"))
|
||||
(node (ref "RIN4B") (pin "1"))
|
||||
(node (ref "RIN5B") (pin "1"))
|
||||
(node (ref "RIN6B") (pin "1"))
|
||||
(node (ref "RIN7B") (pin "1"))
|
||||
(node (ref "RIN8B") (pin "1"))
|
||||
)
|
||||
(net (code "8") (name "GND")
|
||||
(node (ref "J1") (pin "GND"))
|
||||
(node (ref "U1") (pin "GND"))
|
||||
(node (ref "U2") (pin "GND"))
|
||||
(node (ref "MOD1") (pin "GND"))
|
||||
(node (ref "U3") (pin "GND"))
|
||||
(node (ref "U4") (pin "GND"))
|
||||
(node (ref "U5") (pin "GND"))
|
||||
(node (ref "U6") (pin "GND"))
|
||||
(node (ref "U7") (pin "GND"))
|
||||
(node (ref "U8") (pin "VSS"))
|
||||
(node (ref "U9") (pin "GND"))
|
||||
(node (ref "U10") (pin "GND"))
|
||||
(node (ref "U11") (pin "emitter"))
|
||||
(node (ref "DISP1") (pin "GND"))
|
||||
(node (ref "J2") (pin "GND"))
|
||||
(node (ref "J9") (pin "GND"))
|
||||
(node (ref "SW1") (pin "2"))
|
||||
(node (ref "SW2") (pin "2"))
|
||||
(node (ref "SW3") (pin "2"))
|
||||
(node (ref "SW4") (pin "2"))
|
||||
(node (ref "RGND1") (pin "2"))
|
||||
(node (ref "RGND2") (pin "2"))
|
||||
(node (ref "RGND3") (pin "2"))
|
||||
(node (ref "RGND4") (pin "2"))
|
||||
(node (ref "RGND5") (pin "2"))
|
||||
(node (ref "RGND6") (pin "2"))
|
||||
(node (ref "RGND7") (pin "2"))
|
||||
(node (ref "RGND8") (pin "2"))
|
||||
)
|
||||
|
||||
;; ---- RM2 radio (Pico-W gSPI) ----
|
||||
(net (code "10") (name "RM2_CLK")
|
||||
(node (ref "MOD1") (pin "CLK"))
|
||||
(node (ref "U1") (pin "GPIO29"))
|
||||
)
|
||||
(net (code "11") (name "RM2_DAT")
|
||||
(node (ref "MOD1") (pin "DAT"))
|
||||
(node (ref "U1") (pin "GPIO24"))
|
||||
)
|
||||
(net (code "12") (name "RM2_CS")
|
||||
(node (ref "MOD1") (pin "CS"))
|
||||
(node (ref "U1") (pin "GPIO25"))
|
||||
)
|
||||
(net (code "13") (name "RM2_PWR")
|
||||
(node (ref "MOD1") (pin "PWR"))
|
||||
(node (ref "U1") (pin "GPIO23"))
|
||||
)
|
||||
|
||||
;; ---- USB + flash + SWD ----
|
||||
(net (code "20") (name "USB_DP")
|
||||
(node (ref "J1") (pin "DP"))
|
||||
(node (ref "U1") (pin "GPIO15"))
|
||||
)
|
||||
(net (code "21") (name "USB_DM")
|
||||
(node (ref "J1") (pin "DM"))
|
||||
(node (ref "U1") (pin "GPIO14"))
|
||||
)
|
||||
(net (code "22") (name "FLASH_CS")
|
||||
(node (ref "U2") (pin "CS"))
|
||||
(node (ref "U1") (pin "QSPI_CS"))
|
||||
)
|
||||
(net (code "23") (name "FLASH_SCK")
|
||||
(node (ref "U2") (pin "CLK"))
|
||||
(node (ref "U1") (pin "QSPI_SCK"))
|
||||
)
|
||||
(net (code "24") (name "FLASH_SD0")
|
||||
(node (ref "U2") (pin "DQ0"))
|
||||
(node (ref "U1") (pin "QSPI_SD0"))
|
||||
)
|
||||
(net (code "25") (name "FLASH_SD1")
|
||||
(node (ref "U2") (pin "DQ1"))
|
||||
(node (ref "U1") (pin "QSPI_SD1"))
|
||||
)
|
||||
(net (code "26") (name "FLASH_SD2")
|
||||
(node (ref "U2") (pin "DQ2"))
|
||||
(node (ref "U1") (pin "QSPI_SD2"))
|
||||
)
|
||||
(net (code "27") (name "FLASH_SD3")
|
||||
(node (ref "U2") (pin "DQ3"))
|
||||
(node (ref "U1") (pin "QSPI_SD3"))
|
||||
)
|
||||
(net (code "28") (name "SWDIO")
|
||||
(node (ref "J2") (pin "SWDIO"))
|
||||
(node (ref "U1") (pin "SWDIO"))
|
||||
)
|
||||
(net (code "29") (name "SWCLK")
|
||||
(node (ref "J2") (pin "SWCLK"))
|
||||
(node (ref "U1") (pin "SWCLK"))
|
||||
)
|
||||
|
||||
;; ---- CV DAC (SPI1) ----
|
||||
(net (code "30") (name "DAC_SCLK")
|
||||
(node (ref "U8") (pin "SCLK"))
|
||||
(node (ref "U1") (pin "GPIO10"))
|
||||
)
|
||||
(net (code "31") (name "DAC_DIN")
|
||||
(node (ref "U8") (pin "DIN"))
|
||||
(node (ref "U1") (pin "GPIO11"))
|
||||
)
|
||||
(net (code "32") (name "DAC_CS")
|
||||
(node (ref "U8") (pin "CS"))
|
||||
(node (ref "U1") (pin "GPIO13"))
|
||||
)
|
||||
(net (code "33") (name "DAC_LDAC")
|
||||
(node (ref "U8") (pin "LDAC"))
|
||||
(node (ref "U1") (pin "GPIO20"))
|
||||
)
|
||||
(net (code "34") (name "DAC_RSTB")
|
||||
(node (ref "U8") (pin "RSTB"))
|
||||
(node (ref "U1") (pin "GPIO21"))
|
||||
)
|
||||
(net (code "35") (name "DAC_VOUTA")
|
||||
(node (ref "U8") (pin "VOUTA"))
|
||||
(node (ref "RIN1A") (pin "1"))
|
||||
)
|
||||
(net (code "36") (name "DAC_VOUTB")
|
||||
(node (ref "U8") (pin "VOUTB"))
|
||||
(node (ref "RIN2A") (pin "1"))
|
||||
)
|
||||
(net (code "37") (name "DAC_VOUTC")
|
||||
(node (ref "U8") (pin "VOUTC"))
|
||||
(node (ref "RIN3A") (pin "1"))
|
||||
)
|
||||
(net (code "38") (name "DAC_VOUTD")
|
||||
(node (ref "U8") (pin "VOUTD"))
|
||||
(node (ref "RIN4A") (pin "1"))
|
||||
)
|
||||
(net (code "39") (name "DAC_VOUTE")
|
||||
(node (ref "U8") (pin "VOUTE"))
|
||||
(node (ref "RIN5A") (pin "1"))
|
||||
)
|
||||
(net (code "40") (name "DAC_VOUTF")
|
||||
(node (ref "U8") (pin "VOUTF"))
|
||||
(node (ref "RIN6A") (pin "1"))
|
||||
)
|
||||
(net (code "41") (name "DAC_VOUTG")
|
||||
(node (ref "U8") (pin "VOUTG"))
|
||||
(node (ref "RIN7A") (pin "1"))
|
||||
)
|
||||
(net (code "42") (name "DAC_VOUTH")
|
||||
(node (ref "U8") (pin "VOUTH"))
|
||||
(node (ref "RIN8A") (pin "1"))
|
||||
)
|
||||
|
||||
;; ---- CV channels (subtractor outputs -> series -> TVS -> TRS) ----
|
||||
;; U9 channels 1-4, U10 channels 5-8.
|
||||
(net (code "50") (name "OP1A_MINUS")
|
||||
(node (ref "RIN1A") (pin "2"))
|
||||
(node (ref "RFB1") (pin "1"))
|
||||
(node (ref "U9") (pin "1IN-"))
|
||||
)
|
||||
(net (code "51") (name "OP1A_PLUS")
|
||||
(node (ref "RIN1B") (pin "2"))
|
||||
(node (ref "RGND1") (pin "1"))
|
||||
(node (ref "U9") (pin "1IN+"))
|
||||
)
|
||||
(net (code "52") (name "OP1A_OUT")
|
||||
(node (ref "U9") (pin "1OUT"))
|
||||
(node (ref "RFB1") (pin "2"))
|
||||
(node (ref "RSER1") (pin "1"))
|
||||
)
|
||||
(net (code "53") (name "CV1_T")
|
||||
(node (ref "RSER1") (pin "2"))
|
||||
(node (ref "D1") (pin "1"))
|
||||
(node (ref "J5") (pin "tip"))
|
||||
)
|
||||
(net (code "54") (name "OP1B_MINUS")
|
||||
(node (ref "RIN2A") (pin "2"))
|
||||
(node (ref "RFB2") (pin "1"))
|
||||
(node (ref "U9") (pin "2IN-"))
|
||||
)
|
||||
(net (code "55") (name "OP1B_PLUS")
|
||||
(node (ref "RIN2B") (pin "2"))
|
||||
(node (ref "RGND2") (pin "1"))
|
||||
(node (ref "U9") (pin "2IN+"))
|
||||
)
|
||||
(net (code "56") (name "OP1B_OUT")
|
||||
(node (ref "U9") (pin "2OUT"))
|
||||
(node (ref "RFB2") (pin "2"))
|
||||
(node (ref "RSER2") (pin "1"))
|
||||
)
|
||||
(net (code "57") (name "CV1_R")
|
||||
(node (ref "RSER2") (pin "2"))
|
||||
(node (ref "D2") (pin "1"))
|
||||
(node (ref "J5") (pin "ring"))
|
||||
)
|
||||
(net (code "58") (name "OP1C_MINUS")
|
||||
(node (ref "RIN3A") (pin "2"))
|
||||
(node (ref "RFB3") (pin "1"))
|
||||
(node (ref "U9") (pin "3IN-"))
|
||||
)
|
||||
(net (code "59") (name "OP1C_PLUS")
|
||||
(node (ref "RIN3B") (pin "2"))
|
||||
(node (ref "RGND3") (pin "1"))
|
||||
(node (ref "U9") (pin "3IN+"))
|
||||
)
|
||||
(net (code "60") (name "OP1C_OUT")
|
||||
(node (ref "U9") (pin "3OUT"))
|
||||
(node (ref "RFB3") (pin "2"))
|
||||
(node (ref "RSER3") (pin "1"))
|
||||
)
|
||||
(net (code "61") (name "CV2_T")
|
||||
(node (ref "RSER3") (pin "2"))
|
||||
(node (ref "D3") (pin "1"))
|
||||
(node (ref "J6") (pin "tip"))
|
||||
)
|
||||
(net (code "62") (name "OP1D_MINUS")
|
||||
(node (ref "RIN4A") (pin "2"))
|
||||
(node (ref "RFB4") (pin "1"))
|
||||
(node (ref "U9") (pin "4IN-"))
|
||||
)
|
||||
(net (code "63") (name "OP1D_PLUS")
|
||||
(node (ref "RIN4B") (pin "2"))
|
||||
(node (ref "RGND4") (pin "1"))
|
||||
(node (ref "U9") (pin "4IN+"))
|
||||
)
|
||||
(net (code "64") (name "OP1D_OUT")
|
||||
(node (ref "U9") (pin "4OUT"))
|
||||
(node (ref "RFB4") (pin "2"))
|
||||
(node (ref "RSER4") (pin "1"))
|
||||
)
|
||||
(net (code "65") (name "CV2_R")
|
||||
(node (ref "RSER4") (pin "2"))
|
||||
(node (ref "D4") (pin "1"))
|
||||
(node (ref "J6") (pin "ring"))
|
||||
)
|
||||
;; channels 5-8 mirror on U10 (same pattern, J7/J8)
|
||||
(net (code "66") (name "OP2A_MINUS")
|
||||
(node (ref "RIN5A") (pin "2"))
|
||||
(node (ref "RFB5") (pin "1"))
|
||||
(node (ref "U10") (pin "1IN-"))
|
||||
)
|
||||
(net (code "67") (name "OP2A_PLUS")
|
||||
(node (ref "RIN5B") (pin "2"))
|
||||
(node (ref "RGND5") (pin "1"))
|
||||
(node (ref "U10") (pin "1IN+"))
|
||||
)
|
||||
(net (code "68") (name "OP2A_OUT")
|
||||
(node (ref "U10") (pin "1OUT"))
|
||||
(node (ref "RFB5") (pin "2"))
|
||||
(node (ref "RSER5") (pin "1"))
|
||||
)
|
||||
(net (code "69") (name "CV3_T")
|
||||
(node (ref "RSER5") (pin "2"))
|
||||
(node (ref "D5") (pin "1"))
|
||||
(node (ref "J7") (pin "tip"))
|
||||
)
|
||||
(net (code "70") (name "OP2B_MINUS")
|
||||
(node (ref "RIN6A") (pin "2"))
|
||||
(node (ref "RFB6") (pin "1"))
|
||||
(node (ref "U10") (pin "2IN-"))
|
||||
)
|
||||
(net (code "71") (name "OP2B_PLUS")
|
||||
(node (ref "RIN6B") (pin "2"))
|
||||
(node (ref "RGND6") (pin "1"))
|
||||
(node (ref "U10") (pin "2IN+"))
|
||||
)
|
||||
(net (code "72") (name "OP2B_OUT")
|
||||
(node (ref "U10") (pin "2OUT"))
|
||||
(node (ref "RFB6") (pin "2"))
|
||||
(node (ref "RSER6") (pin "1"))
|
||||
)
|
||||
(net (code "73") (name "CV3_R")
|
||||
(node (ref "RSER6") (pin "2"))
|
||||
(node (ref "D6") (pin "1"))
|
||||
(node (ref "J7") (pin "ring"))
|
||||
)
|
||||
(net (code "74") (name "OP2C_MINUS")
|
||||
(node (ref "RIN7A") (pin "2"))
|
||||
(node (ref "RFB7") (pin "1"))
|
||||
(node (ref "U10") (pin "3IN-"))
|
||||
)
|
||||
(net (code "75") (name "OP2C_PLUS")
|
||||
(node (ref "RIN7B") (pin "2"))
|
||||
(node (ref "RGND7") (pin "1"))
|
||||
(node (ref "U10") (pin "3IN+"))
|
||||
)
|
||||
(net (code "76") (name "OP2C_OUT")
|
||||
(node (ref "U10") (pin "3OUT"))
|
||||
(node (ref "RFB7") (pin "2"))
|
||||
(node (ref "RSER7") (pin "1"))
|
||||
)
|
||||
(net (code "77") (name "CV4_T")
|
||||
(node (ref "RSER7") (pin "2"))
|
||||
(node (ref "D7") (pin "1"))
|
||||
(node (ref "J8") (pin "tip"))
|
||||
)
|
||||
(net (code "78") (name "OP2D_MINUS")
|
||||
(node (ref "RIN8A") (pin "2"))
|
||||
(node (ref "RFB8") (pin "1"))
|
||||
(node (ref "U10") (pin "4IN-"))
|
||||
)
|
||||
(net (code "79") (name "OP2D_PLUS")
|
||||
(node (ref "RIN8B") (pin "2"))
|
||||
(node (ref "RGND8") (pin "1"))
|
||||
(node (ref "U10") (pin "4IN+"))
|
||||
)
|
||||
(net (code "80") (name "OP2D_OUT")
|
||||
(node (ref "U10") (pin "4OUT"))
|
||||
(node (ref "RFB8") (pin "2"))
|
||||
(node (ref "RSER8") (pin "1"))
|
||||
)
|
||||
(net (code "81") (name "CV4_R")
|
||||
(node (ref "RSER8") (pin "2"))
|
||||
(node (ref "D8") (pin "1"))
|
||||
(node (ref "J8") (pin "ring"))
|
||||
)
|
||||
|
||||
;; ---- MIDI TRS ----
|
||||
(net (code "90") (name "MIDI_IN_TIP")
|
||||
(node (ref "J3") (pin "tip"))
|
||||
(node (ref "RMIDIIN") (pin "1"))
|
||||
)
|
||||
(net (code "91") (name "MIDI_IN_LED_A")
|
||||
(node (ref "RMIDIIN") (pin "2"))
|
||||
(node (ref "U11") (pin "anode"))
|
||||
)
|
||||
(net (code "92") (name "MIDI_IN_RING")
|
||||
(node (ref "J3") (pin "ring"))
|
||||
(node (ref "U11") (pin "cathode"))
|
||||
)
|
||||
(net (code "93") (name "MIDI_RX")
|
||||
(node (ref "U11") (pin "collector"))
|
||||
(node (ref "RPULLRX") (pin "2"))
|
||||
(node (ref "U1") (pin "GPIO1"))
|
||||
)
|
||||
(net (code "94") (name "MIDI_OUT_TIP")
|
||||
(node (ref "U1") (pin "GPIO0"))
|
||||
(node (ref "RMIDIOUT") (pin "1"))
|
||||
)
|
||||
(net (code "95") (name "MIDI_OUT_DRIVE")
|
||||
(node (ref "RMIDIOUT") (pin "2"))
|
||||
(node (ref "J4") (pin "tip"))
|
||||
)
|
||||
|
||||
;; ---- Display + UI + keypad ----
|
||||
(net (code "100") (name "I2C1_SDA")
|
||||
(node (ref "DISP1") (pin "SDA"))
|
||||
(node (ref "U1") (pin "GPIO2"))
|
||||
)
|
||||
(net (code "101") (name "I2C1_SCL")
|
||||
(node (ref "DISP1") (pin "SCL"))
|
||||
(node (ref "U1") (pin "GPIO3"))
|
||||
)
|
||||
(net (code "102") (name "BTN_UP")
|
||||
(node (ref "SW1") (pin "1"))
|
||||
(node (ref "U1") (pin "GPIO6"))
|
||||
)
|
||||
(net (code "103") (name "BTN_DOWN")
|
||||
(node (ref "SW2") (pin "1"))
|
||||
(node (ref "U1") (pin "GPIO7"))
|
||||
)
|
||||
(net (code "104") (name "BTN_SELECT")
|
||||
(node (ref "SW3") (pin "1"))
|
||||
(node (ref "U1") (pin "GPIO8"))
|
||||
)
|
||||
(net (code "105") (name "BTN_BACK")
|
||||
(node (ref "SW4") (pin "1"))
|
||||
(node (ref "U1") (pin "GPIO9"))
|
||||
)
|
||||
(net (code "106") (name "I2C0_SDA")
|
||||
(node (ref "J9") (pin "SDA"))
|
||||
(node (ref "U1") (pin "GPIO4"))
|
||||
)
|
||||
(net (code "107") (name "I2C0_SCL")
|
||||
(node (ref "J9") (pin "SCL"))
|
||||
(node (ref "U1") (pin "GPIO5"))
|
||||
)
|
||||
(net (code "108") (name "KP_CS")
|
||||
(node (ref "J9") (pin "CS"))
|
||||
(node (ref "U1") (pin "GPIO17"))
|
||||
)
|
||||
(net (code "109") (name "KP_SCK")
|
||||
(node (ref "J9") (pin "SCK"))
|
||||
(node (ref "U1") (pin "GPIO18"))
|
||||
)
|
||||
(net (code "110") (name "KP_MOSI")
|
||||
(node (ref "J9") (pin "MOSI"))
|
||||
(node (ref "U1") (pin "GPIO19"))
|
||||
)
|
||||
)
|
||||
)
|
||||
Reference in New Issue
Block a user