Last Updated on 1 April 2022 by Suffocation
The RF Nano is a replica of the Arduino Nano, and also features an NRF24L01 module, which enables RF communication.
Caution, there are different versions of this Nano, so it's worth looking closely.
Facts
The board looks like a regular Nano, were it not for the vapor-deposited antenna (bottom) and a Micro USB instead of the Mini USB port.

Comparison with standard
I have compared the pin assignment with the standard and it is the same for me. (Please check again, as other imitations might have different pin assignments).

NRF Connections
The pin information is taken from the manufacturer's circuit diagram.
ATTENTION: The pins for CE and CSN are swapped on mine, contrary to most examples online, but there are also RF Nanos with the correct pin assignment.
| Description | Pin |
| CE | 10 (9) |
| Counter-Strike: Global Offensive | 9 (10) |
| SCK | 13 |
| MOSI | 4 |
| Miso | 5 |
Areas of application
- Remote control
- Sensor node
- Everything that needs to communicate with each other.
Views


Programming
Libraries
Manufacturer-used library
My tried and tested library didn't work on the first test, so I initially tried the manufacturer's one. This allowed me to find the error in my programme.
https://github.com/joewalnes/arduino-play/tree/master/lib/Mirf
https://github.com/tmrh20/RF24/
Standard RF Library
Here is the standard library that I have already used in other projects.
https://github.com/tmrh20/RF24/
Test programme
Manufacturer's programme
For the first test, I will use the manufacturer's programmes. The source code is available on Github via the following link:
https://github.com/emakefun/emakefun-nano-plus
I have acquired two identical Nanos and programmed one as a receiver and the other as a sender. The output is shown in the following image.

Test with RF Library
Here's my test program with the RF library. I've simply copied the library files into the project. Here's the code:
Link to the GitHub directory:
https://github.com/sfambach/arduino/tree/master/variants/NanoRF/RFTest

Remote control test
I've already done a few tests with NRF chips. Among other things, I put a SunFounder remote control into operation. I'm using this as a basis in this sketch. The software is the same as in the linked project, but for the receiver (which is on the Nano RF), I have set the CS to pin 10 and the CSN to pin 9.
The current source code can be downloaded from Github
https://github.com/sfambach/arduino/tree/master/variants/NanoRF/SFRemoteTest
Play the receiver as described above to the Nano RF. Play the transmitter as it is to the remote control.

Problems
Initial communication with RF24 failed
The CE and CSN pins are swapped compared to my other projects. CE is on pin 10 and CSN is on pin 9.
ATTENTION Siegfried reports (see below in the comments) that he has received a Nano with the correct pin assignment, i.e. CSN on 10 and CE on 9!
Windows does not recognise Nano
Maybe install a CH340 USB driver.
https://github.com/emakefun/emakefun-nano-plus/tree/master/RF-Nano/CH340_Driver
Nearby receivers won't connect
Rachid describes (see below in the comments) that he has problems with closely spaced transmitters and receivers and that the initialisation goes wrong. He found that increasing the power helped. With discrete nRF modules, this can lead to power supply problems.
radio.setPALevel(RF24_PA_LOW); // set power
// exchanged for
radio.setPALevel(RF24_PA_MAX);
Set channel
Jens describes (see comments below) that it can be advantageous to set the channel manually. Although this is set to 76 in the `begin` method of the RF lib, setting it to a different value for both sender and receiver can be a solution for troubleshooting.
void setup(){
...
radio.setPALevel(RF24_PA_LOW);
radio.setChannel(99); // Set channel
...
}
Conclusion
I'm delighted to have a Nano with an RF chip, everything you need to build remote-controlled bots. You can save on wiring here. I can't say anything about the stability or performance in use yet. The first test was too simple for that.
Related Posts
Sources
https://github.com/emakefun/emakefun-nano-plus
https://github.com/tmrh20/RF24/
https://github.com/emakefun/emakefun-nano-plus/tree/master/RF-Nano/CH340_Driver
I have two RF-Nano Clones V1229 from AliExpress (supposedly V3.0). You can recognise V1x by the lack of an antenna socket.
They work with RF24 SendRadio(10,9) using the example scripts from the manufacturer's GitHub repo. https://github.com/emakefun/rf-nano. The set transmission power is irrelevant, at least as long as the nanos are next to each other.
Thank you for your contribution
Hello Stefan,
I received an RF Nano from China today (V3.0) and found that it only works when I specify CE on D9 and CSN on D10 in the program. With the variant mentioned in various datasheets and by you, no transmission is established.
Greetings Siegfried
Hi Stefan,
Thanks for the info. I think that in the example with the RF library, the channel should still be set, e.g. after the transmit power:
...
radio.setPALevel(RF24_PA_LOW);
radio.setChannel(99); // NEW
,,,
Kind regards,
Jens
Hello Jens,
Thank you for your suggestion. The channel is set to 76 in the begin method of the RF library. I have nevertheless documented it in the code to fix potential problems.
Greetings from Hesse
Stefan
Hello Stefan,
I was pleased that you replied so quickly. I had problems, probably because I was using the transmitter and receiver independently. However, I had also included the RF24 library via the Arduino library manager.
Kind regards,
Jens
Good day,
I've actually followed everything as described. CE and CSN pins are also correct. The wiring is clean so far. Unfortunately, my output always stops at „SPI settings".
init rf“ and that's it. Where could my problem lie?
Thank you very much.
Hello Rachid, I don't know your exact test setup, for example what your counterpart is. But the RF modules, especially the newer ones, are very critical regarding the supply voltage. If that's an option, try connecting the Nano to an external power source.
You can also play around with the settings. Perhaps swap the PIN for CS and CSN again.
Hello
Stefan
Hello Stefan,
Thank you very much for the quick reply.
I have now swapped PA_LOW with PA_MAX and then it worked. Sometimes too slow and sometimes just right. But I think it's only because the receiver and transmitter are too close.
Thank you very much.
Very good,
Rachid
Hi Rachid,
Thank you for your solution. It surprises me that more power and in short distances changes something, I will include it in the troubleshooting.
Greetings from Hesse
Stefan