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. Controllers
  3. [Tutorial] Raspberry Pi NRF24l01 direct connection

[Tutorial] Raspberry Pi NRF24l01 direct connection

Scheduled Pinned Locked Moved Controllers
raspberry pinrf24l01
56 Posts 32 Posters 85.9k Views 24 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.
  • M Offline
    M Offline
    minscof
    wrote on last edited by minscof
    #24

    I used this gateway on a wheezy debian (RPI2) for several months and everything was ok. I upgraded my raspbian to jessie, and then the CPU load was always 100%. So I try to revert to wheezy, but i have now the same problem : CPU stays at 100 % .

    So there must be a system configuration somewhere to improve this gateway and prevent it to use all the CPU.

    Do you have an idea ?

    Thanks

    **Solved **: see this post

    1 Reply Last reply
    0
    • D Offline
      D Offline
      davy39
      wrote on last edited by
      #25

      Hi,
      I'm trying to setup a direct connection between domoticz and /dev/ttyMySensorsGateway
      Waiting for my hardware (no NRF24l01 attached yet), I'm actually playing around with the software part.
      I did install Domoticz and MySensorsGateway on the Pi and I'm getting a /dev/ttyMySensorsGateway symlink at boot time.

      The problem is that I can't see it on domoticz interface when trying to choose a serial port on "Mysensors gateway USB" device : only /dev/ttyAMA0 ....

      Is that because no NRF24 is connected or there is a specific configuration to make /dev/ttyMySensorsGateway appearing as a serial port (chown, udev ....)

      Thanks for your help

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

        Hi everybody,
        I'm new in mysensors world and I would like to use my pi2 with direct connection to nrf24l01.
        There is a new release of the arduino library but I can't find the raspberry one.
        Somebody knows if it exists and where to find it ?

        I also tried to find an example of using raspberry as mqtt gateway without success, any ideabut was not able to find an example

        1 Reply Last reply
        0
        • hekH Offline
          hekH Offline
          hek
          Admin
          wrote on last edited by
          #27

          You could probably run the old one.

          Ideally I would like to have the same code-base for RPi but someone needs to help implement the HW-implementation-class.

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

            Thanks hek, i'll try to use old code but I didn't find anything about raspberry as mqtt client gateway.
            If I succeed, and if not too late, i'll try to implement the new library

            1 Reply Last reply
            0
            • hekH Offline
              hekH Offline
              hek
              Admin
              wrote on last edited by
              #29

              If you do want to help out, have a look at the gateway-refactoring-branch. Opening up for different protocols over there (where MQTT should be one of them).

              https://github.com/mysensors/Arduino/tree/gateway-refactoring

              1 Reply Last reply
              0
              • Fernando ArconadaF Offline
                Fernando ArconadaF Offline
                Fernando Arconada
                wrote on last edited by
                #30

                hi everybody
                @hek are you going to support Rpi + rf24 direct connection? I were playing with https://github.com/mysensors/Raspberry a bit and works (I opened a pair of tickets) but needs to be updated.
                I also think that PiGateway should support MQTT I have created PiGatewayMQTT (It's just a prototype).
                What will be the future of https://github.com/mysensors/Raspberry repo? abandoned in favor of any kind of gateway-refactoring-branch ?

                thanks

                1 Reply Last reply
                0
                • J Offline
                  J Offline
                  jelluz
                  wrote on last edited by jelluz
                  #31

                  (solved)
                  Hi. Thanks a lot for this implentation and the helpful posts here!

                  I've got the gateway working with a tmp75 temperature sensor on an arduino. The nrf24 is sitting on the raspberry directly (CE pin 22), as a controller i'm using PiMatic. It works very nicely!

                  There is one small problem however. The PiGatewaySerial will only work if i have called PiGateway before (and closed it again). With working I mean picking up radio transmissions from my sensor node. Everything else seems normal (/dev/ttyPiGatewaySerial and radio details printout).

                  The details of both configurations might give a clue:

                  pi@raspberrypi ~/mysensors_rpi $ sudo ./PiGateway
                  Starting Gateway...
                  ================ 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     = 0xa8a8e1fc00 0xa8a8e1fc00
                  RX_ADDR_P2-5     = 0xff 0xc4 0xc5 0xc6
                  TX_ADDR          = 0xe7e7e7e7e7
                  RX_PW_P0-6       = 0x20 0x20 0x20 0x00 0x00 0x00
                  EN_AA            = 0x3b
                  EN_RXADDR        = 0x06
                  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
                  [CALLBACK]0;0;3;0;14;Gateway startup complete.
                  read: 4-4-0 s=0,c=1,t=0,pt=7,l=5:22.9
                  [CALLBACK]4;0;1;0;0;22.9
                  read: 4-4-0 s=0,c=1,t=0,pt=7,l=5:22.9
                  

                  after closing PiGateway and opening PiGatewaySerial i get this:

                  pi@raspberrypi ~/mysensors_rpi $ sudo ./PiGatewaySerial
                  Starting PiGatewaySerial...
                  Protocol version - 1.4
                  Created PTY '/dev/pts/3'
                  Gateway tty: /dev/ttyMySensorsGateway
                  ================ SPI Configuration ================
                  CSN Pin          = CE0 (PI Hardware Driven)
                  CE Pin           = Custom GPIO22
                  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     = 0xa8a8e1fc00 0xa8a8e1fc00
                  RX_ADDR_P2-5     = 0xff 0xc4 0xc5 0xc6
                  TX_ADDR          = 0xe7e7e7e7e7
                  RX_PW_P0-6       = 0x20 0x20 0x20 0x00 0x00 0x00
                  EN_AA            = 0x3b
                  EN_RXADDR        = 0x06
                  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
                  read: 4-4-0 s=0,c=1,t=0,pt=7,l=5:22.9
                  read: 4-4-0 s=0,c=1,t=0,pt=7,l=5:22.9
                  read: 4-4-0 s=0,c=1,t=0,pt=7,l=5:22.9
                  read: 4-4-0 s=0,c=1,t=0,pt=7,l=5:22.9
                  read: 4-4-0 s=0,c=1,t=0,pt=7,l=5:22.9
                  read: 4-4-0 s=0,c=1,t=0,pt=7,l=5:22.9
                  read: 4-4-0 s=0,c=1,t=0,pt=7,l=5:22.9
                  read: 4-4-0 s=0,c=1,t=0,pt=7,l=5:22.8
                  

                  Notice how the CE pins of both SPI configurations are different!

                  I'm at the point that i want to daemonize the gateway. Which in fact i did, but the same problem persists. Before i hack the startup script to first run and close PiGateway before PiGatewaySerial, i was hoping that someone has an idea what i'm doing wrong.

                  Thanks in advance!

                  solved!
                  I have two RPIs (a Pi 2 B and a Pi B+), which both worked with the pyRF24 lib of TMRh20, so when i had a look in the source of the radio initialization of PiGatewaySerial and found this:

                  #ifdef __PI_BPLUS
                  	gw = new MyGateway(RPI_BPLUS_GPIO_J8_15, RPI_BPLUS_GPIO_J8_24, BCM2835_SPI_SPEED_8MHZ, 1);
                  #else
                  	gw = new MyGateway(RPI_V2_GPIO_P1_22, BCM2835_SPI_CS0, BCM2835_SPI_SPEED_8MHZ, 1);
                  #endif	
                  

                  When i changed it to:

                  #ifdef __PI_BPLUS
                  	gw = new MyGateway(RPI_V2_GPIO_P1_22, BCM2835_SPI_CS0, BCM2835_SPI_SPEED_8MHZ, 1);
                  #else
                  	gw = new MyGateway(RPI_V2_GPIO_P1_22, BCM2835_SPI_CS0, BCM2835_SPI_SPEED_8MHZ, 1);
                  #endif	
                  

                  and recompiled the gateways,it all started to work. After powerup everything runs :).

                  The Rpi that is connected now is the Pi 2 B. So i guess either i have my nrf25 wired differently then defined in this lib, or the precompiler was thinking i have a B+ connected. Or both.
                  I will find out when i get this also working on my B+.

                  J 1 Reply Last reply
                  0
                  • E Offline
                    E Offline
                    ericvdb
                    wrote on last edited by
                    #32

                    Hi all,

                    I just followed the guide in the 1ste post, but i'm not able to compile this correctly.
                    Here's the output:

                    g++ -Wall -fPIC -Ofast -mfpu=vfp -mfloat-abi=hard -mtune=arm1176jzf-s -march=arm                                                                  v6zk -D BCM2835_PERI_BASE=0x -c RF24.cpp
                    gcc -Wall -fPIC -Ofast -mfpu=vfp -mfloat-abi=hard -mtune=arm1176jzf-s -march=arm                                                                  v6zk -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
                    bcm2835.c:1208:28: error: invalid suffix "x" on integer constant
                    bcm2835.c:1209:28: error: invalid suffix "x" on integer constant
                    bcm2835.c:1210:28: error: invalid suffix "x" on integer constant
                    bcm2835.c:1211:28: error: invalid suffix "x" on integer constant
                    bcm2835.c:1212:28: error: invalid suffix "x" on integer constant
                    bcm2835.c:1213:28: error: invalid suffix "x" on integer constant
                    bcm2835.c:1214:28: error: invalid suffix "x" on integer constant
                    bcm2835.c:1228:83: error: invalid suffix "x" on integer constant
                    bcm2835.c:1232:81: error: invalid suffix "x" on integer constant
                    bcm2835.c:1236:81: error: invalid suffix "x" on integer constant
                    bcm2835.c:1239:83: error: invalid suffix "x" on integer constant
                    bcm2835.c:1242:83: error: invalid suffix "x" on integer constant
                    bcm2835.c:1246:83: error: invalid suffix "x" on integer constant
                    bcm2835.c:1249:83: error: invalid suffix "x" on integer constant
                    bcm2835.c:1253:79: error: invalid suffix "x" on integer constant
                    Makefile:52: recept voor doel 'bcm2835.o' is mislukt
                    make: *** [bcm2835.o] Fout 1
                    g++ -c -o MyGateway.o MyGateway.cpp -Wall -Ofast -mfpu=vfp -lpthread -g -D__Raspberry_Pi -mfloat-abi=hard -mtune=arm1176jzf-s -D_TTY_NAME=\"/dev/ttyMySensorsGateway\" -D_TTY_GROUPNAME=\"tty\" -march=armv6zk -I. -Ilibrf24-bcm/
                    g++ -c -o MySensor.o MySensor.cpp -Wall -Ofast -mfpu=vfp -lpthread -g -D__Raspberry_Pi -mfloat-abi=hard -mtune=arm1176jzf-s -D_TTY_NAME=\"/dev/ttyMySensorsGateway\" -D_TTY_GROUPNAME=\"tty\" -march=armv6zk -I. -Ilibrf24-bcm/
                    g++ -c -o MyMessage.o MyMessage.cpp -Wall -Ofast -mfpu=vfp -lpthread -g -D__Raspberry_Pi -mfloat-abi=hard -mtune=arm1176jzf-s -D_TTY_NAME=\"/dev/ttyMySensorsGateway\" -D_TTY_GROUPNAME=\"tty\" -march=armv6zk -I. -Ilibrf24-bcm/
                    g++ -c -o PiEEPROM.o PiEEPROM.cpp -Wall -Ofast -mfpu=vfp -lpthread -g -D__Raspberry_Pi -mfloat-abi=hard -mtune=arm1176jzf-s -D_TTY_NAME=\"/dev/ttyMySensorsGateway\" -D_TTY_GROUPNAME=\"tty\" -march=armv6zk -I. -Ilibrf24-bcm/
                    g++ -c -o PiGateway.o PiGateway.cpp -Wall -Ofast -mfpu=vfp -lpthread -g -D__Raspberry_Pi -mfloat-abi=hard -mtune=arm1176jzf-s -D_TTY_NAME=\"/dev/ttyMySensorsGateway\" -D_TTY_GROUPNAME=\"tty\" -march=armv6zk -I. -Ilibrf24-bcm/
                    g++ -o PiGateway MyGateway.o MySensor.o MyMessage.o PiEEPROM.o PiGateway.o -Wall -Ofast -mfpu=vfp -lpthread -g -D__Raspberry_Pi -mfloat-abi=hard -mtune=arm1176jzf-s -D_TTY_NAME=\"/dev/ttyMySensorsGateway\" -D_TTY_GROUPNAME=\"tty\" -march=ar                                                                  mv6zk -I. -Ilibrf24-bcm/ -lrf24-bcm
                    /usr/bin/ld: cannot find -lrf24-bcm
                    collect2: ld returned 1 exit status
                    Makefile:60: recept voor doel 'PiGateway' is mislukt
                    make: *** [PiGateway] Fout 1
                    
                    Done!
                    

                    I'm using the 2015-05-05-raspbian-wheezy version complete with:

                    rpi-update
                    apt-get update
                    apt-get upgrade
                    

                    Can anyone tell me what is going wrong.

                    Thx in advance.

                    1 Reply Last reply
                    0
                    • E Offline
                      E Offline
                      ericvdb
                      wrote on last edited by
                      #33

                      I got it working, and by adding ser2net in the mix, you have a MySensors raspberry pi ethernet gateway.
                      The trick is not to update the RPi, just use the latest image.

                      Does anyone know if it is possible to connect the status LEDs to the RPi?

                      1 Reply Last reply
                      0
                      • AndurilA Offline
                        AndurilA Offline
                        Anduril
                        wrote on last edited by
                        #34

                        Hi @ericvdb ,
                        could you please post your config for ser2net? I also tried to use my NRF24L01 connected to my RPi as ethernet gateway for MYSController, but all I got was an 'unable to bind port'.

                        1 Reply Last reply
                        0
                        • E Offline
                          E Offline
                          ericvdb
                          wrote on last edited by
                          #35

                          in /etc/ser2net.conf i used:

                          9003:raw:600:/dev/ttyMySensorsGateway
                          

                          where 9003 is the tcp port your controller needs to connect to.

                          Remember, this allows only 1 connection, so if you want to play with multiple controllers, you can, however 1 at a time.

                          1 Reply Last reply
                          0
                          • AndurilA Offline
                            AndurilA Offline
                            Anduril
                            wrote on last edited by
                            #36

                            Don't see any difference to my old entry... but pasted yours and now it works. Thank you very much @ericvdb

                            1 Reply Last reply
                            0
                            • E Offline
                              E Offline
                              ericvdb
                              wrote on last edited by
                              #37

                              you're welcome ;)

                              1 Reply Last reply
                              0
                              • Vladut GrecuV Vladut Grecu

                                [EDIT] - I uploaded a script in the next post that does everything I explained below

                                I have installed MINImal raspBIAN which is a raspBIAN without a gui. So this should work for you guys.

                                First of all you have to
                                1. Undo your Overclock. If you have any. (SPI does not like Overclocked pi's)

                                2. Enable SPI

                                Details:

                                On a normal raspbian image this can be done either on a fresh install (when you config your pi) or you can type in terminal sudo raspi-config
                                From there you go into ADVANCED OPTIONS -> SPI

                                On a minimal image you don't have the luxury of raspi-config. You have to manually activate it.
                                (I already had it enabled but you can check)
                                (If you don't have sudo installed on your image just run apt-get install sudo)

                                sudo nano /etc/modprobe.d/raspi-blacklist.conf

                                Make sure there IS a # before blacklist spi-bcm2708, so it looks like this…
                                #blacklist spi-bcm2708

                                If there is no line like that, you can add it. It won't do any harm.
                                CTRL+O - Save
                                ENTER - Confirm
                                CTRL+X - Exit

                                or

                                CTRL+X - Exit
                                y - I want to save the file
                                ENTER - Confirm

                                We have to edit now the config.txt.
                                sudo nano /boot/config.txt

                                add this to the end of the line
                                dtparam=spi=on

                                Save and exit.

                                Reboot your pi.
                                sudo reboot

                                Enjoy using SPI. (Source)

                                3.Downloading the files

                                Details:

                                You have 2 options. wget and git-clone. I'll start with:

                                a. git-clone

                                If you don't have git-clone you need to install the git tools. (Yes, git is related to github)
                                sudo apt-get install git

                                After you installed git you simply navigate to the folder that you wish to install the program and type:
                                sudo git-clone https://github.com/mysensors/Raspberry.git

                                This will download a zip, unarchive it and.. It does all the jobs for you.

                                b. wget

                                Some ppl are old-school and go the hard way or they just enjoy it done this way.

                                Navigate to the folder that you wish to install the program and type:
                                wget https://github.com/mysensors/Raspberry/archive/master.zip (this will download you the zip)

                                Unzip the file

                                If you don't have unzip installed just type
                                sudo apt-get install unzip

                                unzip master.zip -d /home/pi/Raspberry (you can specify any directory that you want instead of the /home/pi/Raspberry)

                                4.Edit and compile what you downloaded

                                In the Raspberry folder you have some files and some folders.
                                The majority of ppl (including me) forget to complile the libs for the NRF24l01.
                                This is the library provided by [TMRH20]{http://tmrh20.github.io} (He has some interesting stuff there including an audio library for NRF24l01.)
                                Back to our stuff.
                                Go to the Raspberry folder then into librf24-bcm.
                                cd Raspberry/librf24-bcm/

                                Type
                                make

                                Go back to the Raspberry folder
                                cd ..

                                Type
                                make
                                5.Connecting the NRF

                                Mister TMRH20 tells us that we need to connect the NRF24l01 this way

                                PIN		NRF24L01	RPI				RPi -P1 Connector
                                1		GND			rpi-gnd			(25)
                                2		VCC			rpi-3v3			(17)
                                3		CE			rpi-gpio22		(15)
                                4		CSN			rpi-gpio8		(24)
                                5		SCK			rpi-sckl		(23)
                                6		MOSI		rpi-mosi		(19)
                                7		MISO		rpi-miso		(21)
                                8		IRQ			Not Connected
                                

                                Connect everything like that except for the CE pin

                                Run the PiGatewaySerial
                                ./PiGatewaySerial

                                It shoud prin something like this:

                                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            = 0x10
                                RF_SETUP         = 0x23
                                CONFIG           = 0x0e
                                DYNPD/FEATURE    = 0x3f 0x06
                                Data Rate        = 250KBPS
                                Model            = nRF24L01+
                                CRC Length       = 16 bits
                                PA Power         = PA_LOW
                                

                                Look at line 7 CE Pin = Custom GPIO25
                                Connect the CE pin where it says you should.

                                Here are some pictures with the GPIO connector on the rPi.
                                https://www.google.ro/search?q=raspberry+pi+gpio&tbm=isch

                                G Offline
                                G Offline
                                GrantsPi
                                wrote on last edited by
                                #38

                                @Vladut-Grecu - Thanks very much for the tutorial!! After a bit of trial and error I was able to get the Pi reading my two nodes with very good reliability.

                                I'm now trying to merge this RPi Direct Connection with the openHab With Serial Gateway that TimO was kind enough to post (http://forum.mysensors.org/topic/1194/tutorial-openhab-with-serial-gateway). I had openHab working well on the RPi using an Arduino nano serial gateway using that tutorial.

                                Running PiGatewaySerial in a terminal window yields the proper readings from the Arduino nodes but when I try to have openHab recognize the serial port "/dev/ttyMySensorsGateway" instead of the "/dev/ttyUSB99@115200" used in the openHab tutorial I get messages from openHab saying it could not open serial port '/dev/ttyMySensorsGateway'...

                                Just wondering if anyone else has tried to marry the two projects or has any suggestions. (Perhaps I should also post this in TimO's openHab thread...)

                                1 Reply Last reply
                                0
                                • R Offline
                                  R Offline
                                  revoltec112
                                  wrote on last edited by
                                  #39

                                  upload-3f496795-4ae3-4ed2-b533-3f5e9fd6283e

                                  Hi I am a beginner
                                  If I have something that's ok , I plugged in humidity and temperature sensor , and for what I have in front of ./PiGatewaySerial enter sudo ? ,
                                  how to make the data visible in Domoticz please help

                                  1 Reply Last reply
                                  0
                                  • R Offline
                                    R Offline
                                    revoltec112
                                    wrote on last edited by
                                    #40

                                    whether in the / dev file must be named ttyMySensorsGeteway ? if so how it developed and what it should contain

                                    1 Reply Last reply
                                    0
                                    • Daniel OliveiraD Offline
                                      Daniel OliveiraD Offline
                                      Daniel Oliveira
                                      wrote on last edited by
                                      #41

                                      Hi @hek

                                      I know that a lot if going on regarding the MySensors 1.6 but I would like to know the plans for the repo mysensors/Raspberry?

                                      Is there any plans to keep developing it of merging it with the main libraries?

                                      I would like to be able to run the latest version on my Pi and I'm more than willing to help making it possible :)

                                      Cheers

                                      MySensors rules my home :)

                                      1 Reply Last reply
                                      0
                                      • hekH Offline
                                        hekH Offline
                                        hek
                                        Admin
                                        wrote on last edited by
                                        #42

                                        Hi @Daniel-Oliveira,

                                        I've talked with @Anticimex and @thozza about it... We think it would be best to move the RPi build file and any eventual support libs into the main MySensors repo to keep it in sync with the rest .

                                        Not sure if @thozza has begun working on some autoconf script or not (did you?). But I imagine he'd appreciate any help you can contribute with.

                                        1 Reply Last reply
                                        0
                                        • J jelluz

                                          (solved)
                                          Hi. Thanks a lot for this implentation and the helpful posts here!

                                          I've got the gateway working with a tmp75 temperature sensor on an arduino. The nrf24 is sitting on the raspberry directly (CE pin 22), as a controller i'm using PiMatic. It works very nicely!

                                          There is one small problem however. The PiGatewaySerial will only work if i have called PiGateway before (and closed it again). With working I mean picking up radio transmissions from my sensor node. Everything else seems normal (/dev/ttyPiGatewaySerial and radio details printout).

                                          The details of both configurations might give a clue:

                                          pi@raspberrypi ~/mysensors_rpi $ sudo ./PiGateway
                                          Starting Gateway...
                                          ================ 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     = 0xa8a8e1fc00 0xa8a8e1fc00
                                          RX_ADDR_P2-5     = 0xff 0xc4 0xc5 0xc6
                                          TX_ADDR          = 0xe7e7e7e7e7
                                          RX_PW_P0-6       = 0x20 0x20 0x20 0x00 0x00 0x00
                                          EN_AA            = 0x3b
                                          EN_RXADDR        = 0x06
                                          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
                                          [CALLBACK]0;0;3;0;14;Gateway startup complete.
                                          read: 4-4-0 s=0,c=1,t=0,pt=7,l=5:22.9
                                          [CALLBACK]4;0;1;0;0;22.9
                                          read: 4-4-0 s=0,c=1,t=0,pt=7,l=5:22.9
                                          

                                          after closing PiGateway and opening PiGatewaySerial i get this:

                                          pi@raspberrypi ~/mysensors_rpi $ sudo ./PiGatewaySerial
                                          Starting PiGatewaySerial...
                                          Protocol version - 1.4
                                          Created PTY '/dev/pts/3'
                                          Gateway tty: /dev/ttyMySensorsGateway
                                          ================ SPI Configuration ================
                                          CSN Pin          = CE0 (PI Hardware Driven)
                                          CE Pin           = Custom GPIO22
                                          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     = 0xa8a8e1fc00 0xa8a8e1fc00
                                          RX_ADDR_P2-5     = 0xff 0xc4 0xc5 0xc6
                                          TX_ADDR          = 0xe7e7e7e7e7
                                          RX_PW_P0-6       = 0x20 0x20 0x20 0x00 0x00 0x00
                                          EN_AA            = 0x3b
                                          EN_RXADDR        = 0x06
                                          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
                                          read: 4-4-0 s=0,c=1,t=0,pt=7,l=5:22.9
                                          read: 4-4-0 s=0,c=1,t=0,pt=7,l=5:22.9
                                          read: 4-4-0 s=0,c=1,t=0,pt=7,l=5:22.9
                                          read: 4-4-0 s=0,c=1,t=0,pt=7,l=5:22.9
                                          read: 4-4-0 s=0,c=1,t=0,pt=7,l=5:22.9
                                          read: 4-4-0 s=0,c=1,t=0,pt=7,l=5:22.9
                                          read: 4-4-0 s=0,c=1,t=0,pt=7,l=5:22.9
                                          read: 4-4-0 s=0,c=1,t=0,pt=7,l=5:22.8
                                          

                                          Notice how the CE pins of both SPI configurations are different!

                                          I'm at the point that i want to daemonize the gateway. Which in fact i did, but the same problem persists. Before i hack the startup script to first run and close PiGateway before PiGatewaySerial, i was hoping that someone has an idea what i'm doing wrong.

                                          Thanks in advance!

                                          solved!
                                          I have two RPIs (a Pi 2 B and a Pi B+), which both worked with the pyRF24 lib of TMRh20, so when i had a look in the source of the radio initialization of PiGatewaySerial and found this:

                                          #ifdef __PI_BPLUS
                                          	gw = new MyGateway(RPI_BPLUS_GPIO_J8_15, RPI_BPLUS_GPIO_J8_24, BCM2835_SPI_SPEED_8MHZ, 1);
                                          #else
                                          	gw = new MyGateway(RPI_V2_GPIO_P1_22, BCM2835_SPI_CS0, BCM2835_SPI_SPEED_8MHZ, 1);
                                          #endif	
                                          

                                          When i changed it to:

                                          #ifdef __PI_BPLUS
                                          	gw = new MyGateway(RPI_V2_GPIO_P1_22, BCM2835_SPI_CS0, BCM2835_SPI_SPEED_8MHZ, 1);
                                          #else
                                          	gw = new MyGateway(RPI_V2_GPIO_P1_22, BCM2835_SPI_CS0, BCM2835_SPI_SPEED_8MHZ, 1);
                                          #endif	
                                          

                                          and recompiled the gateways,it all started to work. After powerup everything runs :).

                                          The Rpi that is connected now is the Pi 2 B. So i guess either i have my nrf25 wired differently then defined in this lib, or the precompiler was thinking i have a B+ connected. Or both.
                                          I will find out when i get this also working on my B+.

                                          J Offline
                                          J Offline
                                          jpbabou
                                          wrote on last edited by
                                          #43

                                          @jelluz
                                          I have got he sme configuration between Arduiono et a PIGATEWAYSERIAL ?
                                          How do you declare it into a controler like Pimatic (you says that it works fine)
                                          Tkd for your advice

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


                                          23

                                          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