Files
vixy 7901088155 Initial commit: EliteDesk + Pi display daemons
- EliteDesk: 240x320 color ST7789 via Pico (Day 32 design)
- Pi: 128x64 mono SSD1306 horizontal bars (Day 85 redesign)

🦊 Built with love by Vixy
2026-01-25 14:44:32 -06:00

71 lines
1.6 KiB
Markdown

# 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?