ESP32 Bluetooth Jammer Using Dual NRF24L01 Modules

Published  April 13, 2026   0
A Anand D
Author
DIY Bluetooth Jammer Using ESP32 & NRF24L01

Bluetooth communication is everywhere. Due to its low power consumption, we can see it in a lot of our day-to-day gadgets. Behind the scenes, it's all about signals. Let’s explore what really happens when data is transmitted or disturbed via Bluetooth. This project is based on an ESP32 and two NRF24L01 modules, and we are going to learn how we can generate a 2.4 GHz spectrum signal and interrupt Bluetooth communications. This blog is meant for educational purposes only. By using two RF modules, each controlled independently via the ESP32’s HSPI and VSPI interfaces, the system can generate parallel data packets across multiple channels. If you are a beginner and would like to learn beginner-friendly steps of interfacing the NRF24L01 module with an Arduino, do check out our NRF24L01 with Arduino project, which is a great starting point before diving into this more advanced Bluetooth jammer using an ESP32 build. Using an ESP32 and two NRF24L01 + PA + LNA modules, we built a dual ESP32 Bluetooth jammer capable of generating wideband 2.4 GHz spectrum interference to study wireless disruption in a controlled, educational setting.

Here, the ESP32 acts as the central controller, coordinating rapid data transmissions between the two NRF24L01 modules, while the rest of the components support system operation and monitoring. If you follow this tutorial completely, you’ll get valuable insights into wireless communication, ideas on signal generation and transmission, IoT systems and real-world signal challenges. Interested in more ESP32 hands-on builds? Explore our ESP32 projects.

What You Learn From The ESP32 Bluetooth Jammer Project

  • Wireless protocol fundamentals 
  • 2.4 GHz RF interference
  • Dual SPI bus operation
  • NRF24L01 PA+LNA operation
  • IoT system challenges 
  • Firmware deployment

What Is Bluetooth and How Does It Work?

Bluetooth is a short-range wireless communication technology that has become the universal standard for connecting personal devices without any cables. Named after a 10th-century Danish king, the technology was developed in the late 1990s to allow phones, computers, and peripherals to "talk" to one another seamlessly. It operates in the 2.4 GHz ISM (Industrial, Scientific, and Medical) band, the same unlicensed frequency range used by Wi-Fi and microwave ovens, which makes it globally accessible for consumer electronics. Today, Bluetooth is divided into two main categories: Bluetooth Classic, used for high-throughput tasks like streaming high-fidelity audio to headphones, and Bluetooth Low Energy (BLE), designed for power-sensitive applications like fitness trackers and smart home sensors. Because it is managed by the Bluetooth Special Interest Group (SIG), devices from thousands of different manufacturers can interoperate, ensuring that your smartphone can connect to almost any car, speaker, or smartwatch on the market, regardless of the brand.

There are two primary types of Bluetooth today:

Bluetooth Classic is utilised for streaming music, etc., typically to a headset or speaker, i.e. "high bandwidth" activity using 79 channels around 2.45 GHz and 1600 times per second on the same channel (frequency hopping).

Bluetooth Low Energy (BLE) is mainly used for low-power Internet of Things (IoT) devices such as fitness trackers, smart home sensors, and beacons and provides for all connections via 40 channels via a method called "adaptive frequency hopping".

Because Bluetooth has been developed and enforced by a consortium known as the Bluetooth Special Interest Group (SIG), devices produced by different manufacturers can communicate with one another, meaning that you will be able to set up a pairing system with almost any car, speaker or smart watch regardless of the manufacturer.

Quick Answer: What does this ESP32 Bluetooth jammer project do?
It uses an ESP32 controlling two NRF24L01 PA+LNA radio modules (one on HSPI, one on VSPI) to simultaneously broadcast RF noise across the 2.4 GHz band. This floods the channels Bluetooth relies on, causing packet loss and connection instability in nearby devices, demonstrating FHSS vulnerability in a controlled educational experiment.

How Frequency Hopping Spread Spectrum (FHSS) Works

