Skip to main content
Version: ACS CC

BayPanel — PC Remote Management System

A 2.5" drive bay panel for monitoring and controlling a desktop PC over Ethernet, featuring a high-resolution display for animated system stats.

info

Author: Ioan Teodor Pop
GitHub Project Link: https://github.com/UPB-PMRust-Students/acs-project-2026-tedipop16

Description

BayPanel is an embedded device that fits into a standard 2.5" HDD bay slot of a desktop PC. It uses an STM32 Nucleo-U545RE-Q connected to a W5500 Ethernet module to join the home network and expose an HTTP API. A companion lightweight agent running on the host PC communicates with the Nucleo over the local network, forwarding system metrics (CPU usage, RAM, temperatures, uptime) and accepting control commands (shutdown, reboot, execute shell commands). A 3.2" ILI9341 TFT display (320×240 px) mounted flush with the drive bay faceplate shows live system stats and animated temperature graphs. Power-on is handled via Wake-on-LAN magic packets sent directly from the Nucleo.

Motivation

I wanted a permanent, always-on control panel for my desktop that doesn't depend on the PC being awake — something physical that sits in the case itself. Existing software solutions require the OS to be running. By putting the management logic on a microcontroller with its own Ethernet connection, the panel stays functional for Wake-on-LAN even when the PC is off, and the display shows status without needing the host to render anything. It also gave me a good reason to work with Ethernet, async networking, and SPI displays in embedded Rust.

Architecture

Architecture Diagram

Log

Week 21 - 27 April

Finalized project idea, chose components, and had the theme approved. Ordered W5500 module and ILI9341 display. Drafted the architecture and started reading embassy-net documentation.

Week 5 - 11 May

Week 12 - 18 May

Week 19 - 25 May

Hardware

Schematics

To be added at Hardware Milestone (Week 11).

Bill of Materials

DeviceUsagePrice
STM32 Nucleo-U545RE-QMain microcontrollerFree (Faculty)
W5500 Ethernet ModuleHardware TCP/IP stack, LAN connectivity~41 RON
3.2" ILI9341 TFT SPI Display (320×240)Live stats display mounted in bay faceplate~89 RON
Breadboard 400 pointsPrototyping connections~10 RON
Jumper Wires M-F 40p 20cmComponent interconnections~8 RON

Total estimated cost: ~148 RON (excluding Nucleo)

Software

LibraryDescriptionUsage
embassy-stm32Async HAL for STM32SPI1 (display), SPI2 (W5500), GPIO, clocks
embassy-netAsync TCP/IP networkingHTTP server, DHCP client, UDP for WoL
w5500-dhcpW5500 driver + DHCPDrives the Ethernet module over SPI
mipidsiDisplay driver (ILI9341)Initializes and writes to the TFT
embedded-graphics2D graphics libraryRenders text and stats to the display
embassy-executorAsync task executorRuns network, display, and WoL tasks concurrently
embassy-timeAsync timersPeriodic display refresh and metric polling intervals
defmtLogging frameworkDebug output over RTT
serde-json-coreno_std JSON parsingParses metric JSON POSTed by the host agent
  1. link