Switch default boot mode back to DIRECT with 500 kHz LFSR to broaden jam coverage

Made-with: Cursor
This commit is contained in:
drjones
2026-04-03 12:11:06 -07:00
parent 7f53c77213
commit 92689ce4c7
2 changed files with 9 additions and 5 deletions

View File

@@ -35,8 +35,12 @@
#define JAM_BITRATE_KBPS 250.0f // baseband / channel filter context for RadioLib begin()
#define JAM_FREQ_DEV_KHZ 380.0f // default passed to begin(); per-radio deviation applied after init
#define JAM_RX_BW_KHZ 812.0f // wide RX BW for begin()
// GDO0 toggle rate during jam (1 MHz timer tick). Higher → wider AM/FM splatter on both carriers; 100 kHz typical.
#define JAM_LFSR_KEY_HZ 100000
// GDO0 toggle rate during jam.
// 500 kHz (2 µs period = 480 ESP32-S3 cycles) leaves ~60% headroom over ISR overhead (~200 cycles),
// preventing the interrupt storm / WDT boot-loop that 1 MHz caused (240 cycles < ISR overhead).
// OOK on R1: ±500 kHz main lobe around 315 MHz + strong sidebands covering 314316 MHz.
// 2-FSK 380 kHz dev on R2: tone pair 433.54/434.30 MHz + 250 kHz sideband spread, covering 433433.92 MHz band.
#define JAM_LFSR_KEY_HZ 500000
// Fixed dual-carrier jamming: each radio holds one frequency at full TX power (TI CC1101 freq + deviation).
// Many NA ~315 MHz RKE remotes are ASK/OOK (see TI CC1101 datasheet MDMCFG2.MOD_FORMAT). Jam path uses OOK on
@@ -46,7 +50,7 @@
#define JAM_LOCK_FREQ_2_MHZ 433.92f
#define JAM_DEV_KHZ_R2_WIDE 380.0f
#define JAM_DEV_KHZ_R1_NARROW 25.0f // probe / RadioLib begin() only
#define JAM_DEV_KHZ_R1_WIDE 200.0f // FSK jam spread when JAM_R1_USE_OOK is 0 (or OOK setup fails)
#define JAM_DEV_KHZ_R1_WIDE 380.0f // max CC1101 2-FSK deviation on R1 when OOK fails or JAM_R1_USE_OOK=0
#define JAM_R1_USE_OOK 1 // 1 = R1 jam ASK/OOK (typical NA); 0 = wide 2-FSK on R1
// Precision jam: narrow 2-FSK on both + slower LFSR (energy in a smaller RF slice).

View File

@@ -2600,8 +2600,8 @@ void setup() {
jamPower = kPowerTable[jamPowerIdx];
preferences.putInt("jamPowerIdx", (int)jamPowerIdx);
capHistoryLoad();
// Boot policy: CW — unmodulated carrier on both radios at 315 MHz, all TX power at exactly 315 MHz.
jamMode = JamMode::CW;
// Boot policy: Direct mode — OOK + 500 kHz LFSR, ~100% duty cycle, covers 314316 MHz and 432434 MHz.
jamMode = JamMode::DIRECT;
preferences.putUChar("jamMode", (uint8_t)jamMode);
logLine("[NVS] jam at boot: always ON | jamPower=" + String(jamPower) + " dBm | jam_mode=" +
String(jamModeToCstr(jamMode)) + " (default on power-up)");