At its core, Bluetooth functions through a process called Frequency Hopping Spread Spectrum (FHSS). To avoid interference from other wireless devices, a Bluetooth connection doesn't stay on one frequency; instead, it "hops" between 79 different channels (for Classic) or 40 channels (for BLE) up to 1,600 times per second. When two devices connect, they form a "Piconet" where one device acts as the central (or master) and the others act as peripherals (or slaves), following a synchronized hopping pattern that only they know. If you’d like to see how a smartphone can interact with an ESP32 as a client device, dive into our ESP32 Bluetooth iBeacon project. When you "pair" devices, they exchange unique addresses and security keys to establish a trusted bond. Once the link is active, data is broken into small packets and sent across the changing frequencies. If a packet is lost due to noise on one channel, the devices simply retransmit the data on the next hop. This agility is what allows dozens of Bluetooth devices to operate in the same room without crashing into each other's signals.

ParameterBluetooth ClassicBluetooth Low Energy (BLE)
Frequency Band2.4 GHz ISM2.4 GHz ISM
Number of Channels79 channels (1 MHz spacing)40 channels (2 MHz spacing)
Max Hop Rate1,600 hops/secondAdaptive (connection interval-based)
Max Data Rate3 Mbps (EDR)2 Mbps (BLE 5.0)
Typical Range10–100 m10–400 m (BLE 5.0 Long Range)
Power ConsumptionHigher (~1–3 W peak)Very low (~15 mW peak)
Primary Use CasesAudio streaming, file transferIoT sensors, beacons, wearables
Interference MethodFlood 79 channels with RF noiseFlood 40 advertising/data channels

How Does a Bluetooth Jammer Using ESP32 Work?

Bluetooth jammers work by exploiting the fact that every wireless receiver has a limit on how much "noise" it can filter out. A jammer typically functions as a powerful radio frequency (RF) transmitter that floods the 2.4 GHz band with useless, high-intensity energy. By blasting "white noise" or a continuous carrier wave across the same channels Bluetooth uses, the jammer raises the noise floor so high that the legitimate Bluetooth signal becomes drowned out - much like trying to have a whisper-quiet conversation in the front row of a heavy metal concert.

In our project, we have two NRF24L01 + PA + LNA modules connected to our ESP32 board. You can explore our beginner-friendly interfacing of the NRF24L01 with Arduino UNO tutorial for in-depth insights into the NRF modules. The need for two NRF modules here is to increase the range of our ESP32 Bluetooth jammer. Each of the NRF modules is connected to two SPI buses (HSPI and VSPI) of the ESP32. Each NRF24L01 operates in the same 2.4 GHz band and can transmit data on different channels. Both modules rapidly transmit signals. Each one can operate on different channels. Together, they increase activity across the spectrum. When the air becomes crowded with these signals, packet loss increases, connections may become unstable, and there will be interruptions in the Bluetooth communication of nearby devices. I have attached a 1000mAh LiPo battery to power the device, but you can use a power bank and connect it to the USB port of the ESP32 to power the device on.

Why Use Two NRF24L01 Modules? (Dual ESP32 Bluetooth Jammer Design)

An NRF24L01 is limited to transmitting on a single channel; even though it can rapidly hop between channels on the 2.4 GHz band, this presents a varying gap of transmission when using just one transceiver.

In this dual ESP32 Bluetooth jammer design, two NRF24L01 + PA + LNA modules are operated in parallel across the ESP32's independent HSPI and VSPI buses. 

This allows:

» Transmit simultaneously across more channels at once.
» Have a greater density of spectral coverage; thus, fewer unpopulated parts of the frequency will be present.
» Having a greater effective jamming distance is caused by the amplification from the PA (Power Amplifier).
» Enable independent channel mapping, which increases the chance of evenly flooding the entire band.

With both transceivers transmitting at the same time on their assigned channels, packet loss will increase significantly, connections will be disrupted, and streams (audio or data) will stutter or be dropped. The Power Amplifier (PA) increases the transmission power output of the transmitter, which increases its effective distance; whereas, the Low Noise Amplifier (LNA) allows the module to accurately identify active channels before flooding those channels with noise.

Components Required to Build the ESP32 Bluetooth Jammer

The following is the list of components required to build the ESP32 Bluetooth jammer

