Now the button board is assembled as shown in the next pictures.
The hole grid board must be adjusted so that it fits into the U-profile and can be fitted with the LED modules.
The holes and their distance from each other must match that of the Raspberry Zero so that the button board with the spacers can be mounted over the CPU board.
The whole thing then looks like this:

The hole grid board is slightly in the way of the ribbon connector of the LED modules at the right end. Therefore, a suitable recess must be filed into the breadboard:



The buttons still need to be wired. For this I use thin copper wire with insulation. One button connection is connected to each other.
The counterpart of the button connection, which connects the contact with the common connection, is led out individually on a ribbon cable.
Since we have 5 buttons, a ribbon cable with 6 wires is required.
In the picture you can see what that could look like. Here you can see the wiring on the top. However, it has turned out that it is better to do the cabling on the underside, as the cover paper can then lay better flat, which will later be mounted on the button board.
In the following image you can see very clearly how close the components are to each other. The power connection is quite close to the CPU board.
You can also see very clearly how the button board was mounted on the CPU board and where the micro SD card with the operating system and the control software is inserted.


In the following pictures you can clearly see that the screws for the button board and the spacers are still too long. These must be shortened so that the acrylic glass can be installed over the circuit board later.


The button board and the LED modules must be connected to the I/O port of the Raspberry Zero 2W.

Connection of the buttons and LED matrix to the I/O port
I/O pin no. | I/O pin designation | Cable color | Button | function |
29 | GPIO5 | brown | Above | Zone Control Setup / Exit Zone Control |
32 | GPIO 12 | red | Below | Random play / Sequential play |
33 | GPIO 13 | orange | Left | title back |
36 | GPIO 16 | yellow | center | Pause/Play |
37 | GPIO26 | green | Right | Next title |
39 | GND | black | mass |
The LED matrix is connected to the following I/O pins of the Raspberry Zero 2W:
I/O pin no. | I/O pin designation | Cable color | LED matrix pin no. | LED matrix pin designation |
6 | GND | brown | 2 | GND |
17 | 3V3 | red | 1 | VCC |
19 | GPIO 10 (SPIO MOSI DATA IN) | orange | 3 | DIN |
23 | GPIO 11 (SPIO SCLK) | green | 5 | CLK |
24 | GPIO 8 (SPI C.S0) | yellow | 4 | C.S |
![]() |
![]() |

Before connecting to the power supply, please be sure to check for short circuits with the multimeter!
What can be controlled with the buttons?
The buttons always control the active zone selected on the RoonMatrix. The zone is synonymous with Roon's output channel or the selected Spotify or Apple Music, which is made available for remote control via a web server running locally on the target device.
To get into the Zone selection To get there, click once on the button in the keypad Above shows.
You can also leave the zone selection by clicking on this button. This can also be done by clicking on the middle button in the center of the keypad.
If you are now in the zone selection, you can use the buttons on the keypad to select them Left and Right show, navigate through a list.
This list consists of the names of the zones found. When the name of the desired zone is shown on the display, select this zone by clicking on the button in the center out of. Alternatively, you can also click on the button that appears in the keypad Above shows.
Once you have left the zone selection again, you can use the buttons to control the selected device or the playback behavior of the zone:
With the Left button the previously played song will be played. With each additional click you go back one song in the playlist or album.
With the Right button the next song in the playlist or album will be played. With each additional click you go one song further in the playlist or album.
With the button in the center switches between play and pause.
With the button which after Below shows, you can switch between random playback and standard sequential playback.
Here again in table form:
Zone selection:
Button | function |
Above | Begin zone selection or end by confirming the selection |
Left | zone back |
Right | Next zone |
center | Confirm zone selection and exit selection mode |
Below | End zone selection without selection |
Zone control (default behavior):
Button | function |
Above | Switch to zone selection |
Left | Playback position back |
Right | Playhead position before (next track) |
center | Switch between pause and play |
Below | Switch between shuffle play and standard play |