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. Troubleshooting
  3. Integrating NRF24 to Raspberry Pi

Integrating NRF24 to Raspberry Pi

Scheduled Pinned Locked Moved Troubleshooting
11 Posts 4 Posters 123 Views 3 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.
  • H Offline
    H Offline
    huseyinozsut
    wrote on last edited by
    #1

    Hi,

    I am trying to integrate NRF24 directly to Raspberry Pi through GPIO pins. A week ago I managed to integrate NRF24 with ESP8266 gateway; but my plan is to set this system to a caravan. So, power consumption (even a few miliwatts) and simplicity is important for me.

    First, I connected NRF24 to Raspberry pi. I use capacitor, and also 5V to 3.3V AMS1117 based voltage regulator. I get power directly from the voltage regulator that powers raspberry pi. So, voltage and power side of my setup is solid.

    I used master branch for My sensors setup.

    My Configure command is:
    ./configure --my-gateway=serial --my-serial-port=/dev/ttyAMA0 --my-serial-baudrate=115200 --my-transport=rf24

    With this setup when I test it, I get an error:

    Nov 07 14:49:08 INFO Starting gateway...
    Nov 07 14:49:08 INFO Protocol version - 2.3.2
    Nov 07 14:49:08 DEBUG Serial port /dev/ttyAMA0 (115200 baud) created
    Nov 07 14:49:08 DEBUG MCO:BGN:INIT GW,CP=RNNGL---,FQ=NA,REL=255,VER=2.3.2
    Nov 07 14:49:08 DEBUG TSF:LRT:OK
    Nov 07 14:49:08 DEBUG TSM:INIT
    Nov 07 14:49:08 DEBUG TSF:WUR:MS=0
    Nov 07 14:49:08 DEBUG TSM:INIT:TSP OK
    Nov 07 14:49:08 DEBUG TSM:INIT:GW MODE
    Nov 07 14:49:08 DEBUG TSM:READY:ID=0,PAR=0,DIS=0
    Nov 07 14:49:08 DEBUG MCO:REG:NOT NEEDED
    Nov 07 14:49:08 DEBUG MCO:BGN:STP
    Nov 07 14:49:08 DEBUG MCO:BGN:INIT OK,TSP=1
    Nov 07 14:49:08 ERROR Failed to get byte count on serial.

    As I understand Raspberry can communicate with NRF24. But I could not figure out what is the problem. Any ideas?

    skywatchS 1 Reply Last reply
    0
    • H huseyinozsut

      Hi,

      I am trying to integrate NRF24 directly to Raspberry Pi through GPIO pins. A week ago I managed to integrate NRF24 with ESP8266 gateway; but my plan is to set this system to a caravan. So, power consumption (even a few miliwatts) and simplicity is important for me.

      First, I connected NRF24 to Raspberry pi. I use capacitor, and also 5V to 3.3V AMS1117 based voltage regulator. I get power directly from the voltage regulator that powers raspberry pi. So, voltage and power side of my setup is solid.

      I used master branch for My sensors setup.

      My Configure command is:
      ./configure --my-gateway=serial --my-serial-port=/dev/ttyAMA0 --my-serial-baudrate=115200 --my-transport=rf24

      With this setup when I test it, I get an error:

      Nov 07 14:49:08 INFO Starting gateway...
      Nov 07 14:49:08 INFO Protocol version - 2.3.2
      Nov 07 14:49:08 DEBUG Serial port /dev/ttyAMA0 (115200 baud) created
      Nov 07 14:49:08 DEBUG MCO:BGN:INIT GW,CP=RNNGL---,FQ=NA,REL=255,VER=2.3.2
      Nov 07 14:49:08 DEBUG TSF:LRT:OK
      Nov 07 14:49:08 DEBUG TSM:INIT
      Nov 07 14:49:08 DEBUG TSF:WUR:MS=0
      Nov 07 14:49:08 DEBUG TSM:INIT:TSP OK
      Nov 07 14:49:08 DEBUG TSM:INIT:GW MODE
      Nov 07 14:49:08 DEBUG TSM:READY:ID=0,PAR=0,DIS=0
      Nov 07 14:49:08 DEBUG MCO:REG:NOT NEEDED
      Nov 07 14:49:08 DEBUG MCO:BGN:STP
      Nov 07 14:49:08 DEBUG MCO:BGN:INIT OK,TSP=1
      Nov 07 14:49:08 ERROR Failed to get byte count on serial.

      As I understand Raspberry can communicate with NRF24. But I could not figure out what is the problem. Any ideas?

      skywatchS Offline
      skywatchS Offline
      skywatch
      wrote on last edited by
      #2

      @huseyinozsut For serial you need.....

      --my-gateway=serial --my-serial-is-pty --my-serial-port=/dev/ttyMySensorsGateway

      Be warned that some pi models have issues with the serial ports (I had problems with this for months) as the hardware serial controller of early models was re-allocated to the wifi on wifi models and a software serial port was implemented instead. This gave me a lot of issues.

      1 Reply Last reply
      0
      • H Offline
        H Offline
        huseyinozsut
        wrote on last edited by
        #3

        Thank you for reply! I couldn't solve the problem. I am using Raspberry 4 4gb by the way. I tried the configuration you provided also. Nothing has changed. I tried different modules. Again, nothing changed. I know that modules are working. I tested them with arduinos.

        After some tests, I also found out that, relay actuator with button node sketch does not work without nrf24 connection. This is a big problem for me. This means, if my Raspberry is closed, I will not be able to control the lights with switches. There is a possibility that I can't modify the sketch to make the switches work without wireless connection (when I switch on, the lights will turn on, even if the wireless is not connected). My programming skills are pretty bad.

        So, I tried to use an arduino with serial gateway sketch uploaded in to it. This way nodes connects to gateway and even if raspberry is closed, switch works!

        I plugged the arduino to Raspberry with USB. And tried several configurations. None of them was successful. If you know the serial gateway configuration, can you tell me? I made several searches here but could not make it work. I tried /dev/ttyUSB0 and several other possible options. What would be the configuration script?

        skywatchS 1 Reply Last reply
        1
        • H huseyinozsut

          Thank you for reply! I couldn't solve the problem. I am using Raspberry 4 4gb by the way. I tried the configuration you provided also. Nothing has changed. I tried different modules. Again, nothing changed. I know that modules are working. I tested them with arduinos.

          After some tests, I also found out that, relay actuator with button node sketch does not work without nrf24 connection. This is a big problem for me. This means, if my Raspberry is closed, I will not be able to control the lights with switches. There is a possibility that I can't modify the sketch to make the switches work without wireless connection (when I switch on, the lights will turn on, even if the wireless is not connected). My programming skills are pretty bad.

          So, I tried to use an arduino with serial gateway sketch uploaded in to it. This way nodes connects to gateway and even if raspberry is closed, switch works!

          I plugged the arduino to Raspberry with USB. And tried several configurations. None of them was successful. If you know the serial gateway configuration, can you tell me? I made several searches here but could not make it work. I tried /dev/ttyUSB0 and several other possible options. What would be the configuration script?

          skywatchS Offline
          skywatchS Offline
          skywatch
          wrote on last edited by skywatch
          #4

          @huseyinozsut said in Integrating NRF24 to Raspberry Pi:

          Thank you for reply! I couldn't solve the problem.

          I know, I went throught the same thing!.

          After some tests, I also found out that, relay actuator with button node sketch does not work without nrf24 connection.

          This is surprising, can you post a link to the relay sketch better your actual code here (using code tags)?

          So, I tried to use an arduino with serial gateway sketch uploaded in to it. This way nodes connects to gateway and even if raspberry is closed, switch works!

          Yes, this is also something I did. At least we have independently found the same issue with different hardware, cables, power supply etc. This makes it much more likely that the issue is global in nature.

          I plugged the arduino to Raspberry with USB. And tried several configurations. None of them was successful. If you know the serial gateway configuration, can you tell me? I made several searches here but could not make it work. I tried /dev/ttyUSB0 and several other possible options. What would be the configuration script?

          There is no configuration script for nrf attached to arduino.

          If I were you I would wipe the memory card of the pi and reinstall all fresh.
          Make sure to erase the eeprom on the arduino using the clear eeprom sketch in mysensors library, not the other one that comes with arduino. Also, when you reload the gateway sketch be sure to turn off debug as that sends stuff down the serial port and will corrupt everything ....

          Then get something like this.....

          https://www.aliexpress.com/item/32841439613.html?algo_pvid=83bf1900-7645-4241-aa5f-00f9b728be34&algo_expid=83bf1900-7645-4241-aa5f-00f9b728be34-21&btsid=2100bdd016049153938173468eaad1&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_

          Plug it in and dev/ttyUSB0 should work. It is the path I took and it works.

          zboblamontZ H 2 Replies Last reply
          0
          • skywatchS skywatch

            @huseyinozsut said in Integrating NRF24 to Raspberry Pi:

            Thank you for reply! I couldn't solve the problem.

            I know, I went throught the same thing!.

            After some tests, I also found out that, relay actuator with button node sketch does not work without nrf24 connection.

            This is surprising, can you post a link to the relay sketch better your actual code here (using code tags)?

            So, I tried to use an arduino with serial gateway sketch uploaded in to it. This way nodes connects to gateway and even if raspberry is closed, switch works!

            Yes, this is also something I did. At least we have independently found the same issue with different hardware, cables, power supply etc. This makes it much more likely that the issue is global in nature.

            I plugged the arduino to Raspberry with USB. And tried several configurations. None of them was successful. If you know the serial gateway configuration, can you tell me? I made several searches here but could not make it work. I tried /dev/ttyUSB0 and several other possible options. What would be the configuration script?

            There is no configuration script for nrf attached to arduino.

            If I were you I would wipe the memory card of the pi and reinstall all fresh.
            Make sure to erase the eeprom on the arduino using the clear eeprom sketch in mysensors library, not the other one that comes with arduino. Also, when you reload the gateway sketch be sure to turn off debug as that sends stuff down the serial port and will corrupt everything ....

            Then get something like this.....

            https://www.aliexpress.com/item/32841439613.html?algo_pvid=83bf1900-7645-4241-aa5f-00f9b728be34&algo_expid=83bf1900-7645-4241-aa5f-00f9b728be34-21&btsid=2100bdd016049153938173468eaad1&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_

            Plug it in and dev/ttyUSB0 should work. It is the path I took and it works.

            zboblamontZ Offline
            zboblamontZ Offline
            zboblamont
            wrote on last edited by
            #5

            @skywatch Perhaps I'm not understanding the problem of using a serial gateway for radio other an additional component such as a pro-mini?
            Here the Pi3 Controller and Arduino 3v3 Gateway/radio are adjacent and direct wired on serial and power/ground to the pins.
            From vague memory the default configuration on the Pi had to be swapped for wifi, found relatively simply instructed on the internet.

            1 Reply Last reply
            0
            • fritsF Offline
              fritsF Offline
              frits
              wrote on last edited by
              #6

              @huseyinozsut said in Integrating NRF24 to Raspberry Pi:

              This means, if my Raspberry is closed, I will not be able to control the lights with switches. There is a possibility that I can't modify the sketch to make the switches work without wireless connection (when I switch on, the lights will turn on, even if the wireless is not connected)

              When booting, the node will try to connect to the gateway. If there's no gateway, the node will try forever, except you configure

              #define MY_TRANSPORT_WAIT_READY_MS 1000
              

              in your node. This tells the node to try max 1 sec and then continue to start, even without gateway connection.

              Regarding the raspberry pi issue, why don't you build an ethernet gateway? It would open port 5003 on your raspi and your controller could connect to this port.

              H 1 Reply Last reply
              0
              • skywatchS skywatch

                @huseyinozsut said in Integrating NRF24 to Raspberry Pi:

                Thank you for reply! I couldn't solve the problem.

                I know, I went throught the same thing!.

                After some tests, I also found out that, relay actuator with button node sketch does not work without nrf24 connection.

                This is surprising, can you post a link to the relay sketch better your actual code here (using code tags)?

                So, I tried to use an arduino with serial gateway sketch uploaded in to it. This way nodes connects to gateway and even if raspberry is closed, switch works!

                Yes, this is also something I did. At least we have independently found the same issue with different hardware, cables, power supply etc. This makes it much more likely that the issue is global in nature.

                I plugged the arduino to Raspberry with USB. And tried several configurations. None of them was successful. If you know the serial gateway configuration, can you tell me? I made several searches here but could not make it work. I tried /dev/ttyUSB0 and several other possible options. What would be the configuration script?

                There is no configuration script for nrf attached to arduino.

                If I were you I would wipe the memory card of the pi and reinstall all fresh.
                Make sure to erase the eeprom on the arduino using the clear eeprom sketch in mysensors library, not the other one that comes with arduino. Also, when you reload the gateway sketch be sure to turn off debug as that sends stuff down the serial port and will corrupt everything ....

                Then get something like this.....

                https://www.aliexpress.com/item/32841439613.html?algo_pvid=83bf1900-7645-4241-aa5f-00f9b728be34&algo_expid=83bf1900-7645-4241-aa5f-00f9b728be34-21&btsid=2100bdd016049153938173468eaad1&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_

                Plug it in and dev/ttyUSB0 should work. It is the path I took and it works.

                H Offline
                H Offline
                huseyinozsut
                wrote on last edited by
                #7

                @skywatch said in Integrating NRF24 to Raspberry Pi:

                @huseyinozsut said in Integrating NRF24 to Raspberry Pi:

                Thank you for reply! I couldn't solve the problem.

                I know, I went throught the same thing!.

                After some tests, I also found out that, relay actuator with button node sketch does not work without nrf24 connection.

                This is surprising, can you post a link to the relay sketch better your actual code here (using code tags)?

                frits explained the solution to the problem. I am a begginner and my technical English is a bit weak, so my research capacity for this project is a bit low. Sorry.

                So, I tried to use an arduino with serial gateway sketch uploaded in to it. This way nodes connects to gateway and even if raspberry is closed, switch works!

                Yes, this is also something I did. At least we have independently found the same issue with different hardware, cables, power supply etc. This makes it much more likely that the issue is global in nature.

                I plugged the arduino to Raspberry with USB. And tried several configurations. None of them was successful. If you know the serial gateway configuration, can you tell me? I made several searches here but could not make it work. I tried /dev/ttyUSB0 and several other possible options. What would be the configuration script?

                There is no configuration script for nrf attached to arduino.

                If I were you I would wipe the memory card of the pi and reinstall all fresh.

                I did this. Nothing changed. By the way I was using rasberry pi os + home assistant supervised, because I use ssd, not sd card. I found out that Version 5 series of HASS OS (beta version) supports SSD boot. So I used that. But again, no luck. It could not pass the boot screen. But 64 bit version worked. As I understand, in 64 bit version there is no GPIO support. So I ditched the plan for directly using NRF24l01 on Raspberry Pi through GPIO out. I will stick to wifi gateway or ethernet gateway. I will test ethernet gateway also, and check whether it consumes less or more power than wireless gateway.

                Make sure to erase the eeprom on the arduino using the clear eeprom sketch in mysensors library, not the other one that comes with arduino. Also, when you reload the gateway sketch be sure to turn off debug as that sends stuff down the serial port and will corrupt everything ....

                Then get something like this.....

                https://www.aliexpress.com/item/32841439613.html?algo_pvid=83bf1900-7645-4241-aa5f-00f9b728be34&algo_expid=83bf1900-7645-4241-aa5f-00f9b728be34-21&btsid=2100bdd016049153938173468eaad1&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_

                Plug it in and dev/ttyUSB0 should work. It is the path I took and it works.

                I will definately try this also. Thank you!

                1 Reply Last reply
                0
                • fritsF frits

                  @huseyinozsut said in Integrating NRF24 to Raspberry Pi:

                  This means, if my Raspberry is closed, I will not be able to control the lights with switches. There is a possibility that I can't modify the sketch to make the switches work without wireless connection (when I switch on, the lights will turn on, even if the wireless is not connected)

                  When booting, the node will try to connect to the gateway. If there's no gateway, the node will try forever, except you configure

                  #define MY_TRANSPORT_WAIT_READY_MS 1000
                  

                  in your node. This tells the node to try max 1 sec and then continue to start, even without gateway connection.

                  Regarding the raspberry pi issue, why don't you build an ethernet gateway? It would open port 5003 on your raspi and your controller could connect to this port.

                  H Offline
                  H Offline
                  huseyinozsut
                  wrote on last edited by
                  #8

                  @frits Thank you very much for this explanation! This made my day!

                  1 Reply Last reply
                  0
                  • H Offline
                    H Offline
                    huseyinozsut
                    wrote on last edited by
                    #9

                    There is one thing that I am thinking. I don't know wether it is possible or not.

                    I know that using password for NRF24 communication is possible. But, the password should be embedded to the sketch of the node also.

                    Lets say there is a on off switch on one of the pins of our gateway. When I switch it, it will bypass the password and send the password to all of the nodes, and nodes will save and use that password after that point. Then I will close that switch back, so gateway will stop sending the password to the nodes. By this way, embedding the password into each nodes' sketch will not be needed; but the nodes will be under password protection.

                    The aim is simple actually: I will use this system in a few caravans (my uncles' rental caravans), which are more than 500 miles away from me. If a node goes bad, an electrician should be able to change the node without a need for uploading a sketch. This would reduce my workload in the future (especially if you think that I'm doing this for free, hahahahaha!). And will be low to moderately safe (hacking wise). Which is more than enough I guess...

                    What do you say? Is it possible?

                    skywatchS 1 Reply Last reply
                    0
                    • fritsF Offline
                      fritsF Offline
                      frits
                      wrote on last edited by
                      #10

                      you say "When I switch it, it will bypass the password and send the password to all of the nodes, and nodes will save and use that password after that point."
                      So everybody (who knows the design) could send new passwords to your nodes, couldn't they?

                      Anyway, I don't think it is possible to modify MY_SIGNING_SIMPLE_PASSWD during runtime, because it is part of the program and not stored in EEPROM, have a look into MySigningAtsha204Soft.cpp:

                      #ifdef MY_SIGNING_SIMPLE_PASSWD
                      	if (strnlen(MY_SIGNING_SIMPLE_PASSWD, 32) < 8) {
                      		SIGN_DEBUG(PSTR("!SGN:BND:PWD<8\n")); //Password is too short to be acceptable
                      		_signing_init_ok = false;
                      	} else {
                      		(void)memset((void *)_signing_hmac_key, 0x00, sizeof(_signing_hmac_key));
                      		(void)memcpy((void *)_signing_hmac_key, MY_SIGNING_SIMPLE_PASSWD, strnlen(MY_SIGNING_SIMPLE_PASSWD,
                      		             32));
                      
                      
                      1 Reply Last reply
                      0
                      • H huseyinozsut

                        There is one thing that I am thinking. I don't know wether it is possible or not.

                        I know that using password for NRF24 communication is possible. But, the password should be embedded to the sketch of the node also.

                        Lets say there is a on off switch on one of the pins of our gateway. When I switch it, it will bypass the password and send the password to all of the nodes, and nodes will save and use that password after that point. Then I will close that switch back, so gateway will stop sending the password to the nodes. By this way, embedding the password into each nodes' sketch will not be needed; but the nodes will be under password protection.

                        The aim is simple actually: I will use this system in a few caravans (my uncles' rental caravans), which are more than 500 miles away from me. If a node goes bad, an electrician should be able to change the node without a need for uploading a sketch. This would reduce my workload in the future (especially if you think that I'm doing this for free, hahahahaha!). And will be low to moderately safe (hacking wise). Which is more than enough I guess...

                        What do you say? Is it possible?

                        skywatchS Offline
                        skywatchS Offline
                        skywatch
                        wrote on last edited by
                        #11

                        @huseyinozsut I think the nearest you can get to this will probably be FOTA.

                        This way you can connect to the controller via internet and upload new firmware to a node with the new password included.

                        Note that encryption might be desireable to stop people sniffing the data as it passes over the air.

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        21

                        Online

                        11.7k

                        Users

                        11.2k

                        Topics

                        113.1k

                        Posts


                        Copyright 2025 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