RF Nano

Last Updated on 1. April 2022 by sfambach

Der RF Nano ist ein Replik des Arduino Nano zusätzlich verfügt er noch über einen NRF24L01 Bautstein. Was ihm die RF Kommuninkation ermöglicht.

Vorsicht es gibt unterschiedliche Versionen dieses Nanos, es lohnt sich also genau hin zu schauen.

Fakten

Das Board sieht wie ein gewöhnlicher Nano aus, wenn da nicht die aufgedampfte Antenne(unten) und ein Micro USB anstatt des Mini-USB Anschlusses wären.

Pinbelegung Nano RF
Pin Belegung Nano RF (Quelle: vom Hersteller siehe Links unten)

Vergleich mit dem Standard

Die Pinbelegung habe ich mit dem Standard verglichen, diese ist bei mir gleich. (Bitte nochmal überprüfen, da andere Imitate abweichende Pin Belegungen haben könnten).

Pin Vergleich Standard zu Nano RF

NRF Verbindungen

Die Pin-Informationen sind dem Schaltplan des Herstellers entnommen.

ACHTUNG: Die Pins für CE und CSN sind bei mir, im Gegenteil zu den meisten Beispielen im Netz, vertauscht, es soll aber auch RF-Nanos mit richtiger Pinbelegung geben.

BeschreibungPin
CE10 (9)
CSN9 (10)
SCK13
MOSI4
MISO5
RF Nano – Pin-Belegung

Anwendungsbereiche

  • Ferngesteuerung
  • Sensor Knoten
  • Alles was mit einander kommunizieren muss.

Ansichten

Programmierung

Bibliotheken

Vom Hersteller benutzte Bibliothek

Meine bewährte Bibliothek hat beim ersten Test nicht funktioneirt, weshab ich erstmal die des Herstellers ausprobiert habe. So konnte ich den Fehler in meinem Programm finden.

https://github.com/joewalnes/arduino-play/tree/master/lib/Mirf

https://github.com/tmrh20/RF24/

Standard RF Bibliothek

Hier die Standard-Bibliothek die ich schon in anderen Projekten verwendet habe.

https://github.com/tmrh20/RF24/

Testprogramme

Programm des Herstellers

Für den ersten Test verwende ich die Programme des Herstellers. Der Quellcode ist auf Github über den folgenden Link verfügbar:

https://github.com/emakefun/emakefun-nano-plus

Ich habe 2 gleiche Nanos erworben und den einen als Empfänger und den anderen als Sender programmiert. Die Ausgabe ist im folgenden Bild zu sehen.

Konsolenausgabe: links Sender, rechts Empfänger.

Test mit RF Bibliothek

Hier mein Testprogramm mit der RF Bibliothek. Die Bibliotheksdateien habe ich einfach ins Projekt kopiert. Hier der Code:

Link zum Github Verzeichnis:

https://github.com/sfambach/arduino/tree/master/variants/NanoRF/RFTest

Konsolenausgabe: links Empfänger, rechts Sender.

Fernbedienungs Test

Ich habe bereits ein paar Tests mit NRF Chips gemacht. Unteranderem habe ich eine SunFounder Fernbedienung in Betrieb genommen. Diese verwende ich in diesem Sketch als Basis. Die Software ist gleich zu der im gelinkten Projekt, jedoch habe ich für den Empfänger (der auf dem Nano RF ist) den CS auf Pin 10 und den CSN auf Pin 9 eingestellt.

Link zum Vorgänger Projekt

Von Github kann der aktuelle Quellcode geladen werden:

https://github.com/sfambach/arduino/tree/master/variants/NanoRF/SFRemoteTest

Den Receiver wie oben beschrieben auf den Nano RF spielen. Den Transmitter, so wie er ist auf die Fernbedienung spielen.

So sieht die Konsolenausgabe auf dem Empfänger aus.

Probleme

Erste Kommunikation mit RF24 schlug fehl

Der CE und der CSN Pin sind in Gegensatz zu meinen anderen Projekten vertauscht. CE ist auf Pin 10 und CSN ist auf Pin 9.

ACHTUNG Siegfried berichtet (siehe unten in den Kommetaren) , dass er einen Nano mit richtiger Pinbelegung bekommen hat also CSN auf 10 und CE auf 9!

Nano wird von Windows nicht erkannt

Evtl. mal einen CH340 Usb Treiber installieren.

