An advanced, highly optimized 2.4GHz jammer built for the ESP8266 (NodeMCU) using two nRF24L01+PA+LNA modules on a shared SPI bus.
This project uses a dedicated OLED display for feedback and a single push button to control everything. It is designed to maximize RF output and efficiently target specific frequency bands including Bluetooth Classic, BLE, Wi-Fi, and RC drones.
Disclaimer: This project is strictly for educational and research purposes only. Interfering with radio communications without authorization is illegal in most jurisdictions. The authors and contributors are not responsible for any misuse of this device. Use it only on networks and devices you own and have explicit permission to test.
- Dual Radio Architecture: Uses two NRF24L01 modules to sweep different halves of the spectrum simultaneously.
- Optimized SPI/I2C Separation: The OLED is cleanly separated onto GPIO0/GPIO1 to ensure the I2C bus does not throttle the high-speed SPI commands sent to the radio modules.
- Continuous Wave (CW) Mode: Leverages the
startConstCarrier()test feature of the nRF24L01 to output a continuous, unmodulated RF carrier wave at maximum power, rather than sending discrete packets. - Smart UI Resource Allocation: The OLED display automatically pauses updates during active jamming to dedicate 100% of the ESP8266 CPU and SPI bus to the attack logic.
- Multiple Target Modes:
- BLUETOOTH: High-speed sequential hopping across all 79 BT Classic channels.
- BLE: Specifically targets the 3 primary Advertising channels (37, 38, 39) alongside data channels to prevent connections.
- WIFI: Sweeps 22MHz wide Wi-Fi channels effectively.
- RC DRONES: Sweeps the entire 0-125 nRF24 spectrum.
- ALL 2.4GHz: Maximum spectrum coverage.
- Manual Mode: Long-press the button (3s) to enter a manual channel selection mode and hammer a single specific frequency with both radios.
- NodeMCU ESP8266 (or compatible ESP8266-based board)
- 2x NRF24L01+ PA+LNA modules
- 1x 0.96" OLED SSD1306 display (I2C)
- 1x Push Button
- 2x Capacitors (10µF - 100µF) for the NRF modules
- Connecting wires
| ESP8266 Pin | NRF24L01+ (Radio 1) | NRF24L01+ (Radio 2) | Description |
|---|---|---|---|
| D4 (GPIO2) | CE | - | TX Enable (Radio 1) |
| D2 (GPIO4) | CSN | - | Chip Select (Radio 1) |
| D1 (GPIO5) | - | CE | TX Enable (Radio 2) |
| D0 (GPIO16) | - | CSN | Chip Select (Radio 2) |
| D5 (GPIO14) | SCK | SCK | SPI Clock (Shared) |
| D7 (GPIO13) | MOSI | MOSI | SPI MOSI (Shared) |
| D6 (GPIO12) | MISO | MISO | SPI MISO (Shared) |
| 3.3V | VCC | VCC | Power |
| GND | GND | GND | Ground |
CRITICAL: You must solder a capacitor (10µF to 100µF) across the VCC and GND pins of each NRF24L01 module. The PA+LNA versions draw significant current bursts that will cause the ESP8266 to crash or the radios to fail without proper decoupling.
| ESP8266 Pin | OLED Pin | Description |
|---|---|---|
| D3 (GPIO0) | SDA | I2C Data |
| TX (GPIO1) | SCL | I2C Clock |
| 3.3V | VCC | Power |
| GND | GND | Ground |
| ESP8266 Pin | Button Pin | Description |
|---|---|---|
| RX (GPIO3) | Button | Connect one side to RX, other side to GND. |
This project is configured to be built using PlatformIO.
- Install Visual Studio Code and the PlatformIO extension.
- Open the
FazJammerfolder in VS Code. - Wait for PlatformIO to initialize and download the framework.
- Connect your ESP8266 via USB.
- Click the "Upload" (Right arrow) button in the PlatformIO bottom toolbar.
PlatformIO will automatically download the required dependencies:
RF24by TMRh20Adafruit GFX LibraryAdafruit SSD1306
When powered on, the jammer boots into IDLE mode. Both radios are powered down.
- Short Click: Cycles through the available jamming targets (IDLE -> BLUETOOTH -> BLE -> WIFI -> RC -> ALL).
- Long Press (3 Seconds): Enters or exits Manual Mode.
- In Manual Mode, a short click increments the specific nRF24 channel (0-125) you want to target.
- Both radios will continuously output maximum power on that single frequency.
When a jamming mode is active, the OLED screen will display the target range and freeze its animations. This is intentional: I2C communication is slow and blocks the CPU. By freezing the screen, 100% of the ESP8266's processing power is dedicated to commanding the SPI bus and switching the radio frequencies as fast as possible.
This project is licensed under the MIT License - see the LICENSE file for details.