Components required for ESP32 Bluetooth Jammer: ESP32 board, two NRF24L01 PA+LNA modules, LiPo battery, LED, resistor, switch, and dotted PCB
S NoItemQuantityDescription
1ESP321Acts as the central controller of the whole circuit
2NRF24LO1 + PA + LNA2To transmit the radio signals
3Switch1To turn on and off the circuit
43.7V LiPo battery1To power up the circuit
55mm LED1Status indicator for the ESP32 Bluetooth jammer
6220Ω Resistor1To limit the current going to the LED
7Dotted PCB1To assemble the whole circuit

Circuit Diagram – ESP32 Bluetooth Jammer with Dual NRF24L01

You can follow the following circuit diagram to build your own ESP32 NRF24L01 Bluetooth jammer.

Circuit diagram of ESP32 based bluetooth jammer

In this project, we have used two NRF24L01 + PA + LNA modules. The NRF modules are connected to two SPI buses (HSPI and VSPI) of the ESP32. ESP32 acts as the "Master" controlling two "Slave" radio modules. The pin connections can be seen in the pin connections table. Power management is the most critical aspect of this specific circuit, especially when using the PA+LNA versions of the NRF24L01. The Power Amplifier boosts the outgoing signal, while the Low Noise Amplifier allows the device to better "hear" and target specific active channels before flooding them with interference.

We have used a dedicated 3.7V, 1000mAh LiPo battery to power the whole circuit. You can also use a power bank to power the circuit, just connect the ESP32 to the power bank using USB. A 10uF electrolytic decoupling capacitor soldered directly across the VCC and GND pins of each NRF module acts as a local reservoir of energy, smoothing out voltage drops and ensuring the radio has enough "punch" to transmit across the 2.4GHz band effectively.  An LED is connected to GPIO 27 via a 220Ω resistor to see the status of the ESP32 NRF24L01 Bluetooth jammer. The Toggle button connected between the battery and the circuit helps us to turn on and off the device when required. I have assembled all the components in a dotted PCB. You can design a custom PCB if you like it to be more professional. If you want to learn how to send data to a smartphone using Arduino and NRF24L01, check out our sending data to a smartphone using NRF24L01 over Bluetooth tutorial!

Pin Connection Table – ESP32 NRF24L01 Bluetooth Jammer

You can follow the following pin connections. These pin connections will work for any ESP32 boards, provided that they have the mentioned pins.

LEFT NRF CONNECTION (HSPI)RIGHT NRF CONNECTION (VSPI)
VCC3.3VVCC3.3V
GNDGNDGNDGND
CEGPIO 16CEGPIO 22
CSNGPIO 15CSNGPIO 21
SCKGPIO 14SCKGPIO 18
MOSIGPIO 13MOSIGPIO 23
MISOGPIO 12MISOGPIO 19
IRQIRQ
STATUS LED CONNECTIONSWITCH CONNECTION
POSITIVEGPIO 27PIN 1BATTERY +
NEGATIVEGNDPIN 2ESP32 - 5V PIN

Hardware Assembly – Full ESP32 Bluetooth Jammer Build

The following is the complete picture of the Bluetooth jammer after assembling all of the parts. You can either connect a powerbank to the USB Type-C port of the ESP32 or just connect a 3.7V battery to the 5VIN pin of the ESP32, as I did.

Fully assembled ESP32 Bluetooth jammer on perfboard showing two NRF24L01 PA+LNA modules, LiPo battery, toggle switch, and status LED

Flashing the Bluetooth Jammer Firmware to ESP32

We are using the Bluetooth Jammer firmware developed by Emensta Noughat. To flash the firmware, go to the bluetooth jammer firmware flasher page and follow the steps described below.

Step 1 ⇒ Select the Correct Firmware

Screenshot showing how to select the correct Bluetooth_80_CH firmware on the ESP32 Bluetooth jammer web flasher page

After going to the link, click Generic. Make sure your ESP32 device is plugged into your PC via USB connection. A menu with a list of firmwares will pop up. Click Bluetooth_80_CH and click CONNECT.

Step 2 ⇒ Connect Your ESP32 and Install

Screenshot showing COM port selection and Install button for ESP32 Bluetooth jammer firmware flashing

A new pop-up window with a list of available ESP32 devices with their COM ports will be shown. Choose your ESP32 device from the list and click connect. You need to click INSTALL BLUETOOTH_80_CH from the options displayed.

