Pseudonymous maker "HealthyCabinet," hereafter Cabinet, has come up with a neat hack for anyone running out of general-purpose input/output (GPIO) pins on the Raspberry Pi Pico: a bypass to gain an extra two pins, potentially expandable to four.
The RP2040-powered Raspberry Pi Pico launched in January last year as a $4 feature-packed microcontroller board, and received the addition of a radio module last month with the release of the $6 Raspberry Pi Pico W. In both cases, the low-cost development boards offer 26 externally-accessible GPIO pins across two castellated breadboard-friendly headers — which, for some projects, may not be enough.
"I want to use a [Raspberry Pi] Pico to replace the MCU [Microcontroller Unit] on a mechanical keyboard," Cabinet explains of their needs, "but the keyboard matrix is 7×16 and it has two SPI LED controllers. This means I will need 27 GPIO pins. I don't care about the onboard LED and I plan to power it from USB at all times. I don't need the VBUS sense (GP24) or onboard LED (GP25) connected anymore, and with the extra pins liberated I should be able to use a Pico for this project."
Turning to the official datasheet for the Raspberry Pi Pico, Cabinet was able to find where the GPIO lines were exposed on the circuit board — using a CircuitPython program to toggle them on and off while tracing the signal to ensure they could be easily software-controlled. By removing two resistors and soldering wires in their place, the two "hidden" GPIO pins were released for use with external hardware.
There's the potential to uncover another two hidden pins, bringing the total accessible to users to 30, as well. "I could potentially free up two more GPIOs since I don't really need the SMPS [Switched-Mode Power Supply] mode switch (I could wire it to GND or 3v3 permanently depending on my power requirements) or knowledge of VSYS voltage (since I'll always power from USB), but that's an exercise for the reader if they need 30 GPIO pins and don't want to design their own board."