@mfalkvidd Oh, cool. I missed that (and I didn't know that, and I learned something today :-)). Yep, in that case it wouldn't help much.
Posts made by ftw64
-
RE: [solved] Sensor freezes - Low memory available, stability problems may occur.
-
RE: [solved] Sensor freezes - Low memory available, stability problems may occur.
A lot of debug code in this sketch has not been enclosed between #ifdef MYDEBUG/#endif blocks. Even if you disable MYDEBUG, most of the Serial.print() lines remain 'active'.
Try to comment most of the Serial.print() code or add the #ifdef statements to have the compiler ignore these Serial.print() lines.
Most memory in this sketch is eaten up by the strings ("xxx"). -
RE: 💬 Building a Raspberry Pi Gateway
@marceloaqno Thanks! That indeed does the trick! And no worries, it is my own decision to play with beta(!) code (and it was a fun weekend troubleshooting it - I learned a lot about the structure of the MySensors code)!
Only 'bad' thing is that 2.2.0 is not compatible with my existing nodes :-).
I appreciate all the work that has been put into MySensors.
-
RE: 💬 Building a Raspberry Pi Gateway
@gohan There are no stupid questions, right :-)? But perhaps a stupid answer: no, I did not use any logic convertors. The RFM69 is 3.3V and as far as I know, so are the GPIO pins on the RPI. But I might be mistaken, of course... Should I use logic convertors?
At the moment I have no idea where it fails. Perhaps I need to give it a rest for a couple of days to think it over...
I followed the steps as given on the web site (git branch development). Connected the RFM radio (7 wires: Vcc, GND, MOSI, MISO, SCK, NSS, DI00). Only modified MyConfig.h with regard to the NETWORKID (100 --> 101; my 'production' MySensors runs at 100) and enabling "MY_DEBUG_VERBOSE_RFM69". I configured with:
% ./configure --my-debug=enable --my-config-file=/usr/local/etc/mysensors.dat --my-gateway=ethernet --my-transport=rfm69 --my-rfm69-frequency=868 --my-is-rfm69hw % make -j 4 % sudo bin/mysgw -d
-
RE: 💬 Building a Raspberry Pi Gateway
Can't get the RFM69HW to work on RPI. I tried the following:
- I installed on an old RPI1 (clean Rasbian install). Same results as on my Domoticz RPI-3.
- Setup the original RPI3 as a node, using the 2.2.0-beta code. I verified that in this case the RFM69HW actually transmits (I can hear it burst on 868.000 MHz). However, it is unable to connect to an existing Arduino 2.1.1 gateway.
- I built an Arduino 2.2.0-beta serial gateway. Even then, the RPI as a node fails to connect to the 2.2.0-beta serial gateway.
- I built an Arduino 2.2.0-beta node. This node is able to connect to the above gateway.
There seems to be something different in the radio network between the RFM69HW on the RPI and the RFM69HW on the Arduino. But I'm unable to find out what the difference is :-(.
The RPI RFM69HW will not communicate with the Arduino RFM69HW. When the RPI is a gateway, the RFM69HW will not physically interrupt when another node is trying to connect. When the RPI is a node, the RFM69HW on the ARduino does not interrupt either.
Did anyone get the RFM69HW working on the RPI? I'd really like to get this beautiful piece of code working!
-
RE: 💬 Building a Raspberry Pi Gateway
@gohan said in Building a Raspberry Pi Gateway:
myscontroller
I just did. When I also have a Domoticz controller connected to the gateway:
2017-04-23 11:18:33 INFO Connected to 192.168.10.24:5003 2017-04-23 11:18:33 CHILD New child discovered, node id=0, child id=internal 2017-04-23 11:18:33 RX 0;255;3;0;14;Gateway startup complete. 2017-04-23 11:18:33 DEBUG Update child id=255, type=ARDUINO_RELAY 2017-04-23 11:18:33 RX 0;255;0;0;18;2.2.0-beta 2017-04-23 11:18:33 RX 0;255;3;0;22;208103 2017-04-23 11:18:33 RX 0;255;3;0;2;2.2.0-beta 2017-04-23 11:18:43 RX 0;255;3;0;22;218106 2017-04-23 11:18:53 RX 0;255;3;0;22;228110 2017-04-23 11:19:03 RX 0;255;3;0;22;238101 2017-04-23 11:19:13 RX 0;255;3;0;22;248104 2017-04-23 11:19:23 RX 0;255;3;0;22;258110 2017-04-23 11:19:33 RX 0;255;3;0;22;268107 2017-04-23 11:19:43 RX 0;255;3;0;22;278106 2017-04-23 11:19:53 RX 0;255;3;0;22;288110 2017-04-23 11:20:03 RX 0;255;3;0;22;298116
However, I found out that the DI00 (=IRQ) on the RFM69 never gives a rising edge...
I'm suspecting that the RFM69 is not being initialised properly... I added some debugging in the RFM69 code to see what registers are being written and read:mysgw: Starting gateway... mysgw: Protocol version - 2.2.0-beta mysgw: MCO:BGN:INIT GW,CP=RPNG----,VER=2.2.0-beta mysgw: TSF:LRT:OK mysgw: TSM:INIT mysgw: TSF:WUR:MS=0 mysgw: RFM69:INIT mysgw: RFM69:INIT:PIN,CS=24,IQP=22,IQN=22 mysgw: FtW:RFM69:write register, reg=0x01, value=4 mysgw: FtW:RFM69:write register, reg=0x02, value=0 mysgw: FtW:RFM69:write register, reg=0x03, value=2 mysgw: FtW:RFM69:write register, reg=0x04, value=64 mysgw: FtW:RFM69:write register, reg=0x05, value=3 mysgw: FtW:RFM69:write register, reg=0x06, value=51 mysgw: FtW:RFM69:write register, reg=0x18, value=136 mysgw: FtW:RFM69:write register, reg=0x19, value=66 mysgw: FtW:RFM69:write register, reg=0x26, value=7 mysgw: FtW:RFM69:write register, reg=0x28, value=16 mysgw: FtW:RFM69:write register, reg=0x29, value=220 mysgw: FtW:RFM69:write register, reg=0x2c, value=0 mysgw: FtW:RFM69:write register, reg=0x2d, value=3 mysgw: FtW:RFM69:write register, reg=0x2e, value=136 mysgw: FtW:RFM69:write register, reg=0x2f, value=45 mysgw: FtW:RFM69:write register, reg=0x30, value=101 mysgw: FtW:RFM69:write register, reg=0x37, value=212 mysgw: FtW:RFM69:write register, reg=0x38, value=66 mysgw: FtW:RFM69:write register, reg=0x39, value=255 mysgw: FtW:RFM69:write register, reg=0x3a, value=255 mysgw: FtW:RFM69:write register, reg=0x3c, value=5 mysgw: FtW:RFM69:write register, reg=0x3d, value=16 mysgw: FtW:RFM69:write register, reg=0x6f, value=48 mysgw: FtW:RFM69:write register, reg=0x07, value=217 mysgw: FtW:RFM69:write register, reg=0x08, value=0 mysgw: FtW:RFM69:write register, reg=0x09, value=0 mysgw: FtW:RFM69:write register, reg=0x01, value=4 mysgw: FtW:RFM69:read register, reg=0x27, value=128 mysgw: FtW:RFM69:read register, reg=0x3d, value=16 mysgw: FtW:RFM69:write register, reg=0x3d, value=16 mysgw: FtW:RFM69:write register, reg=0x11, value=87 mysgw: RFM69:PTX:LEVEL=5 dBm mysgw: FtW:RFM69:read register, reg=0x02, value=0 mysgw: FtW:RFM69:read register, reg=0x03, value=2 mysgw: FtW:RFM69:read register, reg=0x04, value=64 mysgw: FtW:RFM69:read register, reg=0x05, value=3 mysgw: FtW:RFM69:read register, reg=0x06, value=51 mysgw: FtW:RFM69:read register, reg=0x30, value=101 mysgw: FTW attachInterrupt: gpioPin=25 mode=3 mysgw: TSM:INIT:TSP OK mysgw: TSM:INIT:GW MODE mysgw: FtW:RFM69:write register, reg=0x39, value=0 mysgw: TSM:READY:ID=0,PAR=0,DIS=0 mysgw: MCO:REG:NOT NEEDED mysgw: FtW:RFM69:write register, reg=0x25, value=64 mysgw: FtW:RFM69:write register, reg=0x13, value=26 mysgw: FtW:RFM69:write register, reg=0x5a, value=85 mysgw: FtW:RFM69:write register, reg=0x5c, value=112 mysgw: FtW:RFM69:read register, reg=0x3d, value=16 mysgw: FtW:RFM69:write register, reg=0x3d, value=20 mysgw: FtW:RFM69:write register, reg=0x01, value=16 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: gatewayTransportAvailable mysgw: Client 0: 0;0;3;0;2;Get Version mysgw: gatewayTransportAvailable mysgw: Client 0: 0;0;3;0;18;PING mysgw: gatewayTransportAvailable mysgw: Client 0: 0;0;3;0;18;PING mysgw: gatewayTransportAvailable mysgw: Client 0: 0;0;3;0;18;PING
-
RE: 💬 Building a Raspberry Pi Gateway
@ftw64 Ok, this has to do with connecting an Ethernet client. When a client connects, this code works...
Any idea where to start debugging for incoming RFM69 messages? -
RE: 💬 Building a Raspberry Pi Gateway
I'm pretty sure I wired up the RFM69 correctly.
However, I'm debugging. It seems we are stuck in "core/MyGatewayTransport.cpp":inline void gatewayTransportProcess(void) { if (gatewayTransportAvailable()) { // NEVER REACHED
I never seem to get pass gatewayTransportAvailable. I will continue debugging.
Disclaimer: I'm relatively new to MySensors and not really 'up to speed' with the source code :-). -
RE: 💬 Building a Raspberry Pi Gateway
I cannot get the RFM69(HW) working. When I start myswg in debug mode (-d), I see:
mysgw: Starting gateway... mysgw: Protocol version - 2.2.0-beta mysgw: MCO:BGN:INIT GW,CP=RPNG----,VER=2.2.0-beta mysgw: TSF:LRT:OK mysgw: TSM:INIT mysgw: TSF:WUR:MS=0 mysgw: RFM69:INIT mysgw: RFM69:INIT:PIN,CS=24,IQP=22,IQN=22 mysgw: RFM69:PTX:LEVEL=5 dBm 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
But I can see ('hear' with a radio on 868.000 MHz) no transmission of the RFM69. When I power up a node, the node does not connect to the gateway: "NO REPLY"
0 MCO:BGN:INIT NODE,CP=RRNNA--,VER=2.1.1 4 TSM:INIT 4 TSF:WUR:MS=0 8 TSM:INIT:TSP OK 10 TSM:INIT:STATID=4 12 TSF:SID:OK,ID=4 14 TSM:FPAR 274 TSF:MSG:SEND,4-4-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 2281 !TSM:FPAR:NO REPLY 2283 TSM:FPAR 2562 TSF:MSG:SEND,4-4-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 4569 !TSM:FPAR:NO REPLY 4571 TSM:FPAR 4831 TSF:MSG:SEND,4-4-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 6838 !TSM:FPAR:NO REPLY 6840 TSM:FPAR 7100 TSF:MSG:SEND,4-4-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 9107 !TSM:FPAR:FAIL 9109 TSM:FAIL:CNT=1 9111 TSM:FAIL:PDT
Is there any 'check' I can do to perform basic RFM69HW testing on my RPI?
-
RE: 💬 Building a Raspberry Pi Gateway
When I configure "MY_RFM69_MAX_POWER_LEVEL_DBM" in MyConfig.h, compiling fails.
Perhaps you should change the code in ./drivers/RFM69/new/RFM69_new.h from:#define RFM69_MAX_POWER_LEVEL_DBM MY_RFM69_MAX_POWER_LEVEL_DBM //!< MY_RFM69_MAX_POWER_LEVEL_DBM
to:
#define RFM69_MAX_POWER_LEVEL_DBM ((rfm69_powerlevel_t)MY_RFM69_MAX_POWER_LEVEL_DBM) //!< MY_RFM69_MAX_POWER_LEVEL_DBM
-
Power consumption (battery) during (re-)init
Hello,
I'm building a (test) sensor on battery power. For now, the sketch
will toggle a binary value, send that value and then goes to sleep
for 60 seconds. I'm using an Arduino Mini Pro (3.3V) and an RFM69HW.During the 'sleep' my battery current drops to about 5 uA. Then it
wakes up for about 40(?) ms to send the new value and then goes to
sleep again. That's great! The transmissions during this time consumes
about 150 mA, but only for a few milliseconds.However, when my gateway is unavailable, after some time my sensor
enters the RE-INIT state and tries to connect to the (non-existent)
gateway. During this time, the battery current remains about 5 mA
(about 1000x higher) between the connection attempts. Also, when
powering up the sensor for the first time, the behaviour is the same.That means that my battery will drain 1000x faster when my gateway
is unavailable for what-ever reason.Is there a way to change the (RE-)INIT behaviour. For example: put
the sensor in a 'real' sleep state between the (RE-)INIT attempts?