An nRF24L01 simulator: two Arduinos talking by radio
Mokxi is a free online nRF24L01 simulator that runs in your browser, with nothing to install and no account needed. Two Arduino Unos, each with an nRF24L01 radio, a button and a red LED, running the same RF24 sketch. Press the button on one and the LED on the other beats, and the sender knows it arrived from the radio’s own acknowledgment.
- 455parts on the bench
- 43boards running now
- 1.00xreal time, on every board
What you can do here
In the circuit above, or in the editor it opens.
- Send a packet from either board and see it arrive on the other
- Read radio.write()’s answer: true only when the other radio acknowledged
- Delete one radio and watch the sender say nobody answered
- Use the RF24 library’s begin, openWritingPipe and startListening as written
- Watch each radio’s LED for listening, sending and a packet received
- Check CE, CSN and the SPI wiring before the modules arrive
What the running circuit shows
One address, a listener on each end, and an acknowledgment.
Both boards run the same sketch. Each opens a reading pipe and a writing pipe on the same five-byte address, “HEART”, and listens all the time. When its button is pressed, a board stops listening for the moment it sends, calls radio.write() with an eight-byte message, and starts listening again. The sender’s serial monitor prints “Heartbeat 1 sent and received”, and the other board prints “A heartbeat for you” and beats its LED twice.
The “and received” is not a guess. An nRF24L01 that hears a packet sends an acknowledgment back in hardware, with no help from the sketch, and radio.write() returns true only when that answer arrives. Delete the right-hand radio and press the left button again: the same call returns false and the serial monitor prints “Heartbeat 1: nobody answered”. That one bool is how most real projects tell a delivered packet from a lost one.
The radios run from each Uno’s 3V3 pin, as they must on a real bench: the nRF24L01’s supply is 1.9 to 3.6 V, while its signal pins take 5 V, which is why it can sit on an Uno’s SPI pins with no level shifter. Nothing in Mokxi burns out, so a radio on 5 V still works here; on a real module that can be the end of it.
How the radio is modeled
The chip behind its SPI port, and an ideal room.
The model is the chip as its product specification describes it: every register with its reset value, the three-deep FIFOs, the 1.5 ms power-up and the 130 µs settling time, and Enhanced ShockBurst with automatic acknowledgments and retries. The RF24 library talks to it exactly as it would to a real module, so CE or CSN on the wrong pin breaks it the way it does on a breadboard. Every radio on the canvas shares one stretch of air, so two that transmit at once spoil each other’s packets, and a radio on another channel or data rate hears nothing.
What it leaves out is the radio itself: there is no distance, no walls and no WiFi interference, and the power level is stored but changes nothing. So the range problems people chase on real modules, and the dropouts when the Uno’s 3V3 pin cannot keep up with a transmit burst, do not happen here. On a real bench, put a 10 µF capacitor across each module’s VCC and GND before anything else.
Questions
Is it free?
Yes. The circuit on this page, every part in it and the editor it opens in are on the free plan, with no card.
Do I need an account?
No. The circuit runs the moment the page does, and the editor opens without one. A free account is only for saving a project to the cloud and sharing it by link.
Can I simulate two Arduinos talking over nRF24L01?
Yes. That is the circuit above: two Unos, two radios and the RF24 library, with no wire between the radios. Every radio on the canvas shares the same air, so the boards talk as soon as their addresses and channels match.
Why does radio.write() return false?
Because no radio acknowledged the packet. The other board is not listening on that address and channel, its CE or CSN is wired to the wrong pin, or, on real hardware, it is out of range or its 3.3 V supply sags. Delete one radio above and press the button to see it.
Does the nRF24L01 need 3.3 V?
Yes. Its supply is 1.9 to 3.6 V, so power it from 3V3, never 5 V. Its signal pins take 5 V, which is why it can connect straight to an Uno’s SPI pins.
More simulators
Each one opens on a circuit that is already running.
Send a heartbeat
Open the circuit, press a button and watch the other board answer. Nothing to install, and no account needed.