cross-posted from: https://lemmy.world/post/37481146
I’m making a custom keyboard with a Raspberry Pi Pico as the MCU, and i don’t understand what all the different pins are for and how they should be wired up to my key matrix and trackpoint.
My current understanding is that GPIO are normal pins that can be wired to the rows and columns, but what of VBUS, VSYS, 3V3, and all the others that aren’t just GPIO or GND? And how should the ground pins be used here?
![]()
The schematic currently doesn’t include the trackpoint because i’m planning to hand wire it and the MCU to the PCB, so i can put them under the PCB in the case and i don’t have to try to fit them onto the board. Is there a better way to connect these that won’t require adding a bunch of space to the board to fit the MCU?
Have a look at the Pinout guides, and you should get in the habit of reading datasheets. They usually will have reference designs for the power delivery (pins like vcc, vsys, etc). Also most gpio pins will have multiple functions depending on the use case, and some pins may have more or different features. Sounds like with your particular setup, you’ll just need basic digital pins, but if you wanted to add features like RGB backlights or an analog input of some kind like for volume control, you may need to take advantage of either a high speed data pin (for the LEDs) or an ADC pin for the analog sensing.
https://datasheets.raspberrypi.com/pico/Pico-R3-A4-Pinout.pdf
3V3 is the 3.3V supply. The others are going to be power supplies for other things that you don’t need to worry about. E.g. VBUS might be the 5V USB (actually I checked and it is; VSYS seems to be the input voltage).
For simple switches the only pins you need are 3V3, GPIOs and ground. Leave everything else disconnected.
I’m no electrical engineer, but I have made a bunch of boards with Pi Picos and done a couple of PCB designs of questionable but usable quality. My second one mounts the Pico dev board directly to my PCB. The first one needed a ribbon cable that was then split to reach the MCU.
Somebody on the .ml thread has already gone over the basics of what the pins all do. For the main matrix of the keyboard, you don’t need anything except GPIO, not even Ground. Each row gets a GPIO pin, and each column gets a GPIO pin. The firmware – KMK, QMK, ZMK, etc. – will handle it from there. It should even automatically treat the pico’s combo pins as digital GPIO due to your specifying them in the code. I haven’t looked at the pinout of the various trackpoint modules that are out there, but you’ll probably need either 5v or 3.3v power, a ground, and 2-4 GPIO pins.
If you’re getting a PCB fabricated and want to keep your options open on sourcing various modules (or not using them at all), then I think you’re on the right track with hand-wiring it. I’m a big proponent of making something that will work and that you understand, and growing from there, rather than trying to make your first PCB all things it might ever need to be and getting frustrated when it isn’t perfect. If you wanted to do something just to make it a bit more polished, though, you could make your best estimation about where you want your trackpoint, and then run some traces to vias so that you could keep the wiring you have to do very short and clean, maybe even to the point where you could just use headers on the module.
One final note is that a Pico’s headers are just widely spaced enough that you can place them between three linearly spaced keys (e.g. your middle three). It makes running the traces a bit of an ass-ache, and you need to make sure you assemble things in the right order (solder headers, solder switches, then solder MCU) but it can be done. More sophisticated designs do away with a dev board altogether and integrate the MCU chip itself and the other necessary components onto the keyboard’s PCB, but I’m not at the point where I feel comfortable trying that yet.
I have a good idea of where the trackpoint should go and i put a hole in the PCB for the stem to go through, but that’s the only change i’ve made for it.
Sure enough, i could just fit the Pico on the middle pad if i move some diodes. I still think putting it under the PCB and hand wiring it will be neater and make the trackpoint easier to wire, but thanks for pointing out that possibility.