Step 3 ⇒ Confirm Successful Flash

Screenshot showing successful firmware installation confirmation for ESP32 Bluetooth jammer

Again, click Install. If it shows, you may want to press the BOOT button on your ESP32 if it shows “Failed to initialise”. Firmware will start flashing into the ESP32. You will see the following on successful firmware flash. The ESP32 Bluetooth jammer is active and transmitting RF noise across all 80 channels.

Video Demonstration – ESP32 NRF24L01 Bluetooth Jammer in Action

In this video, I’ve clearly demonstrated how our device disturbs the Bluetooth communication between a phone and a Bluetooth speaker. Initially, the Bluetooth speaker works fine, and the song gets played seamlessly. The moment I turn on the ESP32 NRF24L01 Bluetooth jammer, the song being played gets disrupted and stops. What actually happened is we filled the air around the speaker and the phone with a lot of noise, and the Bluetooth devices failed to establish a proper communication channel between them.

Understanding HSPI and VSPI on the ESP32

This dual ESP32 Bluetooth jammer design takes advantage of the unique dual architecture of the ESP32's SPI controllers, as well as the fact that ESP32 modules have their own communication lines. The majority of microcontrollers contain only one hardware SPI controller; in contrast, the ESP32 has two totally independent hardware SPI peripherals.

PropertyHSPI (SPI2)VSPI (SPI3)
Default SCK PinGPIO 14GPIO 18
Default MOSI PinGPIO 13GPIO 23
Default MISO PinGPIO 12GPIO 19
Max Clock Speed80 MHz80 MHz
DMA SupportYesYes
In This ProjectLeft NRF24L01 moduleRight NRF24L01 module

The ESP32 firmware can operate both modules separately by assigning an NRF24L01 to each SPI. The ESP32 will access both NRF24L01 modules at the same time, which means that using two NRF24L01 devices with the ESP32 provides coverage of multiple channels at the same time and therefore makes the Bluetooth jammer more effective than a single device would.

The RF24 library abstracts out both SPI interfaces and allows the firmware to switch back and forth between the two NRF24L01 devices at a high speed.

Common Issues and Troubleshooting

SymptomLikely CauseFix
The status LED does not light upFirmware not flashed, or LED polarity reversedRe-flash firmware; verify LED anode connects to GPIO 27 via 220Ω resistor
"Failed to initialise" during flashingESP32 not in download modeHold the BOOT button while clicking Install in the web flasher
One NRF module is not respondingPoor solder joint or missing decoupling capacitor causing brown-outReflow solder joints; confirm 10µF cap is present and correctly oriented on that module
Weak or no Bluetooth disruption observedInsufficient output power or the NRF module not initialisingVerify HSPI/VSPI pin assignments match the firmware; ensure PA+LNA variant (not standard) NRF24L01 is used
ESP32 resets frequently under loadInsufficient current from the power sourceUse a LiPo battery or power bank rated ≥1A; ensure VIN path can handle combined PA+LNA current draw

Conclusion

From this ESP32 Bluetooth jammer project, we learned about interfacing the NRF24L01 + PA + LNA modules with an ESP32. We learned about SPI buses in ESP32. Now we know how Bluetooth communication happens in our day-to-day life, and external noises of the same frequency spectrum can interrupt normal communication. This whole project is intended to explore more about the Bluetooth frequency band and signals for educational purposes only. We also learned how the ESP32 Bluetooth jammer code is deployed via a browser-based Web Serial flasher, eliminating the need for a traditional IDE. We built a dual ESP32 Bluetooth jammer capable of flooding the entire 2.4 GHz ISM band, providing a vivid, practical demonstration of real-world wireless signal vulnerabilities.

This tutorial was created by the CircuitDigest engineering team. Our experts focus on creating practical, hands-on tutorials that help makers and engineers master Raspberry Pi projects, Arduino projects and IoT projects.

I hope you liked this article and learned something new from it. If you have any doubts, you can ask in the comments below or use our Circuit Digest forum for a detailed discussion.

 

Frequently Asked Questions – ESP32 Bluetooth Jammer

