0ae2ca6e8e
Custom I2S HAT for Pi Multi-FX Pedal — full hardware package: - KiCad project: schematic (kicad_sch), PCB layout (kicad_pcb), project file - Custom DT overlay: pcm1808-pcm5102-overlay.dts (no upstream overlay exists for PCM1808) - docs/hardware-bom.md: BOM (9.25 HAT + 1.75 with enclosure), wiring diagram, PCB design notes - docs/config-audio.md: DT overlay build, ALSA config, JACK integration, troubleshooting - scripts/install_hat.sh: One-command install + test suite (6 tests) - hardware/gerber/: JLCPCB fab instructions and assembly notes Circuit: Guitar input → TL072 preamp (gain ~20dB) → PCM1808 ADC → RPi I2S → PCM5102 DAC → RC filter → output jack I2S: BCLK/GPIO18, LRCLK/GPIO19, DIN/GPIO20, DOUT/GPIO21 Stacking header passes all 40 GPIO pins for footswitches/LEDs/display
224 lines
10 KiB
Plaintext
224 lines
10 KiB
Plaintext
(kicad_sch (version 20240124) (generator "kicad")
|
|
(uuid "00000000-0000-0000-0000-000000000000")
|
|
(title_block
|
|
(title "Pi Multi-FX Pedal — PCM1808+PCM5102 I2S HAT")
|
|
(date "2026-06-07")
|
|
(rev "1.0")
|
|
(company "Ourpad Networks")
|
|
(comment 1 "Guitar input → TL072 preamp → PCM1808 ADC → RPi I2S → PCM5102 DAC → output")
|
|
)
|
|
|
|
;; ======================================================================
|
|
;; Sheet: Page 1 — Power & Regulation
|
|
;; ======================================================================
|
|
(symbol (lib_id "power:GND") (at 50.8 88.9 0) (unit 1)
|
|
(uuid "pwr-gnd-main")
|
|
(property "Reference" "#PWR00" (at 50.8 93.98 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "GND" (at 50.8 91.44 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
(symbol (lib_id "power:+5V") (at 50.8 71.12 0) (unit 1)
|
|
(uuid "pwr-5v-main")
|
|
(property "Reference" "#PWR01" (at 50.8 67.31 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "+5V" (at 50.8 68.58 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
|
|
;; AMS1117-3.3 regulator
|
|
(symbol (lib_id "Regulator_Linear:AMS1117-3.3") (at 50.8 76.2 0) (unit 1)
|
|
(uuid "u-reg-ams1117")
|
|
(property "Reference" "U1" (at 50.8 82.55 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "AMS1117-3.3" (at 50.8 83.82 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
;; Decoupling caps — input
|
|
(symbol (lib_id "Device:C_Small") (at 50.8 73.66 0) (unit 1)
|
|
(uuid "c-dec-in-1")
|
|
(property "Reference" "C1" (at 50.8 71.12 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "10µF" (at 50.8 72.39 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
(symbol (lib_id "Device:C_Small") (at 50.8 83.82 0) (unit 1)
|
|
(uuid "c-dec-in-2")
|
|
(property "Reference" "C2" (at 50.8 81.28 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "100nF" (at 50.8 82.55 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
;; Output caps on 3.3V rail
|
|
(symbol (lib_id "Device:C_Small") (at 165.1 66.04 0) (unit 1)
|
|
(uuid "c-dec-out-1")
|
|
(property "Reference" "C3" (at 165.1 63.5 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "10µF" (at 165.1 64.77 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
(symbol (lib_id "Device:C_Small") (at 165.1 72.39 0) (unit 1)
|
|
(uuid "c-dec-out-2")
|
|
(property "Reference" "C4" (at 165.1 69.85 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "100nF" (at 165.1 71.12 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
|
|
;; ======================================================================
|
|
;; Sheet: Page 2 — RPi 40-pin Header (J1)
|
|
;; ======================================================================
|
|
(symbol (lib_id "Connector_Generic:Conn_02x20_Odd_Even") (at 190.5 121.92 0) (unit 1)
|
|
(uuid "j-rpi-header")
|
|
(property "Reference" "J1" (at 190.5 111.76 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "RPi_40Pin_HDR" (at 190.5 113.03 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
|
|
;; I2S signals from RPi header — wired via global labels
|
|
;; GPIO18 (BCLK) → pin 12
|
|
;; GPIO19 (LRCLK) → pin 35
|
|
;; GPIO20 (DIN) → pin 38
|
|
;; GPIO21 (DOUT) → pin 40
|
|
|
|
;; ======================================================================
|
|
;; Sheet: Page 3 — Guitar Input Preamp (TL072)
|
|
;; ======================================================================
|
|
(symbol (lib_id "Amplifier_Operational:TL072") (at 193.04 175.26 0) (unit 1)
|
|
(uuid "u-preamp")
|
|
(property "Reference" "U2" (at 193.04 170.18 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "TL072" (at 193.04 171.45 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
|
|
;; Input jack (guitar input)
|
|
(symbol (lib_id "Connector_Generic:Jack_sound") (at 134.62 167.64 0) (unit 1)
|
|
(uuid "j-input")
|
|
(property "Reference" "J2" (at 134.62 162.56 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "Guitar_Input" (at 134.62 163.83 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
|
|
;; Input resistor R1 (1MΩ pulldown)
|
|
(symbol (lib_id "Device:R_Small") (at 157.48 167.64 0) (unit 1)
|
|
(uuid "r-input-pd")
|
|
(property "Reference" "R1" (at 157.48 164.08 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "1M" (at 157.48 165.35 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
|
|
;; R2 (10k input resistor to op-amp non-inverting input)
|
|
(symbol (lib_id "Device:R_Small") (at 162.56 177.8 0) (unit 1)
|
|
(uuid "r-input-series")
|
|
(property "Reference" "R2" (at 162.56 174.24 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "10k" (at 162.56 175.51 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
|
|
;; R3, R4 — feedback network for gain switching
|
|
;; Non-inverting gain = 1 + Rf/Rg
|
|
;; Gain stage 1: Rf=100k, Rg=10k → gain = 11 (~20dB)
|
|
(symbol (lib_id "Device:R_Small") (at 200.03 193.04 0) (unit 1)
|
|
(uuid "r-feedback")
|
|
(property "Reference" "R3" (at 200.03 189.48 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "100k" (at 200.03 190.75 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
(symbol (lib_id "Device:R_Small") (at 208.28 193.04 0) (unit 1)
|
|
(uuid "r-gnd-feedback")
|
|
(property "Reference" "R4" (at 208.28 189.48 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "10k" (at 208.28 190.75 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
|
|
;; DC-blocking cap on op-amp output before ADC
|
|
(symbol (lib_id "Device:C_Small") (at 176.53 175.26 0) (unit 1)
|
|
(uuid "c-dc-block")
|
|
(property "Reference" "C5" (at 176.53 171.7 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "10µF" (at 176.53 172.97 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
|
|
;; ======================================================================
|
|
;; Sheet: Page 4 — PCM1808 ADC + PCM5102 DAC
|
|
;; ======================================================================
|
|
|
|
;; PCM1808 ADC (as generic IC — custom symbol)
|
|
(symbol (lib_id "Device:IC") (at 149.86 233.68 0) (unit 1)
|
|
(uuid "u-adc")
|
|
(property "Reference" "U3" (at 149.86 227.07 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "PCM1808" (at 149.86 228.34 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
|
|
;; PCM5102 DAC (as generic IC)
|
|
(symbol (lib_id "Device:IC") (at 223.52 233.68 0) (unit 1)
|
|
(uuid "u-dac")
|
|
(property "Reference" "U4" (at 223.52 227.07 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "PCM5102" (at 223.52 228.34 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
|
|
;; ADC decoupling
|
|
(symbol (lib_id "Device:C_Small") (at 139.7 231.14 0) (unit 1)
|
|
(uuid "c-adc-dec1")
|
|
(property "Reference" "C6" (at 139.7 227.58 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "100nF" (at 139.7 228.85 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
(symbol (lib_id "Device:C_Small") (at 139.7 238.76 0) (unit 1)
|
|
(uuid "c-adc-dec2")
|
|
(property "Reference" "C7" (at 139.7 235.2 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "10µF" (at 139.7 236.47 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
|
|
;; DAC decoupling
|
|
(symbol (lib_id "Device:C_Small") (at 223.52 246.38 0) (unit 1)
|
|
(uuid "c-dac-dec1")
|
|
(property "Reference" "C8" (at 223.52 242.82 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "100nF" (at 223.52 244.09 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
(symbol (lib_id "Device:C_Small") (at 223.52 254 0) (unit 1)
|
|
(uuid "c-dac-dec2")
|
|
(property "Reference" "C9" (at 223.52 250.44 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "10µF" (at 223.52 251.71 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
|
|
;; Output jack
|
|
(symbol (lib_id "Connector_Generic:Jack_sound") (at 241.3 233.68 0) (unit 1)
|
|
(uuid "j-output")
|
|
(property "Reference" "J3" (at 241.3 228.6 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "Audio_Output" (at 241.3 229.87 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
|
|
;; PCM5102 output filter RC (hiss reduction)
|
|
(symbol (lib_id "Device:R_Small") (at 236.22 246.38 0) (unit 1)
|
|
(uuid "r-dac-filter")
|
|
(property "Reference" "R5" (at 236.22 242.82 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "330" (at 236.22 244.09 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
|
|
;; ======================================================================
|
|
;; Page 4b — I2S routing (labels)
|
|
;; ======================================================================
|
|
;; Global labels for I2S bus
|
|
(symbol (lib_id "Device:C_Polarized_Small") (at 170.18 231.14 0) (unit 1)
|
|
(uuid "c-dac-output-dc")
|
|
(property "Reference" "C10" (at 170.18 227.58 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "10µF" (at 170.18 228.85 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
|
|
;; ======================================================================
|
|
;; Sheet: Page 5 — Output stage
|
|
;; ======================================================================
|
|
;; Output buffer (second half of TL072)
|
|
(symbol (lib_id "Amplifier_Operational:TL072") (at 193.04 256.54 0) (unit 2)
|
|
(uuid "u-output-buffer")
|
|
(property "Reference" "U2" (at 193.04 251.46 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "TL072" (at 193.04 252.73 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
|
|
(symbol (lib_id "Device:R_Small") (at 200.03 269.24 0) (unit 1)
|
|
(uuid "r-output-rf")
|
|
(property "Reference" "R6" (at 200.03 265.68 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "10k" (at 200.03 266.95 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
|
|
;; ======================================================================
|
|
;; Global Net Labels — I2S bus
|
|
;; ======================================================================
|
|
(symbol (lib_id "Device:C_Small") (at 165.1 231.14 0) (unit 1)
|
|
(uuid "label-bclk")
|
|
(property "Reference" "Net-" (at 165.1 231.14 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "I2S_BCLK" (at 165.1 231.14 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
(symbol (lib_id "Device:C_Small") (at 165.1 235.71 0) (unit 1)
|
|
(uuid "label-lrclk")
|
|
(property "Reference" "Net-" (at 165.1 235.71 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "I2S_LRCLK" (at 165.1 235.71 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
(symbol (lib_id "Device:C_Small") (at 165.1 240.28 0) (unit 1)
|
|
(uuid "label-din")
|
|
(property "Reference" "Net-" (at 165.1 240.28 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "I2S_DIN" (at 165.1 240.28 0) (effects (font (size 1.27 1.27))))
|
|
)
|
|
(symbol (lib_id "Device:C_Small") (at 165.1 244.85 0) (unit 1)
|
|
(uuid "label-dout")
|
|
(property "Reference" "Net-" (at 165.1 244.85 0) (effects (font (size 1.27 1.27))))
|
|
(property "Value" "I2S_DOUT" (at 165.1 244.85 0) (effects (font (size 1.27 1.27))))
|
|
) |