Home

Awesome

NRF24-total-control

NRF24L01+ (and clones) registers at your fingertips
roboremo_interface_screenshot
To use it, copy the interface file to the roboremo folder on the sdcard of your tablet, then open RoboRemo and select menu -> interface -> import and choose the file.

Working principle

One or more NRF24L01+ (or clones) module is connected to the Arduino UNO using any 6 digital pins for each transceiver (I use software SPI, so any digital pin can be used)
The Arduino UNO is connected to a Galaxy Tab 4 using USB cable and OTG adapter
The tablet runs RoboRemo app.
To connect, select menu -> connect -> USB -> 115200 -> OK
I created a RoboRemo interface with many buttons for configuring different registers of the NRF. When you press a button, the app sends a specific command to the Arduino, which controls the transceiver(s). You can easily add more buttons, according to your needs. You can select menu -> edit ui, and then click on any button and select "set press action" in order to view and/or modify the command associated with that button.

Available commands

CommandExamplesDescription
"use pins [...]""use pins 2 12 11 13 10 8"Switch between the transceivers. Must provide exactly 6 pins (IRQ, MISO, MOSI, SCK, CSN, CE), separated by space.
"spi init"Initialize the software SPI pins
"ce high"Switch CE pin to HIGH state
"ce low"Switch CE pin to LOW state
"sb XX b""sb 00 1"Set bit b in the register XX. (XX is the register address, a 2-digit hex number)
"cb XX b"Clear bit b in the register XX.
"rb XX b"Read bit b from the register XX.
"write RR DD[...]""write 05 00", "write 1f cd3f7f9c20"Write data to register. (RR is the register address, a 2-digit hex number, DD[...] is the data, even-digit hex number)
"wrcmd CC DD[...]""wrcmd 50 73", "wrcmd b0 0000000000000000"Write command. CC is the command number, a 2-digit hex number, DD[...] is the data, even-digit hex number
"read NN RR""read 05 0a", "read 01 05"Read NN bytes from register RR. NN is the byte count to read, a 2-digit hex number, RR si the regidter address, a 2-digit hex number
"bank 1"Select bank 1 (for RFM73)
"bank 0"Select bank 0 (for RFM73)

This project, together with this: https://github.com/roboremo/NRF24-demodulator form a complete tool for debugging and demystifying some Chinese NRF24L01 clones :)