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 Cliff Karlsson

    One more question after reading a litte more on the RFM69. The RFM69HW offer great range but draws alot of power so I guess I would not be ideal to use in battery powered sensors witch transmits every 60 sec or so.

    But If I use a RFM69HW just in the controller and then use the ordinary RFM69 in the sensors I guess that even large houses with alot of walls would be covered?

    Or am I wrong thinking that if the controler is using a strong radio all the sensor nodes will connect fine even with a very weak radio?

    TD22057T Offline
    TD22057T Offline
    TD22057
    Hardware Contributor
    wrote on last edited by
    #8

    @Cliff-Karlsson I could be wrong but it's my understanding that those numbers are for transmit power so I don't think it hurts anything to have an HW in the gateway but I don't think it helps particularly. My guess is that most of these things have more to do with antenna design and orientation than anything. My plan is to have my gateway have the best antenna and orientation I can since it's stashed away in a closet. The sensors (which will be visible) will use smaller antennas and since their orientation is determined more by their location, they are at a disadvantage. So in that case a higher power gateway might allow them to receive information more easily while the better antenna in the gateway allows it to pick up weak sensors more reliably. That's my theory anyway...

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

      Originally I purchased the HW version, because I thought I could just scale back to whatever power level I wanted. However, since then I've learned that the PA needs to be turned on for it to work at all, so now I'm not sure what the actual power range might be, but I'd guess it's higher than for the ordinary W version.

      I should think it would make sense to have your gateway use the HW version, just in case in the future any of the sensors are distant and also require the HW version.

      At the end of the day, it will always depend\ on what you want to do. Some people claim to be perfectly happy with the NRF24L01+, which can also be cheaper, depending on where you buy it. It may turn out to be the sort of thing you need to buy and try in order to really know whether it fits you or not.

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

        @NeverDie said:

        make sense to have your gateway use the HW version, just in case in the future any of the sensors are distant and also require the HW version.

        At the end of the day, it will always depend\ on what you want to do. Some people claim to b

        Ok, I am trying to find out what the different versions mean. Does the RFM69-RFM69HC-RFM69HW series just differ in range and possible power-consumption? Where RFM69 has the shortest range and the HW have the longest range?

        Also I have not found any info of how to connect the RFM radio to the arduino, are there any more info on that part?

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

          @Cliff-Karlsson I think that :

          • 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

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

            That's right. There are really just two types of RFM69x: the regular kind like the RFM69W, and the high powered kind like the RFM69HW. The other variants are just variations in pinout so as to retrofit to the pinouts of older generation RF chips. If you're starting from a blank page, those won't matter to you.

            1 Reply Last reply
            0
            • 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
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          9

                                          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