I’ve built a simple MIDI control console for piHPSDR based on RP2040.
Features:
16-button matrix keypad (4×4)
5 rotary encoders (with push buttons)
“Shift” function via encoder press (encoders 2–5 act as additional virtual encoders)
USB-MIDI device (plug & play)
The console is very easy to configure in piHPSDR using its built-in MIDI learning function — every button and encoder can be assigned to any function.
For VFO control I used a CNC handwheel encoder (modified for smooth rotation), plus standard low-cost encoders for the rest.
Project (open source, build + pinout included):
https://github.com/SQ5BAR/piHPSDR-MIDI-Console/
73, SQ5BAR
I have made it to and its works great.
Wim de PE1PWR 73s
--
You received this message because you are subscribed to the Google Groups "Radioberry" group.
To unsubscribe from this group and stop receiving emails from it, send an email to radioberry+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/radioberry/51111248-7928-4a6e-bec4-1a0ffb981fe6n%40googlegroups.com.
Hi Hank,
Could you share some installation logs here?
In particular, it would be helpful to see the full output from the build process and any messages shown when uploading the firmware or connecting the device. If possible, please include information about your setup (operating system, toolchain, and any modifications you made), as well as any errors or warnings you encountered. This will make it much easier to diagnose the issue.
P.S. I’ve added a precompiled firmware file (rbc_midi_pico.uf2) to the build directory in the GitHub repository. The compiled file is fully functional, and I’ve also shared the source code as a base for further development if you’d like to modify or extend it.
If you don’t plan to make any changes, you can download this file and copy it directly to the RP2040 Pico (do not confuse it with the Raspberry Pi 4 — they are different devices). Before doing so, put the board into mass-storage mode by holding the BOOTSEL button while plugging it into USB. After that, you can drag and drop the rbc_midi_pico.uf2 file directly onto the RPI-RP2 drive. You can perform this file copy on any computer without installing the Pico SDK.
73 Łukasz
SQ5BAR
The circuit shows a control console based on the RP2040 Pico, equipped with a 4×4 button matrix (16 buttons) and 5 rotary encoders. The first encoder is used for VFO control and does not include a push button, while the remaining encoders have integrated push buttons. The buttons are connected in a matrix to reduce the number of GPIO pins used, while the encoders use separate signal lines (CLK, DT, SW) to detect rotation direction and button presses.
The system is powered from the Pico’s 3.3 V supply, with a common ground for all components. The microcontroller scans the button matrix, reads the encoders, and sends MIDI messages via USB to the host device. The console can be connected to a Radioberry and used with piHPSDR, or directly to a computer and used with openHPSDR or any other SDR software that supports MIDI controllers.
If any encoder operates in the wrong direction, simply swap the CLK and DT lines.
The wiring diagram is attached for reference.

To view this discussion visit https://groups.google.com/d/msgid/radioberry/56f38562-1f16-4ea8-a689-123990ae67ccn%40googlegroups.com.
Hi Negativ Zero,
Thank you for your kind words :)
Yes, I don’t have a dedicated PCB as such — I used a standard 2.54 mm perfboard. I made a simple PCB just for the buttons; the rest is wired point-to-point.
If you design a PCB for this, maybe you could share it with others?
My Radioberry MIDI Console looks like this:
