Close
0%
0%

ControlPi

A Raspberry Pi CM5-powered Control Center for my upcoming homelab project that manages SBCs and Docker Containers from a single Interface.

Similar projects worth following
0 followers
Greetings everyone, and welcome back!

Today, I've got something super cool to show you: ControlPi!
Over time, I've collected quite a few single-board computers, including Raspberry Pis and other ARM-based development boards. Instead of keeping them scattered across my desk, I wanted to bring everything together into a dedicated rack where I could organize, power, and manage all my devices.

The plan is to build a versatile homelab capable of handling multiple tasks, including network-attached storage (NAS), firewall and DNS services, and even experimenting with lightweight, locally hosted language models. With each device serving a different purpose, I wanted a convenient way to keep track of everything running in my setup.

To make managing all these devices easier, I built ControlPi, a dedicated touchscreen control panel designed to monitor and manage my entire homelab from a single interface. Powered by a Raspberry Pi Compute Module 5 (CM5), ControlPi serves as the central dashboard for my collection of single-board computers, bringing device monitoring and Docker container management together in one place.

The software stack is built around Docker and Portainer Community Edition (CE). Docker provides the container runtime for running applications and services in isolated environments, making them easier to deploy, manage, and maintain. Portainer CE adds a web-based management interface that lets me monitor containers, inspect logs, manage application stacks, and control services without relying entirely on the command line.

By connecting additional Docker hosts through Portainer Agents, I can extend the management interface beyond the CM5 to compatible systems across my homelab. This allows me to manage containers running on devices such as the Radxa Rock 5 ITX, ZimaBoard 2, and other SBCs from a single dashboard.

The idea is simple: turn on ControlPi, and the dashboard is ready to go. I want to see the status of my connected devices, check system resources, monitor CPU temperatures, track memory and storage usage, and manage Docker containers without connecting a separate monitor and keyboard to every machine.

Managing multiple SBCs can quickly become a hassle, especially when each device runs different services and serves a different purpose. With ControlPi, I wanted to bring everything together into a single, dedicated touchscreen interface for monitoring system resources and managing Docker containers across my homelab.

In this article, I'll walk you through the complete build process of ControlPi, covering the hardware, software setup, Docker and Portainer configuration, and connecting additional SBCs to the system. So, without further ado, let's get started!

HARDWARE- RASPBERRY PI CM5

The brain of ControlPi is the Raspberry Pi Compute Module 5 (CM5), a compact, modular computing platform designed for embedded and industrial applications. It features the same Broadcom BCM2712 processor found in the Raspberry Pi 5, with a 64-bit quad-core Arm Cortex-A76 CPU running at 2.4 GHz, but in a more compact module form factor.

For this build, the CM5 is mounted on an evaluation board that provides access to essential connectivity options, including USB ports, Ethernet, dual HDMI outputs, GPIO headers, a microSD card slot, and an M.2 interface for connecting an NVMe SSD.

I'm using the 4GB RAM variant with 32GB of onboard eMMC storage.

For the operating system, I chose the latest Raspberry Pi OS based on Debian Trixie. Instead of running the OS from a microSD card, I installed it on an NVMe SSD for faster storage access and improved overall responsiveness.

I used Raspberry Pi Imager to flash the operating system onto the NVMe drive. To do this, I connected the SSD to my computer using an M.2-to-USB adapter and selected the appropriate OS image in Raspberry Pi Imager.

Once the flashing process was complete, I installed the NVMe SSD in the CM5 evaluation board and powered on the system. The CM5 successfully booted directly from the SSD, providing a fast and responsive foundation for ControlPi.

HARDWARE- WAVSHARE 10.1 INCH DSI SCREEN

For the main display, I wanted something huge, not the average 7-inch size, but something larger.

Connectivity was also an important factor, as I wanted a DSI interface instead of HDMI.

So, I selected Waveshare's 10.1-DSI-TOUCH-A display for this project. It is a portrait touchscreen LCD display with ten-point capacitive touch control. The display uses an IPS panel with a hardware resolution of 800×1280, which is perfect for our tablet application.

The LCD pairs with the Raspberry Pi through the DSI interface and supports a refresh rate of up to 60 Hz, which is more than enough...

Read more »

FRAME.stl

Standard Tesselated Geometry - 212.78 kB - 10/26/2026 at 17:57

Download

  • 1
    FRAME 3D MODEL

    For the 3D Model of ControlPi, I opted for a portrait orientation for the display, positioning the evaluation board's I/O ports vertically alongside it.

    This arrangement keeps all the essential ports accessible from the front, making it easier to connect peripherals and access the board once ControlPi is mounted in the homelab rack.

    Another important consideration was the size of the frame. I wanted the entire design to fit within a 250 × 250 × 250 mm build volume, allowing it to be printed on most standard desktop 3D printers with a 250 mm build area. This was also one of the reasons I chose the portrait orientation for the display.

    The display is mounted from the front of the frame. I designed dedicated mounting points that align with the display's PCB standoffs, allowing the screen to sit securely in place when fastened.

    The CM5 evaluation board is mounted vertically on the back of the frame, with its I/O ports facing the front. To secure it, I incorporated three mounting ribs with 2 mm holes, positioned to align with the board's existing mounting holes near the I/O section. Three M2 screws hold the evaluation board firmly in place.

    This arrangement keeps the display and computing hardware neatly integrated into a compact assembly while ensuring that the necessary ports remain accessible from the front of the rack.

  • 2
    3D PRINTED PART

    The model was exported as a mesh file and 3D printed using purple Hyper PLA. The print settings included a 0.4 mm nozzle, 25% gyroid infill, and a 0.16 mm layer height, with tree supports and a top Z distance of 0.3 mm.

  • 3
    SETUP ASSEMBLY

    The assembly process was straightforward.

    • First, we positioned the frame over the back of the 10.1-inch DSI display, aligning the mounting holes with the display's PCB standoffs.
    • Using the four M2.5 bolts included with the display kit, we secured the display and frame together.
    • Next, we positioned the CM5 evaluation board vertically in its designated place and secured it to the frame using three M2 screws.
    • We then connected the display's JST power connector to the 5V and GND pins on the CM5 evaluation board's 40-pin GPIO header, connecting 5V to 5V and GND to GND.
    • Finally, we connected the 10.1-inch display to the CM5 evaluation board using the DSI flex cable, completing the hardware assembly.

View all 8 instructions

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates