Skip to content
  • 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. Step-by-step procedure to connect the NRF24L01+ to the GPIO pins and use the Raspberry as a Serial Gateway (MySensors 1.x)
  • Getting Started
  • Controller
  • Build
  • Hardware
  • Download/API
  • Forum
  • Store

Step-by-step procedure to connect the NRF24L01+ to the GPIO pins and use the Raspberry as a Serial Gateway (MySensors 1.x)

Scheduled Pinned Locked Moved Hardware
nrf24raspberry piraspberryraspberry nrf24l01 gpiogateway
168 Posts 47 Posters 175.0k Views 36 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.
  • ronnyandreR Offline
    ronnyandreR Offline
    ronnyandre
    wrote on last edited by
    #161

    Thanks for this thorough guide, it works perfect :)

    Newbie with RPi and Domoticz, trying to automate my home.

    1 Reply Last reply
    0
    • S Scala

      @mfalkvidd Hi there and thanks for a great and super detailed step-by-step tutorial.

      I've got mine running in no time with your instructions, but after a couple of minutes I've got the following error:

      2015-12-30 20:51:30.356 Error: MySensors: Unhandled sensor (sub-type=32), please report with log!
      2015-12-30 20:52:01.390 Error: Serial Port closed!... Error: End of file
      2015-12-30 20:52:02.315 MySensors: retrying in 30 seconds...
      2015-12-30 20:52:31.319 MySensors: Using serial port: /dev/ttyUSB20
      2015-12-30 20:52:31.320 Error: MySensors: Error opening serial port!
      2015-12-30 20:52:32.321 MySensors: retrying in 30 seconds...
      2015-12-30 20:53:01.324 MySensors: Using serial port: /dev/ttyUSB20

      I also attached a partial screen capture showing that it was working before 8-)

      2015-12-30 21_18_13-Domoticz - Opera.png

      Any idea on why is this happening and how to solve it?

      Southern regards and happy new year to all!

      ronnyandreR Offline
      ronnyandreR Offline
      ronnyandre
      wrote on last edited by
      #162

      @Scala I have the same error as you. Worked perfectly first time, and after reboot the "/dev/ttyMySensorsGateway: No such file or directory" error message appear. Did you solve this?

      Newbie with RPi and Domoticz, trying to automate my home.

      1 Reply Last reply
      0
      • MrRikkieM MrRikkie

        Hello, If followed the instruction and everything seemed to work without any problem.
        However when I enter the command : sudo cat /dev/ttyMySensorsGateway
        I get the message : cat: /dev/ttyMySensorsGateway: No such file or directory
        Does anybody have any idea how to solve this ?

        ronnyandreR Offline
        ronnyandreR Offline
        ronnyandre
        wrote on last edited by
        #163

        @MrRikkie Did you solve this issue? I got the same error as you..

        Newbie with RPi and Domoticz, trying to automate my home.

        1 Reply Last reply
        0
        • J Offline
          J Offline
          javad arji
          wrote on last edited by
          #164

          hi
          when that run this code
          :

          sudo /etc/init.d/PiGatewaySerial start
          

          error:

          [....] Starting PiGatewaySerial (via systemctl): PiGatewaySerial.serviceFailed to start PiGatewaySerial.service: Unit PiGatewaySerial.service failed to load: No such file or directory.
          

          can you help me??

          1 Reply Last reply
          0
          • mfalkviddM mfalkvidd

            Note: This guide is only applicable to MySensors 1.x. For MySensors 2, use this guide.

            I noticed that a step-by-step procedure to connect the NRF24L01 to the GPIO pins and use the Raspberry as a Serial Gateway was listed in the document for MySensors 1.6.

            Since I have three gateways configured this way, and I need to set up 3 more for covering different offices around the world, and I had already written the instructions in Swedish for Datormagazin, I thought I'd help out.

            This is the first draft. Any feedback is welcome.


            INTRODUCTION
            The radio module NRF24L01+ is cheap and power efficient, but it is unable to communicate with regular wifi. The bridge between NRF24L01+ nodes and the "computer world" is called a Gateway. You can use other types of gateways, but connecting the NRF24L01+ module directly to the Raspberry Pi is a simple and cheap alternative.

            Wiring Things Up
            Connect the NRF20L01+ radio module to the Raspberry Pi like this:
            raspi_mysensors[1].png

            Raspberry Pi NRF24L01+ Color
            6 / GND GND Black
            1 / 3.3V DC VCC Red
            22 / GPIO25 CE Orange
            24 / GPIO 8 CSN/CS Yellow
            23 / GPIO11 / SPI_CLK SCK Green
            19 / GPIO10 / SPI_MOSI MOSI Blue
            21 / GPIO9 / SPI_MISO MISO Violet

            The IRQ pin on NRF24L01 is not currently used.

            For a comprehensive view of the Raspberry Pi pins, see http://pinout.xyz/

            You should also connect a decoupling capacitor to the radio. See this guide.

            COMPILING THE GATEWAY
            Login to your Raspberry Pi (using SSH or open a terminal on the graphical console) and run these commands:

            git clone https://github.com/TMRh20/RF24.git
            cd RF24
            make all && sudo make install
            cd ..
            
            git clone https://github.com/mysensors/Raspberry.git
            cd Raspberry
            make all && sudo make install
            

            If you get the following error:

            pi@raspberrypi ~/RF24 $ make all && sudo make install
            g++ -Wall -fPIC -Ofast -mfpu=vfp -mfloat-abi=hard -mtune=arm1176jzf-s -march=armv7-a -D BCM2835_PERI_BASE=0x -c RF24.cpp
            gcc -Wall -fPIC -Ofast -mfpu=vfp -mfloat-abi=hard -mtune=arm1176jzf-s -march=armv7-a -D BCM2835_PERI_BASE=0x -c bcm2835.c
            bcm2835.c: In function ‘bcm2835_init’:
            bcm2835.c:1207:28: error: invalid suffix "x" on integer constant
            
            

            You've probably run into the problem discussed in this thread. People have had luck with different solutions. The simplest is to make the following change to ~/Raspberry/librf24-bcm/Makefile

            #IOBASE := $(shell cat /proc/iomem | grep bcm2708_vcio | cut -f 1 -d "-")
            IOBASE := 3F000000
            

            VERIFY THE GATEWAY
            Run sudo /usr/local/sbin/PiGatewaySerial. The output should look like this:

            pi@raspberrypi ~/Raspberry $ sudo /usr/local/sbin/PiGatewaySerial
            Starting PiGatewaySerial...
            Protocol version - 1.4
            Created PTY '/dev/pts/1'
            Gateway tty: /dev/ttyMySensorsGateway
            ================ SPI Configuration ================
            CSN Pin          = CE0 (PI Hardware Driven)
            CE Pin           = Custom GPIO25
            Clock Speed      = 8 Mhz
            ================ NRF Configuration ================
            STATUS           = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
            RX_ADDR_P0-1     = 0xe7e7e7e7e7 0xc2c2c2c2c2
            RX_ADDR_P2-5     = 0xff 0xc4 0xc5 0xc6
            TX_ADDR          = 0xe7e7e7e7e7
            RX_PW_P0-6       = 0x00 0x00 0x20 0x00 0x00 0x00
            EN_AA            = 0x3b
            EN_RXADDR        = 0x07
            RF_CH            = 0x4c
            RF_SETUP         = 0x23
            CONFIG           = 0x0e
            DYNPD/FEATURE    = 0x3f 0x06
            Data Rate        = 250KBPS
            Model            = nRF24L01+
            CRC Length       = 16 bits
            PA Power         = PA_LOW
            

            If the NRF24L01+ isn't correctly wired, the following error will be shown

            pi@raspberrypi ~ $ sudo /usr/local/sbin/PiGatewaySerial
            Starting PiGatewaySerial...
            Protocol version - 1.4
            Created PTY '/dev/pts/2'
            Gateway tty: /dev/ttyMySensorsGateway
            check wires
            

            If this happens, double-check your wiring and correct any problems. Press Ctrl+Z and type

            sudo killall PiGatewaySerial
            

            to get rid of the non-functioning Gateway. Then run sudo /usr/local/sbin/PiGatewaySerial again

            If all is well, exit PiGatewaySerial by pressing Ctrl+C. Then run

            sudo /etc/init.d/PiGatewaySerial start
            

            to start the gateway as a background process. Verify that it started correctly by running

            sudo cat /dev/ttyMySensorsGateway
            

            You should see the message "Gateway startup complete". Exit by typing Ctrl+C.

            MAKE THE GATEWAY AUTOSTART
            To make sure the Gateway is started when your Raspberry Pi boots up, run the following command:

            sudo make enable-gwserial
            

            Enable the gateway for use with Domoticz
            Domoticz (and maybe other home automation systems) has trouble reading from the default path created by PiGatewaySerial. You might need to run the following command:

            sudo ln -s /dev/ttyMySensorsGateway /dev/ttyUSB20
            

            And change /etc/rc.local from this

            exit 0
            
            

            to this

            ln -s /dev/ttyMySensorsGateway /dev/ttyUSB20
            exit 0
            
            

            OTHER NOTES

            • The 3.3V power on the Raspberry Pi is rated for a maximum of 50mA. A regular NRF24L01+ only needs 15mA, but if you are using a power amplified version you might exceed what the Raspberry Pi can output. In that case, an external power supply might be required. If you use an external power source gnd must be connected to the Raspberry Pi's gnd.

            • Connecting the NRF24L01+ directly to your Raspberry Pi will prevent you from using the Raspberry Pi's gpio ports for other things, like a Z-wave board.

            • A user experienced slow data transfer compared to USB-to-Serial(ttl)<-->MySensors Gateway connection, especially on OTA firmware update. If you think this will cause a problem for you, an ethernet gateway might be a better alternative.

            As always, I stand on the shoulders of giants. Related posts:

            • http://forum.mysensors.org/topic/1151/tutorial-raspberry-pi-nrf24l01-direct-connection
            • http://forum.mysensors.org/topic/1974/domoticz-as-controller-and-a-gateway-for-mysensor-nodes-running-on-a-raspberry-pi-2

            TROUBLESHOOTING
            If you get this error

            pi@Domoticz3:~/Raspberry$ sudo /etc/init.d/PiGatewaySerial start
            [....] Starting PiGatewaySerial (via systemctl): PiGatewaySerial.serviceFailed to start PiGatewaySerial.service: Unit PiGatewaySerial.service failed to load: No such file or directory.
             failed!
            

            or this error

            pi@raspberrypi ~ $ sudo /usr/local/sbin/PiGatewaySerial
            sudo: /usr/local/sbin/PiGatewaySerial: command not found
            

            you have probably forgotten to run sudo make install. Read the instructions again, and follow them this time :-) User @sineverba reported that a reboot of the Pi after running make install helped.

            S Offline
            S Offline
            sineverba
            Hardware Contributor
            wrote on last edited by
            #165

            TROUBLESHOOTING
            If you get this error

            pi@Domoticz3:~/Raspberry$ sudo /etc/init.d/PiGatewaySerial start
            [....] Starting PiGatewaySerial (via systemctl): PiGatewaySerial.serviceFailed to start PiGatewaySerial.service: Unit PiGatewaySerial.service failed to load: No such file or directory.
             failed!
            

            or this error

            pi@raspberrypi ~ $ sudo /usr/local/sbin/PiGatewaySerial
            sudo: /usr/local/sbin/PiGatewaySerial: command not found
            

            you have probably forgotten to run sudo make install. Read the instructions again, and follow them this time :-)

            In my case I did need simply to restart. I did "make install" but I did need to restart ;) ;)

            1 Reply Last reply
            1
            • T Offline
              T Offline
              Toyman
              wrote on last edited by Toyman
              #166

              I know this thread is ancient, but why it was needed to add

              sudo ln -s /dev/ttyMySensorsGateway /dev/ttyUSB20
              

              into rc.local if you could just change a line in makefile from

              TTY_NAME := /dev/ttyMySensorsGateway
              

              to

              TTY_NAME := /dev/ttyUSB20
              

              and create "proper" name from the start

              1 Reply Last reply
              0
              • R Offline
                R Offline
                ricorico94
                wrote on last edited by
                #167

                Hi,
                I plan using a gateway with Mydomoticz and this solution seems great. However, I might want to use later signing or the high Amplifier NRF24 or even the version 2 which seem not suitable for this project.
                How easy is it to start with this gateway, then migrate to an external ethernet gateway ?
                I saw this gateway can be uninstalled, but should I then modify anything on sensors to move them to new gateway ? will I lose log datas in Domoticz ?

                br,
                Ricorico94

                mfalkviddM 1 Reply Last reply
                0
                • R ricorico94

                  Hi,
                  I plan using a gateway with Mydomoticz and this solution seems great. However, I might want to use later signing or the high Amplifier NRF24 or even the version 2 which seem not suitable for this project.
                  How easy is it to start with this gateway, then migrate to an external ethernet gateway ?
                  I saw this gateway can be uninstalled, but should I then modify anything on sensors to move them to new gateway ? will I lose log datas in Domoticz ?

                  br,
                  Ricorico94

                  mfalkviddM Offline
                  mfalkviddM Offline
                  mfalkvidd
                  Mod
                  wrote on last edited by mfalkvidd
                  #168

                  @ricorico94 welcome to the MySensors commu ity! All you need to do when switching from raspberry pi gateway to ethernet gateway is change the "hardware" configuration in Domoticz.

                  However, if you are just starting out, don't use this gateway. It works for MySensors 1.x only. Use the new raspberry pi gateway instead.

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


                  10

                  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
                  • OpenHardware.io
                  • Categories
                  • Recent
                  • Tags
                  • Popular