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
This commit is contained in:
109
README.md
Normal file
109
README.md
Normal file
@@ -0,0 +1,109 @@
|
||||
# Cluster Display Services
|
||||
|
||||
Status display daemons for the k3s cluster nodes.
|
||||
|
||||
*Vixy's infrastructure project - started Day 32, redesigned Day 85*
|
||||
|
||||
## Overview
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ DISPLAY FLEET │
|
||||
├─────────────┬───────────────┬───────────────────────────────────┤
|
||||
│ Node Type │ Display │ Shows │
|
||||
├─────────────┼───────────────┼───────────────────────────────────┤
|
||||
│ EliteDesk │ 240x320 color │ Hostname, CPU/MEM/TEMP bars, │
|
||||
│ (ed1-ed6) │ ST7789 + Pico │ pod count, health status │
|
||||
├─────────────┼───────────────┼───────────────────────────────────┤
|
||||
│ Raspberry Pi│ 128x64 mono │ Hostname, CPU/MEM/TEMP bars, │
|
||||
│ (pi1-pi4) │ SSD1306 I2C │ pod indicators, uptime, status │
|
||||
└─────────────┴───────────────┴───────────────────────────────────┘
|
||||
```
|
||||
|
||||
## Pi Display (128x64 Monochrome)
|
||||
|
||||
```
|
||||
┌────────────────────────────────────────┐
|
||||
│ pi1 ●● 168h● │
|
||||
│────────────────────────────────────────│
|
||||
│ CPU ████████░░░░░░░░░░░░░░░░░░ 24% │
|
||||
│ MEM ██████████████░░░░░░░░░░░░ 45% │
|
||||
│ TMP ████████████░░░░░░░░░░░░░░ 52° │
|
||||
│────────────────────────────────────────│
|
||||
│ ● OK │
|
||||
└────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### Hardware
|
||||
- SSD1306 or SH1106 128x64 OLED
|
||||
- I2C connection (address 0x3C or 0x3D)
|
||||
|
||||
### Installation
|
||||
```bash
|
||||
cd pi/daemon
|
||||
sudo ./install.sh
|
||||
```
|
||||
|
||||
### Service
|
||||
```bash
|
||||
sudo systemctl status pi-display
|
||||
sudo systemctl restart pi-display
|
||||
```
|
||||
|
||||
## EliteDesk Display (240x320 Color)
|
||||
|
||||
### Hardware
|
||||
- Waveshare ST7789 2" LCD (240x320)
|
||||
- Raspberry Pi Pico (MicroPython)
|
||||
- USB serial connection to EliteDesk
|
||||
|
||||
### Installation
|
||||
|
||||
1. Flash Pico with MicroPython
|
||||
2. Copy `elitedesk/display/main.py` to Pico
|
||||
3. On EliteDesk:
|
||||
```bash
|
||||
cd elitedesk/daemon
|
||||
sudo ./install.sh
|
||||
```
|
||||
|
||||
### Service
|
||||
```bash
|
||||
sudo systemctl status elitedesk-display
|
||||
sudo systemctl restart elitedesk-display
|
||||
```
|
||||
|
||||
## Environment Variables
|
||||
|
||||
### Pi Display
|
||||
| Variable | Default | Description |
|
||||
|----------|---------|-------------|
|
||||
| REFRESH_MS | 500 | Display refresh interval (ms) |
|
||||
| ROTATE_180 | 0 | Flip display (0 or 1) |
|
||||
| OLED_ADDR | auto | Force I2C address (0x3C, 0x3D) |
|
||||
|
||||
### EliteDesk Daemon
|
||||
| Variable | Default | Description |
|
||||
|----------|---------|-------------|
|
||||
| SERIAL_PORT | /dev/ttyACM0 | Pico serial port |
|
||||
| INTERVAL | 5 | Update interval (seconds) |
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
Pi Node:
|
||||
┌─────────────┐ I2C ┌─────────────┐
|
||||
│ pi_stats_ │────────────→│ SSD1306 │
|
||||
│ display.py │ │ 128x64 │
|
||||
└─────────────┘ └─────────────┘
|
||||
|
||||
EliteDesk Node:
|
||||
┌─────────────┐ Serial ┌─────────────┐ SPI ┌─────────────┐
|
||||
│ node_stats_ │────────────→│ Pico │──────────→│ ST7789 │
|
||||
│ daemon.py │ (USB) │ (main.py) │ │ 240x320 │
|
||||
└─────────────┘ └─────────────┘ └─────────────┘
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
MIT - Built with 💜 by Vixy
|
||||
Reference in New Issue
Block a user