Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Hardware
  3. What radio to use? NRF24L01+, RFM69, RFM73 ?

What radio to use? NRF24L01+, RFM69, RFM73 ?

Scheduled Pinned Locked Moved Hardware
52 Posts 11 Posters 49.2k Views 9 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Cliff KarlssonC Offline
    Cliff KarlssonC Offline
    Cliff Karlsson
    wrote on last edited by
    #13

    @fets said:

    s so you need to adapt level

    I just got my rfm69hw´s and connected it to an arduino nano for a couple of seconds before i realized that I needed to adapt the level. Is it possible that it survived this mistake?

    I have nov connected a IIC I2C Interface Level Conversion Module 5-3v
    I connected NSS,Mosi,SCK and GND to the "B" side and connected the arduino nano to the "A" side. Is this correct?

    1 Reply Last reply
    0
    • fetsF Offline
      fetsF Offline
      fets
      wrote on last edited by
      #14

      @Cliff-Karlsson seems correct.
      Personnaly I use 3 * 2 resistors (10k and 4.7k) for NS, MOSI and SCK rfm69hw inputs.
      Don't forget to change MyTransportRF69 contructor to use high power RFM69 ;)

      1 Reply Last reply
      1
      • Cliff KarlssonC Offline
        Cliff KarlssonC Offline
        Cliff Karlsson
        wrote on last edited by
        #15

        @fets said:

        H version stands for High power.
        C version is pin compatible with RFM12.
        RFM69 uses SPI so the connections are :

        Arduino RFM69
        10 <-------------------> NSS
        11 <-------------------> MOSI
        12 <-------------------> MISO
        13 <-------------------> SCK
        DI00 <-------------------> 2
        GND <-------------------> GND
        3.3V
        ANA : antenna

        NSS, MOSI and SCK are inputs so you need to adapt level if you use 5V arduino

        I have connected a RFM69HW to my arduino nano+rpi gateway and have connected a RFM69W+Mini Pro 3.3V to a soil sensor but nothing shows up in Domoticz. Do I have to do anything else? Do I need a external antenna? The two RFM's is only like 1m apart.

        fetsF 1 Reply Last reply
        0
        • Cliff KarlssonC Offline
          Cliff KarlssonC Offline
          Cliff Karlsson
          wrote on last edited by
          #16

          Do I need to alter the code for the gateway or the sensor-sketches?

          1 Reply Last reply
          0
          • Cliff KarlssonC Cliff Karlsson

            @fets said:

            H version stands for High power.
            C version is pin compatible with RFM12.
            RFM69 uses SPI so the connections are :

            Arduino RFM69
            10 <-------------------> NSS
            11 <-------------------> MOSI
            12 <-------------------> MISO
            13 <-------------------> SCK
            DI00 <-------------------> 2
            GND <-------------------> GND
            3.3V
            ANA : antenna

            NSS, MOSI and SCK are inputs so you need to adapt level if you use 5V arduino

            I have connected a RFM69HW to my arduino nano+rpi gateway and have connected a RFM69W+Mini Pro 3.3V to a soil sensor but nothing shows up in Domoticz. Do I have to do anything else? Do I need a external antenna? The two RFM's is only like 1m apart.

            fetsF Offline
            fetsF Offline
            fets
            wrote on last edited by
            #17

            @Cliff-Karlsson said:
            Do I need a external antenna? The two RFM's is only like 1m apart.

            I never tested without antenna. I used simple wire the length dependinf of your frequency?
            Did you look at your arduino serial outpout ?
            If there is nothing, it may that because RFM69 init failed

            1 Reply Last reply
            0
            • NeverDieN Offline
              NeverDieN Offline
              NeverDie
              Hero Member
              wrote on last edited by
              #18

              Yes you should put an antenna on. It doesn't have a PCB trace antenna. A simple piece of wire, typically cut to 1/4 wavelength, will work fine.

              1 Reply Last reply
              0
              • Cliff KarlssonC Offline
                Cliff KarlssonC Offline
                Cliff Karlsson
                wrote on last edited by
                #19

                Ok, I have some thin insulated copper wire, will that work? And how long wire will I need for the 868mhz frequency?

                But just to be clear, do I need to alter the gateway or the sensor sketches in some way to have it use the rfm radio?

                1 Reply Last reply
                0
                • fetsF Offline
                  fetsF Offline
                  fets
                  wrote on last edited by
                  #20

                  1/4 wavelength = (3 10^8 / (868 10^6)) / 4 =>about 8.64 cm

                  1 Reply Last reply
                  0
                  • Cliff KarlssonC Offline
                    Cliff KarlssonC Offline
                    Cliff Karlsson
                    wrote on last edited by
                    #21

                    Thanks, sorry for repeating the question but do I need to alter the code on gateway or sensors?

                    1 Reply Last reply
                    0
                    • fetsF Offline
                      fetsF Offline
                      fets
                      wrote on last edited by
                      #22

                      You only need to create a MyTransportRFM69 instead of MyTransportNRF24. This is the constructor : MyTransportRFM69 (RFM69_FREQUENCY, RFM69_NETWORKID, RF69_SPI_CS, RF69_IRQ_PIN, isRFM69HW, RF69_IRQ_NUM);
                      if you use a RFM99H, you have to set the 5th parameter (isRFMHW) to true.

                      1 Reply Last reply
                      0
                      • Cliff KarlssonC Offline
                        Cliff KarlssonC Offline
                        Cliff Karlsson
                        wrote on last edited by
                        #23

                        Sorry for being semi-retarded, but is this done in the gateway sketch? Sensor
                        -sketch or both? Is there any documentation on this part as I am a complete beginner.

                        1 Reply Last reply
                        0
                        • fetsF Offline
                          fetsF Offline
                          fets
                          wrote on last edited by
                          #24

                          both, here is the documentation

                          1 Reply Last reply
                          0
                          • FrancoisF Offline
                            FrancoisF Offline
                            Francois
                            wrote on last edited by Francois
                            #25

                            @Cliff-Karlsson You have to change the following setting in Myconfig.h for you radio

                            
                            /**********************************
                            *  RFM69 Driver Defaults
                            ***********************************/
                            // Default network id. Use the same for all nodes that will talk to each other
                            #define RFM69_NETWORKID     100
                            
                            // Default frequency to use. This must match the hardware version of the RFM69 radio (uncomment one):
                             #define RFM69_FREQUENCY   RF69_433MHZ
                            //#define RFM69_FREQUENCY   RF69_868MHZ
                            //#define FREQUENCY     RF69_915MHZ
                            
                            // Enable this for encryption of packets
                            //#define RFM69_ENABLE_ENCRYPTION
                            #define RFM69_ENCRYPTKEY  "sampleEncryptKey"
                            
                            

                            Then in MySensor.h you change the following:

                            ifndef MySensor_h
                            #define MySensor_h
                            #include "Version.h"   // Auto generated by bot
                            #include "MyConfig.h"
                            #include "MyHw.h"
                            #include "MyTransport.h"
                            //#include "MyTransportNRF24.h"
                            #include "MyTransportRFM69.h" 
                            #include "MyParser.h"
                            #ifdef MY_SIGNING_FEATURE
                            #include "MySigning.h"
                            #include "MySigningNone.h"
                            #endif
                            #include "MyMessage.h"
                            #ifdef MY_OTA_FIRMWARE_FEATURE
                            #include "utility/SPIFlash.h"
                            #endif
                            #include <stddef.h>
                            #include <stdarg.h>```
                            
                            
                            // look for this lines and changes this
                            
                            class MySensor
                            {
                              public:
                            	/**
                            	* Constructor
                            	*
                            	* Creates a new instance of Sensor class.
                            	*
                            	*/
                            	//MySensor(MyTransport &radio =*new MyTransportNRF24(), MyHw &hw=*new MyHwDriver()
                            	MySensor(MyTransport &radio =*new MyTransportRFM69(), MyHw &hw=*new MyHwDriver()
                            1 Reply Last reply
                            0
                            • Cliff KarlssonC Offline
                              Cliff KarlssonC Offline
                              Cliff Karlsson
                              wrote on last edited by
                              #26

                              @fets said:

                              MyTransportRFM69 (RFM69_FREQUENCY, RFM69_NETWORKID, RF69_SPI_CS, RF69_IRQ_PIN, isRFM69HW, RF69_IRQ_NUM);

                              Hmm. I can't get it to work. This is what I have done:
                              In Myconfig.H:

                              Everything was already set up like the example only 868Mhz was uncommented and that is the same as I got.

                              Mysensors.h:

                              Commented #include "MyTransportNRF24.h" as in the example.
                              Added "#include "MyTransportRFM69.h" as it was not present.

                              Under class Mysensor,
                              Commented "MySensor(MyTransport &radio =*new MyTransportNRF24(), MyHw &hw=*new MyHwDriver()"
                              Added "MySensor(MyTransport &radio =*new MyTransportRFM69(), MyHw &hw=*new MyHwDriver()"

                              In the Serial Gateway sketch:
                              Commented the line "#include <MyTransportNRF24.h>"
                              Commented the line "MyTransportNRF24 transport(RF24_CE_PIN, RF24_CS_PIN, RF24_PA_LEVEL_GW);"
                              Added the line "MyTransportRFM69 (RFM69_FREQUENCY, RFM69_NETWORKID, RF69_SPI_CS, RF69_IRQ_PIN, isRFM69HW=true, RF69_IRQ_NUM);

                              When trying to upload to my nano I get an error:

                              'transport' was not declared in this scope.
                              And this line is highlighted: MySensor gw(transport, hw /, signer/);

                              fetsF 1 Reply Last reply
                              0
                              • Cliff KarlssonC Cliff Karlsson

                                @fets said:

                                MyTransportRFM69 (RFM69_FREQUENCY, RFM69_NETWORKID, RF69_SPI_CS, RF69_IRQ_PIN, isRFM69HW, RF69_IRQ_NUM);

                                Hmm. I can't get it to work. This is what I have done:
                                In Myconfig.H:

                                Everything was already set up like the example only 868Mhz was uncommented and that is the same as I got.

                                Mysensors.h:

                                Commented #include "MyTransportNRF24.h" as in the example.
                                Added "#include "MyTransportRFM69.h" as it was not present.

                                Under class Mysensor,
                                Commented "MySensor(MyTransport &radio =*new MyTransportNRF24(), MyHw &hw=*new MyHwDriver()"
                                Added "MySensor(MyTransport &radio =*new MyTransportRFM69(), MyHw &hw=*new MyHwDriver()"

                                In the Serial Gateway sketch:
                                Commented the line "#include <MyTransportNRF24.h>"
                                Commented the line "MyTransportNRF24 transport(RF24_CE_PIN, RF24_CS_PIN, RF24_PA_LEVEL_GW);"
                                Added the line "MyTransportRFM69 (RFM69_FREQUENCY, RFM69_NETWORKID, RF69_SPI_CS, RF69_IRQ_PIN, isRFM69HW=true, RF69_IRQ_NUM);

                                When trying to upload to my nano I get an error:

                                'transport' was not declared in this scope.
                                And this line is highlighted: MySensor gw(transport, hw /, signer/);

                                fetsF Offline
                                fetsF Offline
                                fets
                                wrote on last edited by
                                #27

                                @Cliff-Karlsson, sorry for my late answer.
                                you made a mistake on the line added in the serialgateway, it should be :
                                MyTransportRFM69 transport (RFM69_FREQUENCY, RFM69_NETWORKID, RF69_SPI_CS, RF69_IRQ_PIN, true, RF69_IRQ_NUM) ;

                                1 Reply Last reply
                                0
                                • GertSandersG Offline
                                  GertSandersG Offline
                                  GertSanders
                                  Hardware Contributor
                                  wrote on last edited by
                                  #28

                                  Has anyone used the Raspberry Pi Gateway implementation with an Rf69? Does it work? On which pin does one connect the interrupt pin ?

                                  1 Reply Last reply
                                  0
                                  • Cliff KarlssonC Offline
                                    Cliff KarlssonC Offline
                                    Cliff Karlsson
                                    wrote on last edited by Cliff Karlsson
                                    #29

                                    @fets said:

                                    Personnaly I use 3 * 2 resistors (10k and 4.7k) for NS, MOSI and SCK rfm69hw inputs.

                                    Ok, I am continuing with my neverending story :) I have gotten the sketches to complie and I have used a 8.6cm wire as antenna for both of them. But I still does not se any sensors in domoticz. I might have destroyed my radios as I might have accidently used 5 volts on them for a short while. I am trying to use some new radios this time.

                                    First question: I have a RFM69HW on my gateway and a RFM69W on my sensor (both 868Mhz) They are compatible as I understand only that the H is more powerful?

                                    Second question: If I am using a Nano I can just cut a cable in two and solder a 10k and a 4.7k in series in between them before connecting the NS, MOSI and SCK ? When checking online voltage divider calculators online and specify 5V in and 10k + 4,7k resistors it says that voltage out is 1.599v

                                    NeverDieN fetsF 2 Replies Last reply
                                    0
                                    • Cliff KarlssonC Cliff Karlsson

                                      @fets said:

                                      Personnaly I use 3 * 2 resistors (10k and 4.7k) for NS, MOSI and SCK rfm69hw inputs.

                                      Ok, I am continuing with my neverending story :) I have gotten the sketches to complie and I have used a 8.6cm wire as antenna for both of them. But I still does not se any sensors in domoticz. I might have destroyed my radios as I might have accidently used 5 volts on them for a short while. I am trying to use some new radios this time.

                                      First question: I have a RFM69HW on my gateway and a RFM69W on my sensor (both 868Mhz) They are compatible as I understand only that the H is more powerful?

                                      Second question: If I am using a Nano I can just cut a cable in two and solder a 10k and a 4.7k in series in between them before connecting the NS, MOSI and SCK ? When checking online voltage divider calculators online and specify 5V in and 10k + 4,7k resistors it says that voltage out is 1.599v

                                      NeverDieN Offline
                                      NeverDieN Offline
                                      NeverDie
                                      Hero Member
                                      wrote on last edited by
                                      #30

                                      First question: I have a RFM69HW on my gateway and a RFM69W on my sensor (both 868Mhz) They are compatible as I understand only that the H is more powerful?

                                      Assuming they are of the same frequency, then basically yes, though there is one small difference in the code to account for the RFM69HW having a PA, which MUST be turned on for it to transmit.

                                      1 Reply Last reply
                                      0
                                      • Cliff KarlssonC Cliff Karlsson

                                        @fets said:

                                        Personnaly I use 3 * 2 resistors (10k and 4.7k) for NS, MOSI and SCK rfm69hw inputs.

                                        Ok, I am continuing with my neverending story :) I have gotten the sketches to complie and I have used a 8.6cm wire as antenna for both of them. But I still does not se any sensors in domoticz. I might have destroyed my radios as I might have accidently used 5 volts on them for a short while. I am trying to use some new radios this time.

                                        First question: I have a RFM69HW on my gateway and a RFM69W on my sensor (both 868Mhz) They are compatible as I understand only that the H is more powerful?

                                        Second question: If I am using a Nano I can just cut a cable in two and solder a 10k and a 4.7k in series in between them before connecting the NS, MOSI and SCK ? When checking online voltage divider calculators online and specify 5V in and 10k + 4,7k resistors it says that voltage out is 1.599v

                                        fetsF Offline
                                        fetsF Offline
                                        fets
                                        wrote on last edited by
                                        #31

                                        @Cliff-Karlsson,
                                        question 2 : I think you misplaced the connection to RFM69 :
                                        Here is how to connect arduino and RFM69.
                                        Is it what you did ? (I bet you switched 4.7k ans 10k )

                                        divisor.png

                                        1 Reply Last reply
                                        0
                                        • Cliff KarlssonC Offline
                                          Cliff KarlssonC Offline
                                          Cliff Karlsson
                                          wrote on last edited by
                                          #32

                                          I am still having some problems with getting any data from the RFM69.

                                          Do I need to define some pins to like in the NRF24L01 section in the Myconfig.h ?
                                          I have not defined any pins anywhere for the RFM69 or do I not need to do that?

                                          /**********************************
                                          *  NRF24L01 Driver Defaults
                                          ***********************************/
                                          #define RF24_CE_PIN		   9
                                          #define RF24_CS_PIN		   10
                                          #define RF24_PA_LEVEL 	   RF24_PA_MAX
                                          #define RF24_PA_LEVEL_GW   RF24_PA_LOW
                                          // RF channel for the sensor net, 0-127
                                          #define RF24_CHANNEL	   76
                                          //RF24_250KBPS for 250kbs, RF24_1MBPS for 1Mbps, or RF24_2MBPS for 2Mbps
                                          #define RF24_DATARATE 	   RF24_250KBPS
                                          // This is also act as base value for sensor nodeId addresses. Change this (or channel) if you have more than one sensor network.
                                          #define RF24_BASE_RADIO_ID ((uint64_t)0xA8A8E1FC00LL)
                                          
                                          // Enable SOFTSPI for NRF24L01 when using the W5100 Ethernet module
                                          //#define SOFTSPI
                                          #ifdef SOFTSPI
                                          	// Define the soft SPI pins used for NRF radio
                                          	const uint8_t SOFT_SPI_MISO_PIN = 16;
                                              const uint8_t SOFT_SPI_MOSI_PIN = 15;
                                              const uint8_t SOFT_SPI_SCK_PIN = 14;
                                          #endif
                                          
                                          
                                          /**********************************
                                          *  RFM69 Driver Defaults
                                          ***********************************/
                                          // Default network id. Use the same for all nodes that will talk to each other
                                          #define RFM69_NETWORKID     100
                                          
                                          // Default frequency to use. This must match the hardware version of the RFM69 radio (uncomment one):
                                          // #define RFM69_FREQUENCY   RF69_433MHZ
                                          #define RFM69_FREQUENCY   RF69_868MHZ
                                          //#define FREQUENCY     RF69_915MHZ
                                          
                                          // Enable this for encryption of packets
                                          //#define RFM69_ENABLE_ENCRYPTION
                                          #define RFM69_ENCRYPTKEY    "sampleEncryptKey" //exactly the same 16 characters/bytes on all nodes!```
                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          8

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.0k

                                          Posts


                                          Copyright 2019 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • MySensors
                                          • OpenHardware.io
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular