good karma
-
Hi all, i try to use your library in my project with Raspberry Pi as Gateway, I start with your example "piGateway", all starting is done, here debug lines:
Starting Gateway...
Sensor-1Gateway created...
Hej-begin-SPI device = /dev/spidev0.0
SPI speed = 8000000
CE GPIO = 25
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0x7365727631 0xabcdabc000
RX_ADDR_P2-5 = 0xff 0xe3 0xe4 0xe5
TX_ADDR = 0x7365727631
RX_PW_P0-6 = 0x20 0x20 0x20 0x20 0x20 0x20
EN_AA = 0x3f
EN_RXADDR = 0x3f
RF_CH = 0x4c
RF_SETUP = 0x07
CONFIG = 0x0f
DYNPD/FEATURE = 0x3f 0x04
Data Rate = 1MBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_MAX
Radio setup complete-After setupRadio-After openReadingPipe-After startListening-After serial-Begin calledbut if I run my arduino with any examples (HumiditySensor, BatteryPoweredSensor, ...) They don't communicate. I double checked wiring, all is OK. Need help thanks.
-
Hi all, i try to use your library in my project with Raspberry Pi as Gateway, I start with your example "piGateway", all starting is done, here debug lines:
Starting Gateway...
Sensor-1Gateway created...
Hej-begin-SPI device = /dev/spidev0.0
SPI speed = 8000000
CE GPIO = 25
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0x7365727631 0xabcdabc000
RX_ADDR_P2-5 = 0xff 0xe3 0xe4 0xe5
TX_ADDR = 0x7365727631
RX_PW_P0-6 = 0x20 0x20 0x20 0x20 0x20 0x20
EN_AA = 0x3f
EN_RXADDR = 0x3f
RF_CH = 0x4c
RF_SETUP = 0x07
CONFIG = 0x0f
DYNPD/FEATURE = 0x3f 0x04
Data Rate = 1MBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_MAX
Radio setup complete-After setupRadio-After openReadingPipe-After startListening-After serial-Begin calledbut if I run my arduino with any examples (HumiditySensor, BatteryPoweredSensor, ...) They don't communicate. I double checked wiring, all is OK. Need help thanks.
@aliasdoc Do the RX_ADDR_Px and TX_ADDR values match your configuration? If they are then communication seems to work ok.
Some other trivial questions:- are both radio's on the same channel
- same baudrate
- both use CRC
- have same packet length/use dynamic packet length
- do you run the RPi code as root?
-
Hi Yveaux and thanks, effectively, config of my arduino is 2MBPS and RPi is 1MBPS, now it communicate but in RPI, I had "Unknown route from GW" error :
Dynamic payload size=7
Received: from=255, to=255, childId=79, mtype=9, type=0, crc=184, ''
Message crc ok.
header.type=0, header.to=255, radioId=0
Unknown route from GWand from arduino:
Tx: fr=255,to=255,la=255,ne=255,ci=255,mt=4,ty=9,cr=184:
No relay nodes was found. Trying again in 10 seconds. -
Hi Yveaux and thanks, effectively, config of my arduino is 2MBPS and RPi is 1MBPS, now it communicate but in RPI, I had "Unknown route from GW" error :
Dynamic payload size=7
Received: from=255, to=255, childId=79, mtype=9, type=0, crc=184, ''
Message crc ok.
header.type=0, header.to=255, radioId=0
Unknown route from GWand from arduino:
Tx: fr=255,to=255,la=255,ne=255,ci=255,mt=4,ty=9,cr=184:
No relay nodes was found. Trying again in 10 seconds. -
Hi Yveaux and thanks, effectively, config of my arduino is 2MBPS and RPi is 1MBPS, now it communicate but in RPI, I had "Unknown route from GW" error :
Dynamic payload size=7
Received: from=255, to=255, childId=79, mtype=9, type=0, crc=184, ''
Message crc ok.
header.type=0, header.to=255, radioId=0
Unknown route from GWand from arduino:
Tx: fr=255,to=255,la=255,ne=255,ci=255,mt=4,ty=9,cr=184:
No relay nodes was found. Trying again in 10 seconds.@aliasdoc
It looks like the gateway/controller don't know where to send/route message for node 255.
I haven't really analyzed the RPI code that deeply but it must mimic the EEPROM routing table that the serial/ethernet gateway has (by picking up incomings messages last node.id)... If that is missing then RPI-gw has no clue where to send outgoing messages to nodes. -
Hi Hek :), thanks for your reply, my RPi is my gateway, i try to make my own "cloud support", for testing, I have 1 RPi running as gateway (with example on github) and 1 sensor running BatteryPowerSensor sketch (original) like this:
(my cloud system) <-------- RPi (as gateway) <------------ arduino sensor (with BatteryPowersensor sketch)
Do I need to start inclusion mode ?? If I understand well, this mode is for automatic ID attribution, is correct ?
And I don't see any EEPROM routing table in serial ethernet examples.
Sorry if my questions are stupid, I try to understand how it works.
-
You really don't need to start include mode (that was more to help vera cope with things).
A request for id will have messageType=4, type=5.What you got was:
Received: from=255, to=255, childId=79, mtype=9, type=0, crc=184, ''There actually is no mtype=9. Looks like your header is messed up. Probably due to usage of c-bifields for the header struct (which is assembled/disassembled differently for rpi/arduino compiler). This has been fixed in the upcoming version of the library (were we use normal bit operations to extract the part-8-bit header stuff). A quickfix could be to use full bytes for all header fields (on the arduin/rpi-side).
Or you could have a look at the new development version: https://github.com/mysensors/Arduino/tree/development and make the corresponding changes to RPI code.
If you do the (preferred) later approach, please make sure to create a github pull request so we don't duplicate any work. :)
-
@hek any idea to port eeprom routing table to raspberry, I think I can use a binary file to this and redefine eeprom_*() functions. What do you think about it ?
-
Ok, now I ported the library to RPI and make tests but the first send command from node is ok, but after it fails
RPI debug:0;0;4;9;Device startup complete.
0;0;4;8;read: 255-255-255 s=255,c=4,t=7,cr=ec:
0;0;4;8;read: 255-255-255 s=255,c=4,t=7,cr=ec:
0;0;4;8;read: 255-255-0 s=255,c=4,t=3,cr=ec:
0;0;4;8;read: 255-255-0 s=255,c=4,t=3,cr=ec:
0;0;4;8;read: 255-255-0 s=255,c=4,t=3,cr=ec:
0;0;4;8;read: 255-255-0 s=255,c=4,t=3,cr=ec:
0;0;4;8;read: 255-255-0 s=255,c=4,t=3,cr=ec:
0;0;4;8;read: 255-255-0 s=255,c=4,t=3,cr=ec:
0;0;4;8;read: 255-255-0 s=255,c=4,t=3,cr=ec:
0;0;4;8;read: 255-255-0 s=255,c=4,t=3,cr=ec:
0;0;4;8;read: 255-255-0 s=255,c=4,t=3,cr=ec:
0;0;4;8;read: 255-255-0 s=255,c=4,t=3,cr=ec:and arduino node debug:
send: 255-255-255-255 s=255,c=4,t=7, st=ok:
req node id
send: 255-255-255-0 s=255,c=4,t=3, st=fail:
sensor started, id 255
req node id
send: 255-255-255-0 s=255,c=4,t=3, st=fail:
req node id
send: 255-255-255-0 s=255,c=4,t=3, st=fail:
req node id
send: 255-255-255-0 s=255,c=4,t=3, st=fail:
req node id
send: 255-255-255-0 s=255,c=4,t=3, st=fail:
req node id
send: 255-255-255-0 s=255,c=4,t=3, st=fail:any idea ?
-
Looks like you get crc-error. cr=ec
Hmm.. guess you'll have to dig into that part to see what could be wrong.
Not sure why the node reports transmission failure... Are you using the same RF24 library version on both ends (you should use the same as Arduino-side).
-
yes I use the same, this one https://github.com/mysensors/Arduino/tree/development/libraries/RF24/RPi for RPI and this https://github.com/mysensors/Arduino/tree/development/libraries/RF24 for arduino node. In the first call, all is ok but after the I_PING all calls fails :s