⇥ Why would you utilise two NFR24L01 modules in the project?
Only one NFR24L01 can utilise an individual channel; there are gaps in the coverage of the spectrum when a person uses only one module. Using two modules allows for two independent sets of transponders to be created on the ESP32 HSPI bus / VSPI and operate simultaneously. The use of the two modules increases the transmission bandwidth of the two modules by doubling the amount of available spectra being used due to the additional independent bus used for each module. Additionally, the added distance that can be achieved with the additional bandwidth is significant, providing the capability of truly achieving an ESP32 Bluetooth jammer implementation with dual NRF24L01 modules.

⇥ What is the difference between HSPI and VSPI on an ESP32 device?
The difference between HSPI and VSPI devices on an ESP32 device is quite simple. HSPI (SPI2) and VSPI (SPI3) are both independent SPI controllers, completely separate in terms of hardware. Each of the two chips has its own SCK, MOSI, MISO, and CS pins dedicated to each chip, as well as being less than 80 MHz and supporting DMA. Each NRF24L01 module has been dedicated to each of the SPI controllers. This allows for true simultaneous RF transmission of data for both NRF24L01 modules without the potential of bus contention.

⇥ Can a power bank be used as an alternative to being powered by a LiPo battery?
Yes, a power bank with a USB connection to the ESP32 USB port (USB-C connector) will work perfectly. The 3.3V regulator on the ESP32 will power both NRF24L01 modules when connected to the ESP32's USB port, as opposed to connecting the USB to VIN for a more compact portable box solution, which is particularly desired if you want to add a toggle switch to the box assembly.

⇥ Why must each NRF24L01 PA+LNA have its own decoupling capacitor?
The PA (Power Amplifier) in the NRF24L01 PA+LNA modules generates huge amounts of instantaneous current for the duration of RF bursts, thus the PA potentially causes voltage dips on the 3.3V rail if there is no decoupling capacitor (10uF electrolytic). If voltage dips occur, the module may reset, fail to initialise or corrupt SPI communication. The capacitor serves as a buffer of energy.

⇥ What is the effective distance of the ESP32 NRF24L01 Bluetooth jamming device? 
The distance you can disrupt with the jamming device will depend on where you are physically located, if there are any objects in between, and the RF strength of the target device. There has been controlled test data showing that under ideal wide open conditions utilising the NRF24L01 PA+LNA modem (output power = +20 dBm), disruption can be observed within a few meters. However, the physical range may be reduced dramatically due to walls, other RF sources, and the FHSS agility of Bluetooth v5.x modems.

⇥ How does a Bluetooth jamming device using NRF24L01 modules differ from a Wi-Fi jamming device or general 2.4GHz jamming device?
The Bluetooth Jamming device incorporates channel flooding to disrupt the channel plan of Bluetooth (1-80 mapped channels) using the same modulation (GFSK) at the same frequency (2.4GHz) as Bluetooth. In contrast to Wi-Fi jamming utilising deauthorization attacks that target 802.11 management frames and continuous carriers that generate un-modulated RF, the jamming devices (Bluetooth, Wi-Fi, and generic 2.4GHz) all work via different means and have different legal implications.

Wireless Communication Projects Using nRF24L01 Modules

Previously, we have used this nRF24L01 to build many interesting projects. If you want to know more about those topics, links are given below.

 Long Range Arduino Based Walkie Talkie using nRF24L01

Long Range Arduino-Based Walkie-Talkie using nRF24L01

Arduino-based walkie-talkie uses nRF24L01 RF modules to transmit voice wirelessly between devices, enabling low-cost, short-range communication via Arduino and audio circuits.

 Arduino based Audio Spy Bug using NRF24L01

Arduino-based Audio Spy Bug using NRF24L01

Wireless audio spy bug captures sound via a microphone and transmits it in real time using nRF24L01 modules, with playback through a speaker on the receiver side.

 Fastest Arduino RC Car using Coreless DC Motors and nRF24L01 RF module

Fastest Arduino RC Car using Coreless DC Motors and nRF24L01 RF module

High-speed RC car uses nRF24L01 modules for wireless control, combining a joystick transmitter and Arduino to drive coreless motors with efficient RF communication.

Have any question related to this Article?

Add New Comment

Login to Comment Sign in with Google Log in with Facebook Sign in with GitHub