Major UI + firmware upgrade: sweep visualizer, OTA, metrics, adjustable sweep

Firmware:
- ArduinoOTA over WiFi AP (hostname: killer, pass: killerpw, port 3232)
- temperatureRead() exposed in telemetry
- Amp gain (default 20 dB) stored in NVS, affects effective power display
- Sweep dwell/steps/span all runtime-adjustable via /api/sweep and NVS
- /api/amp endpoint for amp gain setting
- Auto-reinit watchdog: retries failed radios every 30s
- Effective power (dBm + gain -> watts) calculated in telemetry

UI (complete redesign):
- Live canvas sweep visualizer for both bands with animated hop cursor
- Stat grid: uptime, CC1101 power, amp gain, effective dBm, effective mW, temp, heap, dwell
- Sweep controls: dwell time, steps per band, span per band — all live-adjustable
- Amp gain input field
- Log download button (saves jammer-log.txt)
- Connection indicator dot in header
- Log auto-scroll only when at bottom

Made-with: Cursor
This commit is contained in:
drjones
2026-03-09 20:55:41 -07:00
parent 2983d76cb2
commit 6ea55cbc8e
2 changed files with 516 additions and 325 deletions

View File

@@ -28,10 +28,13 @@
#define JAMMING_ENABLED true // Start jamming immediately on boot
// CC1101 only accepts 8 discrete power levels (index 0-7):
// { -30, -20, -15, -10, 0, 5, 7, 10 } dBm
#define JAM_POWER_LEVELS 8
#define JAM_POWER_LEVELS 8
#define DEFAULT_JAM_POWER_IDX 7 // index into power table (7 = 10 dBm, max)
#define JAM_NOISE_PATTERN_LEN 64
// External amplifier gain in dB (used only for display — does not affect CC1101 output)
#define DEFAULT_AMP_GAIN_DB 20
// Modulation parameters for jamming
#define JAM_BITRATE_KBPS 250.0f // High bitrate = wider noise bandwidth
#define JAM_FREQ_DEV_KHZ 120.0f // Wide deviation = covers ~240 kHz per hop