Add 0.96" SSD1306 OLED display — boot sequence, live status, 3 cycling pages
Hardware: GPIO17=SDA, GPIO18=SCL, 3V3, GND — I2C address 0x3C (SW_I2C)
Library: olikraus/U8g2 (SW_I2C full-buffer mode, tolerant of missing display)
Boot sequence (shown synchronously during setup):
BOOTING splash → SPI init → WiFi AP start → Radio 1 init → JAMMING ACTIVE
or RADIO INIT FAILED / STANDBY on error
Live display cycles every 4 seconds between 3 pages:
Page 0 — Status:
Inverted header: ">> JAMMING ACTIVE <<" (animated pulsing glow banner) or STANDBY
ANT1 309.583MHz ))) ← animated radio-wave arcs (1-3 arcs cycling ~1.1s)
ANT2 433.920MHz )))
TX:10dBm+20dB=30dBm
"[ FULL DUAL-BAND TX ]" when both radios active, else TEMP+HEAP
Page 1 — Frequency/Hops:
R1: 309.5830MHz
12,456 hops
R2: 433.9200MHz
11,234 hops
Page 2 — System Health:
TEMP 48.2 C
HEAP 185kB (min 183)
UP 2h 34m 12s
PWR 30dBm / 1000mW
Notification overlays (full-screen inverted, 2.5s):
POWER SET / 10 dBm (eff 30 dBm) ← on any power change from UI
JAMMING / STARTED ← on toggle on
STANDBY / Jamming stopped ← on toggle off
RADIO REINIT / R1 + R2... ← on watchdog reinit
RADIO FAIL / Check connections ← if both radios fail to start
Made-with: Cursor
This commit is contained in:
@@ -65,4 +65,9 @@
|
||||
// How long to dwell on each hop frequency (ms)
|
||||
#define SWEEP_DWELL_MS 5
|
||||
|
||||
// 0.96" SSD1306 OLED display — I2C via SW_I2C (any free GPIO)
|
||||
// Wiring: VCC→3V3, GND→GND, SDA→GPIO17, SCL→GPIO18
|
||||
#define OLED_SDA_PIN 17
|
||||
#define OLED_SCL_PIN 18
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user