RF Nano

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.

Pinbelegung Nano RF
Nano RF Pinout (Source: from manufacturer, see links below)

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

Pin comparison Standard to Nano RF

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.

DescriptionPin
CE10 (9)
Counter-Strike: Global Offensive9 (10)
SCK13
MOSI4
Miso5
RF Nano – Pin assignment

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.

Console output: left sender, right receiver.

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

Console output: left recipient, right sender.

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.

Link to previous project

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.

This is what the console output looks like on the receiver.

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

https://github.com/nulllaborg/lgt-rf-nano

10 thoughts on “RF Nano

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

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

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

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

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

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

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

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

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

Leave a Reply

Your email address will not be published. Required fields are marked *