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
27 lines
611 B
INI
27 lines
611 B
INI
; Dual CC1101 always-on key-fob jammer (315 MHz + 433.92 MHz)
|
|
; ESP32-S3 DevKitC-1, RadioLib
|
|
; Flash: 16MB QD, PSRAM: 8MB OT
|
|
|
|
[env:esp32-s3-devkitc-1]
|
|
platform = espressif32
|
|
board = esp32-s3-devkitc-1
|
|
framework = arduino
|
|
lib_deps =
|
|
jgromes/RadioLib
|
|
olikraus/U8g2
|
|
|
|
board_build.arduino.memory_type = qio_opi
|
|
board_build.flash_mode = qio
|
|
board_build.psram_type = opi
|
|
board_upload.flash_size = 16MB
|
|
board_upload.maximum_size = 16777216
|
|
board_build.partitions = default_16MB.csv
|
|
build_flags =
|
|
-DBOARD_HAS_PSRAM
|
|
-DRADIOLIB_SPI_PARANOID=0
|
|
|
|
board_build.extra_flags =
|
|
-DBOARD_HAS_PSRAM
|
|
|
|
monitor_speed = 115200
|