💬 Building a Raspberry Pi Gateway
-
Today my rPi gateway (2.1.1 stable) completely stopped working as a service (cli surprisingly worked), I thought that could be some debian update so I switched to devel, but when building it I get this:
LINUX_ARCH_RASPBERRYPI -DMY_PORT=5003 -DMY_RX_MESSAGE_BUFFER_FEATURE -DMY_RF24_IRQ_PIN=18 -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/BCM -c drivers/BCM/bcm2835.c -o build/drivers/BCM/bcm2835.o
drivers/BCM/bcm2835.c: In function ‘bcm2835_delayMicroseconds’:
drivers/BCM/bcm2835.c:441:40: error: expected ‘)’ before ‘PRIu64’
printf("bcm2835_delayMicroseconds %" PRIu64 "\n", micros);
^
drivers/BCM/bcm2835.c:441:40: warning: spurious trailing ‘%’ in format [-Wformat=]
Makefile:102: recipe for target 'build/drivers/BCM/bcm2835.o' failed
make: *** [build/drivers/BCM/bcm2835.o] Error 1Is this normal? I used the same configure was working before.
@Sergio-Rius a fix is available at https://github.com/mysensors/MySensors/pull/983
It is a one line change so you can just add it manually
-
Thaaanksss! I'll give it a go :)
-
@mfalkvidd Mmmmm... that worked, but now I'm always getting "mysgw: !TSM:INIT:TSP FAIL" as stated avobe. But I'm on development.
Wait, seems that after the 8'th intent it's working. I'll let him go and see. -
I'm afraid that after some time it stops working. I get in Domoticz:
2017-11-12 19:17:01.744 MySensors: trying to connect to: 127.0.0.1:5003
2017-11-12 19:17:02.744 TCP: Connection problem (Unable to connect to specified IP/Port)
2017-11-12 19:17:02.744 TCP: Reconnecting in 30 seconds...Over and over again.
$ sudo systemctl status mysgw.service
● mysgw.service - MySensors Gateway daemon
Loaded: loaded (/etc/systemd/system/mysgw.service; enabled)
Active: failed (Result: signal) since dom 2017-11-12 19:16:53 CET; 5min ago
Process: 491 ExecStart=/usr/local/bin/mysgw (code=killed, signal=SEGV)
Main PID: 491 (code=killed, signal=SEGV)
nov 12 19:16:47 Domoticz systemd[1]: Started MySensors Gateway daemon.
nov 12 19:16:48 Domoticz mysgw[491]: Starting gateway...
nov 12 19:16:48 Domoticz mysgw[491]: Protocol version - 2.2.0-rc.1
nov 12 19:16:53 Domoticz systemd[1]: mysgw.service: main process exited, code=killed, status=11/SEGV
nov 12 19:16:53 Domoticz systemd[1]: Unit mysgw.service entered failed state.But it seems Domoticz being crashing it.
If I do restart the service, Domoticz picks it and works for a while.2017-11-12 19:24:17.562 TCP: Connection problem (Unable to connect to specified IP/Port)
2017-11-12 19:24:17.562 TCP: Reconnecting in 30 seconds...
2017-11-12 19:24:47.565 TCP: Reconnecting...
2017-11-12 19:24:47.565 MySensors: connected to: 127.0.0.1:5003
2017-11-12 19:24:48.566 MySensors: Gateway Ready...
2017-11-12 19:24:48.566 MySensors: Gateway Version: 2.2.0-rc.1
2017-11-12 19:24:49.566 MySensors: Gateway Version: 2.2.0-rc.1Is there any further log for exactly seeing what is the crash cause?
EDIT: Also it seems that there's any comunication at all. I only get internal heartbeats on MysController.
-
@gohan Yep! I exactly ran this command:
git clone https://github.com/mysensors/MySensors.git --branch development && cd MySensorsI'm now powering off my rPi for changing the PA+LNA radio for a standard one and bypassing the power regulator.
EDIT: I've done the above tasks and still getting strange things. It may be Domoticz as:
2017-11-12 19:44:37.634 MySensors: trying to connect to: 127.0.0.1:5003
2017-11-12 19:44:37.638 RFXCOM: Using serial port: /dev/ttyUSB0
2017-11-12 19:44:38.213
2017-11-12 19:44:38.288 Error: RFXCOM: Invalid data received!....
2017-11-12 19:44:38.635 MySensors: connected to: 127.0.0.1:5003
2017-11-12 19:44:38.635 MySensors: Gateway Ready...
2017-11-12 19:44:39.635 MySensors: Gateway Version: 2.2.0-rc.1
2017-11-12 19:44:39.635 MySensors: Gateway Version: 2.2.0-rc.1
...
2017-11-12 20:26:00.153 Error: Scheduler thread seems to have ended unexpectedly
2017-11-12 20:26:00.154 Error: MySGW_NRF hardware (9) thread seems to have ended unexpectedly
2017-11-12 20:26:00.154 Error: RFXCOM hardware (15) thread seems to have ended unexpectedly
2017-11-12 20:26:00.154 Error: RFXCOM hardware (15) nothing received for more than 30 Minutes!....
2017-11-12 20:26:01.155 Error: Restarting: RFXCOM
2017-11-12 20:26:01.707 RFXCOM: Serial Worker stopped...
2017-11-12 20:26:02.722 RFXCOM: Using serial port: /dev/ttyUSB0
2017-11-12 20:26:03.297
2017-11-12 20:26:03.372 Error: RFXCOM: Invalid data received!....
2017-11-12 20:26:16.745 (RFXCOM) Temp + Humidity (Biblioteca [TH])
2017-11-12 20:26:48.745 Error: PROXY: timeout occurred, reconnecting
2017-11-12 20:26:54.716 (MySGW_NRF) Temp (Temp)
2017-11-12 20:26:54.717 (MySGW_NRF) Temp + Humidity (TempHum)
...
and stabilized -
Possibly same problem with Domoticz here too. Using a directly attached NRF24 radio to a Raspberry Pi Zero W.
I tried to remake using the latest dev code, and got this error:
gcc -MT build/drivers/BCM/bcm2835.o -MMD -MP -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI -DMY_PORT=5003 -DMY_RF24_PA_LEVEL=RF24_PA_LOW -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/BCM -c drivers/BCM/bcm2835.c -o build/drivers/BCM/bcm2835.o drivers/BCM/bcm2835.c: In function ‘bcm2835_delayMicroseconds’: drivers/BCM/bcm2835.c:441:40: error: expected ‘)’ before ‘PRIu64’ printf("bcm2835_delayMicroseconds %" PRIu64 "\n", micros); ^ drivers/BCM/bcm2835.c:441:40: warning: spurious trailing ‘%’ in format [-Wformat=] Makefile:102: recipe for target 'build/drivers/BCM/bcm2835.o' failed make: *** [build/drivers/BCM/bcm2835.o] Error 1// commenting out the problem allowed make to finish:
//if (debug) { // /* Cant access sytem timers in debug mode */ // printf("bcm2835_delayMicroseconds %" PRIu64 "\n", micros); // return; //}This is my config:
./configure --my-transport=nrf24 --my-rf24-pa-level=RF24_PA_LOW --my-gateway=ethernet --my-port=5003 -
Hello all!
I'm trying to build a gateway with a Raspberry pi2, ethernet and Domoticz.
It looks like the gateway is beeing built ok and seems to run fine but nodes can not communicate with it.
I have read most of the postings here but I can not find any solution.
Hope you guys can help? Please!I run raspbian (Jessie) pi@raspberrypi:~/MySensors/bin $ uname -a Linux raspberrypi 4.9.35-v7+ #1014 SMP Fri Jun 30 14:47:43 BST 2017 armv7l GNU/LinuxUsing master branch
https://www.mysensors.org/build/raspberry git clone https://github.com/mysensors/MySensors.git --branch masterConfiguring like this
pi@raspberrypi:~/MySensors $ ./configure --my-gateway=ethernet --my-port=5003 --my-transport=nrf24 --my-rf24-ce-pin=22 --my-rf24-cs-pin=24 [SECTION] Detecting target machine. [OK] machine detected: SoC=unknown, Type=unknown, CPU=armv7l. [SECTION] Checking GPIO Sysfs. [OK] /sys/class/gpio/export found [SECTION] Detecting SPI driver. [OK] SPI driver detected:SPIDEV. [SECTION] Detecting init system. [OK] init system detected: systemd. [SECTION] Saving configuration. [SECTION] Cleaning previous builds. [OK] Finished.Obs! No Raspberry identification, why not? Maybe that is the culprit?
After make I start the gateway and get this:pi@raspberrypi:~/MySensors $ cd bin pi@raspberrypi:~/MySensors/bin $ sudo ./mysgw -d mysgw: Starting gateway... mysgw: Protocol version - 2.1.1 mysgw: MCO:BGN:INIT GW,CP=RNNG---,VER=2.1.1 mysgw: TSM:INIT mysgw: TSF:WUR:MS=0 mysgw: TSM:INIT:TSP OK mysgw: TSM:INIT:GW MODE mysgw: TSM:READY:ID=0,PAR=0,DIS=0 mysgw: MCO:REG:NOT NEEDED mysgw: Listening for connections on 0.0.0.0:5003 mysgw: MCO:BGN:STP mysgw: MCO:BGN:INIT OK,TSP=1 mysgw: New connection from 127.0.0.1 mysgw: Client 0 connected mysgw: Client 0: 0;0;3;0;2; mysgw: Client 0: 0;0;3;0;2;Get Version mysgw: Client 0: 0;0;3;0;18;PINGSeems nice and dandy and Domoticz connecting fine.
Trying with this example node:#define MY_RADIO_NRF24 #define MY_RF24_PA_LEVEL RF24_PA_LOW #define MY_DEBUG #define MY_NODE_ID 42 //#define MY_DEBUG_VERBOSE_RF24 #define MY_BAUD_RATE 9600 #include <MySensors.h> #include<Arduino.h> #define OPEN 1 #define CLOSE 0 #define CHILD_ID 1 MyMessage msg(CHILD_ID, V_TRIPPED); uint8_t value = OPEN; void setup() { Serial.print("setup()\n"); } void presentation() { sendSketchInfo("Door", "2.1.1"); present(CHILD_ID, S_DOOR); Serial.print("presentation()\n"); } void loop() { value = value == OPEN ? CLOSE : OPEN; send(msg.set(value)); Serial.print("message sent"); Serial.print(value + "\n"); sleep(1000); }And recieve this when running:
--- Miniterm on /dev/ttyUSB0 9600,8,N,1 --- --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- 0 MCO:BGN:INIT NODE,CP=RNNNA--,VER=2.1.1 40 TSM:INIT 55 TSF:WUR:MS=0 77 TSM:INIT:TSP OK 96 TSM:INIT:STATID=42 120 TSF:SID:OK,ID=42 141 TSM:FPAR 190 TSF:MSG:SEND,42-42-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 2267 !TSM:FPAR:NO REPLY 2291 TSM:FPAR 2340 TSF:MSG:SEND,42-42-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 4417 !TSM:FPAR:NO REPLY 4442 TSM:FPAR 4491 TSF:MSG:SEND,42-42-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 6569 !TSM:FPAR:NO REPLY 6594 TSM:FPAR 6643 TSF:MSG:SEND,42-42-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 8720 !TSM:FPAR:FAIL 8740 TSM:FAIL:CNT=1 8761 TSM:FAIL:PDTAnd no output in gateway either.
Both radio modules using capacitors.What have I missed?
Thanks, Andreas!
-
I tried for months to get a stable working nrf24 attached to pi to act as a gw and controller.
In the end I gave up and now have a 3.3V 8MHz pro mini gw attached to the pi. I took 0v and 5v from the pi (via a 3.3v buck converter) and serial tx and rx. Only 4 wires needed and has been as stable as can be for over a week now.
Maybe help someone with the same unsolveable problems?
-
Hello all!
I'm trying to build a gateway with a Raspberry pi2, ethernet and Domoticz.
It looks like the gateway is beeing built ok and seems to run fine but nodes can not communicate with it.
I have read most of the postings here but I can not find any solution.
Hope you guys can help? Please!I run raspbian (Jessie) pi@raspberrypi:~/MySensors/bin $ uname -a Linux raspberrypi 4.9.35-v7+ #1014 SMP Fri Jun 30 14:47:43 BST 2017 armv7l GNU/LinuxUsing master branch
https://www.mysensors.org/build/raspberry git clone https://github.com/mysensors/MySensors.git --branch masterConfiguring like this
pi@raspberrypi:~/MySensors $ ./configure --my-gateway=ethernet --my-port=5003 --my-transport=nrf24 --my-rf24-ce-pin=22 --my-rf24-cs-pin=24 [SECTION] Detecting target machine. [OK] machine detected: SoC=unknown, Type=unknown, CPU=armv7l. [SECTION] Checking GPIO Sysfs. [OK] /sys/class/gpio/export found [SECTION] Detecting SPI driver. [OK] SPI driver detected:SPIDEV. [SECTION] Detecting init system. [OK] init system detected: systemd. [SECTION] Saving configuration. [SECTION] Cleaning previous builds. [OK] Finished.Obs! No Raspberry identification, why not? Maybe that is the culprit?
After make I start the gateway and get this:pi@raspberrypi:~/MySensors $ cd bin pi@raspberrypi:~/MySensors/bin $ sudo ./mysgw -d mysgw: Starting gateway... mysgw: Protocol version - 2.1.1 mysgw: MCO:BGN:INIT GW,CP=RNNG---,VER=2.1.1 mysgw: TSM:INIT mysgw: TSF:WUR:MS=0 mysgw: TSM:INIT:TSP OK mysgw: TSM:INIT:GW MODE mysgw: TSM:READY:ID=0,PAR=0,DIS=0 mysgw: MCO:REG:NOT NEEDED mysgw: Listening for connections on 0.0.0.0:5003 mysgw: MCO:BGN:STP mysgw: MCO:BGN:INIT OK,TSP=1 mysgw: New connection from 127.0.0.1 mysgw: Client 0 connected mysgw: Client 0: 0;0;3;0;2; mysgw: Client 0: 0;0;3;0;2;Get Version mysgw: Client 0: 0;0;3;0;18;PINGSeems nice and dandy and Domoticz connecting fine.
Trying with this example node:#define MY_RADIO_NRF24 #define MY_RF24_PA_LEVEL RF24_PA_LOW #define MY_DEBUG #define MY_NODE_ID 42 //#define MY_DEBUG_VERBOSE_RF24 #define MY_BAUD_RATE 9600 #include <MySensors.h> #include<Arduino.h> #define OPEN 1 #define CLOSE 0 #define CHILD_ID 1 MyMessage msg(CHILD_ID, V_TRIPPED); uint8_t value = OPEN; void setup() { Serial.print("setup()\n"); } void presentation() { sendSketchInfo("Door", "2.1.1"); present(CHILD_ID, S_DOOR); Serial.print("presentation()\n"); } void loop() { value = value == OPEN ? CLOSE : OPEN; send(msg.set(value)); Serial.print("message sent"); Serial.print(value + "\n"); sleep(1000); }And recieve this when running:
--- Miniterm on /dev/ttyUSB0 9600,8,N,1 --- --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- 0 MCO:BGN:INIT NODE,CP=RNNNA--,VER=2.1.1 40 TSM:INIT 55 TSF:WUR:MS=0 77 TSM:INIT:TSP OK 96 TSM:INIT:STATID=42 120 TSF:SID:OK,ID=42 141 TSM:FPAR 190 TSF:MSG:SEND,42-42-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 2267 !TSM:FPAR:NO REPLY 2291 TSM:FPAR 2340 TSF:MSG:SEND,42-42-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 4417 !TSM:FPAR:NO REPLY 4442 TSM:FPAR 4491 TSF:MSG:SEND,42-42-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 6569 !TSM:FPAR:NO REPLY 6594 TSM:FPAR 6643 TSF:MSG:SEND,42-42-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 8720 !TSM:FPAR:FAIL 8740 TSM:FAIL:CNT=1 8761 TSM:FAIL:PDTAnd no output in gateway either.
Both radio modules using capacitors.What have I missed?
Thanks, Andreas!
-
@aglock I put a note on the raspberry gateway page to use latest development in case of problems with stable. Did you try?
-
@aglock I put a note on the raspberry gateway page to use latest development in case of problems with stable. Did you try?
@gohan Tried it again
configure now recognizes the rpi:pi@raspberrypi:~/mys_dev $ ./configure --my-gateway=ethernet --my-port=5003 --my-transport=nrf24 --my-rf24-ce-pin=22 --my-rf24-cs-pin=24 [SECTION] Detecting target machine. [OK] machine detected: SoC=BCM2836, Type=rpi2, CPU=armv7l. [SECTION] Detecting SPI driver. [OK] SPI driver detected:BCM. [SECTION] Detecting init system. [OK] init system detected: systemd. [SECTION] Saving configuration. [SECTION] Cleaning previous builds. [OK] Finished.But make fails with the following error:
-I./core -I./drivers/Linux -I./drivers/BCM -c drivers/BCM/bcm2835.c -o build/drivers/BCM/bcm2835.o drivers/BCM/bcm2835.c: In function ‘bcm2835_delayMicroseconds’: drivers/BCM/bcm2835.c:441:40: error: expected ‘)’ before ‘PRIu64’ printf("bcm2835_delayMicroseconds %" PRIu64 "\n", micros); ^ drivers/BCM/bcm2835.c:441:40: warning: spurious trailing ‘%’ in format [-Wformat=] Makefile:102: recipe for target 'build/drivers/BCM/bcm2835.o' failed make: *** [build/drivers/BCM/bcm2835.o] Error 1 pi@raspberrypi:~/mys_dev $What to do about it?
-
@gohan Tried it again
configure now recognizes the rpi:pi@raspberrypi:~/mys_dev $ ./configure --my-gateway=ethernet --my-port=5003 --my-transport=nrf24 --my-rf24-ce-pin=22 --my-rf24-cs-pin=24 [SECTION] Detecting target machine. [OK] machine detected: SoC=BCM2836, Type=rpi2, CPU=armv7l. [SECTION] Detecting SPI driver. [OK] SPI driver detected:BCM. [SECTION] Detecting init system. [OK] init system detected: systemd. [SECTION] Saving configuration. [SECTION] Cleaning previous builds. [OK] Finished.But make fails with the following error:
-I./core -I./drivers/Linux -I./drivers/BCM -c drivers/BCM/bcm2835.c -o build/drivers/BCM/bcm2835.o drivers/BCM/bcm2835.c: In function ‘bcm2835_delayMicroseconds’: drivers/BCM/bcm2835.c:441:40: error: expected ‘)’ before ‘PRIu64’ printf("bcm2835_delayMicroseconds %" PRIu64 "\n", micros); ^ drivers/BCM/bcm2835.c:441:40: warning: spurious trailing ‘%’ in format [-Wformat=] Makefile:102: recipe for target 'build/drivers/BCM/bcm2835.o' failed make: *** [build/drivers/BCM/bcm2835.o] Error 1 pi@raspberrypi:~/mys_dev $What to do about it?
-
@mfalkvidd Wow, thanks that works! :D
-
Got mysensors gateway working on gpio of my Pi again using ./configure --my-transport=nrf24 --my-rf24-irq-pin=15 --my-leds-err-pin=12 --my-leds-rx-pin=16 --my-leds-tx-pin=18 --my-gateway=ethernet --my-port=5003
However on tx or tx always the two leds connected to pin 16 and 18 are lit. More people with the same problem?
-
Got mysensors gateway working on gpio of my Pi again using ./configure --my-transport=nrf24 --my-rf24-irq-pin=15 --my-leds-err-pin=12 --my-leds-rx-pin=16 --my-leds-tx-pin=18 --my-gateway=ethernet --my-port=5003
However on tx or tx always the two leds connected to pin 16 and 18 are lit. More people with the same problem?
-
Can we use the "debug ota log" features with the raspberryPi gateway ??
My node is not accessible and runs MYSBootloader.
My gateway is raspberryPI.Now, I need to update the firmware on my node. Via MYSController, no problems, upload runs like a charm.
But how to do for debugging my sketch ? Some bugs appear...... , I need to take a look on some vars values.
Usually, I use the serial port with serial.print(some vars).
Which alternative I have to use without serial port, only OTA features ?Thanks for the great work !!
-
In fact, I do not need to log, but need to look what's happen in my sketch.
The new "OTALog" function, MY_OTA_LOG_SENDER_FEATURE or MY_DEBUG_OTA seems to be the good way.
From the docs, it allows to send a debug message to another node or gateway via OTA.But how to got the debug message from OTA node, on the gateway side (RaspberryPi) ?
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login