![Image 1 — [Review Request] Modular Piano PCB, Pi Pico 2W](https://preview.redd.it/kiryglj3k20h1.png?width=2499&format=png&auto=webp&s=2121e2a4be79c65b95fef21c39fa7610075233b3)
![Image 2 — [Review Request] Modular Piano PCB, Pi Pico 2W](https://preview.redd.it/8u5u0rj3k20h1.png?width=393&format=png&auto=webp&s=d9d49a9f03a1df0dbf4025ee18ab7b63a395eba7)
[Review Request] Modular Piano PCB, Pi Pico 2W
(My images seem to get compressed and I can't upload a PDF directly so here is a link to a PDF for higher image quality.)
This is my first time designing a custom PCB, and I'd like some feedback on my design/design choices and schematic before I begin layouting. I feel that I've made some unconventional design choices, so please read the following notes:
- This PCB is meant for a 3D-printed electric piano, with 12 reflective IR sensors, one for each key (schematic for hierarchical sheet on second image.) The analog sensor data is funneled through a 16-channel multiplexer, then an 8-channel ADC before reaching the Pico 2W. The Pico turns this data into MIDI data (file format for music notes) which is sent to the Pi 4B over SPI to generate piano sounds.
- The design is meant to be "modular" such that the PCB can be chained together to expand to 24, 36, 48 keys and so on. However, many components (MCU, OVP chip, ADC) will be redundant if placed on every unit, so there will be one "master" board while the rest are "slave" boards. The PCB for all boards, slave and master alike, is identical - I will leave footprints empty for slaves and solder on required components for the master.
- A 1x12 connector is used for logic with adjacent boards (shared multiplexer enable and select lines, unique signal lines for each board's mux signal with support for up to 8). Each slave connects directly to master, so slaves use only 1 mux output channel; master uses all 8 channels as inputs. Because master is physically in the center, the mux is connected by default to MUX4. The jumpers on the top left allow slave boards to configure to a certain mux channel output. On the master board, jumpers on the select lines S0-S3 and enable line EN can be bridged. There are 2 sets of connectors (1 for the left adjacent board, 1 for the right board).
- Similarly, the master board uses a barrel jack for power input into the system, and 2 connectors (one left, one right) carry power to the slaves. This is daisy-chained, so each board is connected to its adjacent, not the master. Power comes from a wall plug (AC to DC with adjustable output voltage.)
- One final 1x5 connector is used to communicate with a Pi 4B over SPI, on master only.
- On a full piano there will be ~88 sensors each drawing ~10mA peak current, and the Pico consumes 350-400mA, so roughly 1.3A max. I assume the ADC, MCU, and MUX power consumption are minimal.
My questions are as follows (sorry if they are very basic):
- Any general comments on this modular design or suggestions on how to simplify it? Are there any design schemes to handle this modular PCB aspect that are easier to manage? (since I feel a lot of things can go wrong here)
- I'm concerned that the voltage on my 3V3 input will drop severely after travelling through multiple connectors and feet of copper traces. Will thick traces suffice or is a power plane necessary? (I'm aware that I can supply a higher voltage and use buck converters on each board but I will not use this approach for the first iteration for simplicity's sake.)
- On a related note, I have both digital and analog signals sharing a common 3V3 rail. Is it necessary to separate analog and digital power and how? What about ground planes, are separate digital and analog ground planes necessary? Do you guys anticipate noise interference between digital and analog components being an issue at all or not really?
- I'm using a wall plug with adjustable output voltage so I have an OVP chip (U1) to limit output voltage to 2.5-3.6V. Using that chip I have also limited inrush current to ~1A. Finally, I have a TVS diode on the main input. However, do the power connectors between each board need TVS diodes as well? What about the logic connectors? Where else are ESD/power-related failures a concern?
- I've heard advice to add test points and diagnostic LEDs to the board for troubleshooting. I've done this in the spots I anticipate possible issues, but any places I have missed?
- I'm still very new to this so I'm sure there are many, many things I've overlooked - please let me know! Any general feedback unrelated to my questions is also welcome.
u/Aeronautixal — 6 days ago