Source: https://mokxi.com/nrf24l01-simulator

Simulator

# 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.

Start building free or follow the nRF24L01 tutorial

- 455 parts on the bench
- 43 boards running now
- 1.00x real time, on every board

Hold the button

## 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.

The nRF24L01 tutorial and a radio doorbell SPI, explained Two Arduinos talking over serial The HC-05 Bluetooth module simulator

## 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.

Online circuit simulator Breadboard simulator ESP32 simulator Op-amp simulator Logic gate simulator LED circuit simulator Servo simulator LCD simulator OLED simulator NeoPixel simulator 7 segment display simulator LED matrix simulator Stepper motor simulator Motor driver simulator Ultrasonic sensor simulator Rectifier simulator Digital circuit simulator Potentiometer simulator PWM simulator Relay simulator Shift register simulator DHT11 simulator RFID simulator Accelerometer simulator RGB LED simulator Buzzer simulator MOSFET simulator Circuit simulator for kids Flip-flop simulator Multiplexer simulator Full adder simulator I2C simulator UART simulator Thermistor simulator PIR sensor simulator Oscilloscope simulator Multimeter simulator DC motor simulator Traffic light simulator Diode simulator Capacitor simulator Series and parallel circuit simulator Wheatstone bridge simulator Voltage regulator simulator Soil moisture sensor simulator Zener diode simulator Solar panel simulator AC circuit simulator Thevenin simulator Decoder simulator Encoder simulator PID simulator Robot arm simulator Load cell simulator IR sensor simulator LM35 simulator HC-05 Bluetooth simulator

## Send a heartbeat

Open the circuit, press a button and watch the other board answer. Nothing to install, and no account needed.

Start building free Open the editor
