[Tutorial] Raspberry Pi NRF24l01 direct connection
-
For my Point of view, every Controller which is able to use the Serial Gateway.
-
I tested it on my Rpi B+ its working fine, but the cpu load is always 100%. Is this normal?
Same here. I'm afraid that with the PI at 100% there is no much use of this code becasue we can't do anything else...
Strange that the PI that is much powerfull than an arduino gets so high CPU for something that an arduino nano can do...
Could it be something that could be improved?
Cheers,
Joaoabs -
I have no problem with it. fhem as controler and mysql as DB is running on the same PI.
The Gateway is not even listed in "top" -
I have no problem with it. fhem as controler and mysql as DB is running on the same PI.
The Gateway is not even listed in "top"Do you mean you don't have any problems with the fact the CPU is at 100% or you simply don't have the same sympthom?
Thanks for replying,
Joaoabs -
Hi,
I think the problem with the PiGatewaySerial showing as consuming 100% is not a real problem. I also see the CPU consuming 100% using the top utility, however as soon as you run another process, for example a user python script, on the Pi, you will notice that top will suddenly report that PiGatewaySerial is using only a few percent of the CPU.
Cheers
Richard -
Hi! I want to use RPi as a controller, with direct radio connection and pimatic. I've followed both posts but not sure how to make it work together. I know @Vladut-Grecu is using the same configuration, could you please point me to the right direction?
-
Ok. It seems the gateway is working as i get the same final screen when I run it. But... does it has a verbose mode? How can I know If it is working? I tried with a test node, unfortunately it seems not working ... or simply it does'nt give any feedback...
-
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
-
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
-
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
-
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
-
(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.9after 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.8Notice 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); #endifWhen 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); #endifand 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+. -
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 upgradeCan anyone tell me what is going wrong.
Thx in advance.
-