https://github.com/emakefun/emakefun-nano-plus/tree/master/RF-Nano/CH340_Driver

Nahe stehende Empfänger verbinden sich nicht

Rachid beschreibt (siehe unten in den Kommetaren), dass er Probleme bei nahe beieinander stehenden Sender und Empfängern hat und die Initialisierung schief läuft. Bei ihm hat geholfen dei Power hoch zu setzten. Bei den diskreten nRF Modulen kann dies zu Problemen mit der Spannungsversorgung führen.

 radio.setPALevel(RF24_PA_LOW);   // set power 
// tauschen durch
radio.setPALevel(RF24_PA_MAX); 

Kanal setzten

Jens beschreibt (siehe unten in den Kommetaren), dass es von Vorteil sein kann den Kanal manuell zu setzen. Dieser wird in der begin Methode der RF lib zwar auf 76 gesetzt zur Fehlerbehebung kann dies jedoch eine Lösung sein, diesen in Sender/Empfänger gemeinsam auf einen einen anderen Wert zu setzen.

void setup(){
  ...
  radio.setPALevel(RF24_PA_LOW); 
  radio.setChannel(99); // Kanal setzen
  ...
}

Fazit

Ich bin begeistert, ein Nano mit einem RF Chip, alles was man benötigt um Fergesteuerte bots zu bauen. Hier kann man sich das Verdrahten sparen. Über die Stabilität und das Verhalten im Einsatz kann ich noch nichts berichten. Der erste Test war hierfür zu simpel.

Verwandte Beiträge

Quellen

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

8 Gedanken zu „RF Nano

  1. Hallo Stefan,

    ich habe heute einen RF Nano aus China erhalten (V3.0) und dabei festgestellt, dass er nur arbeitet, wenn ich CE auf D9 und CSN auf D10 im Programm vorgebe. Mit der in verschiedenen Datenblättern und bei Dir genannten Variante kommt keine Übertragung zustande.

    Gruß Siegfried

  2. HI Stefan,
    danke für die Infos. Ich denke, dass bei dem Beispiel mit der RF-Bibliothek noch der Kanal gesetzt werden soltle, bspw. nach der Sendestärke:

    radio.setPALevel(RF24_PA_LOW); // set power
    radio.setChannel(99); // NEU
    ,,,

    Viele Grüße,
    Jens

    1. Hallo Jens,
      danke für deinen Vorschlag. Der Kanal wird in der begin Methode der RF Biliothek auf 76 gesetzt. Ich habe es dennoch ausdokumentiert mit in den Code aufgenommen um evtl. Probleme zu beheben.
      Gruß aus Hessen
      Stefan

      1. Hallo Stefan,
        habe mich gefreut, dass du gleich geantwortet hast. Ich hatte Probleme, wahrscheinlich weil ich Sender und Empfänger unabhängig genutzt habe. Allerdings hatte ich auch die RF24-Library über den Arduino-Bibliotheksmanager eingebunden.
        Viele Grüße,
        Jens

  3. Guten Tag,

    ich habe eigentlich alles verfolgt wie beschrieben. CE und CSN Pins sind auch korrekt. Verdrahtung ist soweit auch sauber. Leider steht meine Ausgabe immer bei „SPI settings
    init rf“ und das wars. Wo könnte mein Problem liegen?

    Vielen Dank.

    1. Hallo Rachid, ich kenne deinen genauen Testaufbau leider nicht. Zum Beispiel was deine Gegenstelle ist. Aber die RF Module, gerade die neueren, sind sehr kritisch was die Versorgungsspannung an geht. Wenn das eine Option ist, mal den Nano mit einer externen Spannungsquelle verbinden.
      Auch kann man mit den Einstellungen spielen. Evtl nochmal pin cs und csn Pin rücktauschen.
      Gruß
      Stefan

      1. Hallo Stefan,
        vielen Dank für die schnelle Antwort.
        Ich habe jetzt PA_LOW mit PA_MAX getauscht und dann hats funktioniert. Manchmal zu langsam und manchmal genau. Aber ich denke nur weil Empfänger und Sender zu nah stehen.
        Vielen Dank.
        VG,
        Rachid

        1. Hi Rachid,
          danke für deine Lösung. Es wundert mich, dass mehr Power und bei kurzen Strecken was ändert, werde es mit in die Problembehandlung mit aufnehmen.
          Gruß aus Hessen
          Stefan

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert