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

1.6 KiB

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?