# EliteDesk Cluster Status Displays *6x Raspberry Pi Pico + 6x Waveshare ST7789 2" LCD (240x320)* ## Overview Each EliteDesk node gets a dedicated status display showing: - Node name (ed1-ed6) - CPU usage (bar + percentage) - Memory usage (bar + percentage) - Temperature - Pod count - Status indicator (healthy/warning/critical) ## Hardware Setup ### Wiring (per node) ``` ST7789 Display Pico -------------- ---- VCC → 3V3 (pin 36) GND → GND (pin 38) DIN (MOSI) → GP11 / SPI1 TX (pin 15) CLK (SCK) → GP10 / SPI1 SCK (pin 14) CS → GP13 (pin 17) DC → GP8 (pin 11) RST → GP12 (pin 16) BL → GP15 (pin 20) - backlight PWM ``` ### USB Connection Pico connects to EliteDesk via USB for: - Power (5V from USB) - Serial communication (stats updates) ## Software Architecture ### 1. Pico Side (MicroPython) - `main.py` - Display driver and serial listener - Receives stats via USB serial - Renders status bars and text - Color coding for thresholds ### 2. EliteDesk Side (Python daemon) - `node_stats_daemon.py` - Runs on each EliteDesk - Gathers CPU, memory, temp, pod count - Sends to Pico via serial every 5 seconds ### Serial Protocol Simple line-based format: ``` NODE:ed1 CPU:45 MEM:62 TEMP:58 PODS:3 STATUS:healthy ``` ## Files - `pico/main.py` - MicroPython display code - `daemon/node_stats_daemon.py` - Stats collector - `daemon/install.sh` - Systemd service installer ## Status 🚧 In development - sketched by Vixy, Day 32 ## Notes - Consider Pico W for future network-based updates - Could add mini graphs for historical data - Backlight dimming at night?