Problem getting the code to run with MySensors library 2.0
-
@mfalkvidd
Any idea why this is happening?
Cause I can't use MY_GATEWAY_SERIAL for a node. Right?@palande.vaibhav said:
Cause I can't use MY_GATEWAY_SERIAL for a node. Right?
Yes you can. But I read that there is a bug in MySensors 2.0 that causes the presentation function to not run, so you'll need the latest code from the MySensors development branch on Github.
-
Okay....so you are really having a strange problem here.
Am using the Arduino version 1.6.8,
Can you consider upgrading your arduino version maybe that could fix the CRC thing...1.6.8 is the older version. 1.6.12 is the latest version.
And the CRC error is the known bug. So, if your IDE and MySensors work then don't change anything.
-
Okay....so you are really having a strange problem here.
Am using the Arduino version 1.6.8,
Can you consider upgrading your arduino version maybe that could fix the CRC thing...@ayo
did you try commenting #define MY_GATEWAY_SERIAL and running your Blink code?
Can you please try that? -
@palande.vaibhav said:
Cause I can't use MY_GATEWAY_SERIAL for a node. Right?
Yes you can. But I read that there is a bug in MySensors 2.0 that causes the presentation function to not run, so you'll need the latest code from the MySensors development branch on Github.
@mfalkvidd said:
@palande.vaibhav said:
Cause I can't use MY_GATEWAY_SERIAL for a node. Right?
Yes you can. But I read that there is a bug in MySensors 2.0 that causes the presentation function to not run, so you'll need the latest code from the MySensors development branch on Github.
But am I right that for MySensors version 2.0, we must have #define MY_GATEWAY_SERIAL line in order for the code to work? OR is it just me?
And I don't even have anything in the presentation function. I think my problem is loop function not working if I don;t have #define MY_GATEWAY_SERIAL line in the code.
-
@palande.vaibhav said:
Cause I can't use MY_GATEWAY_SERIAL for a node. Right?
Yes you can. But I read that there is a bug in MySensors 2.0 that causes the presentation function to not run, so you'll need the latest code from the MySensors development branch on Github.
@mfalkvidd said:
@palande.vaibhav said:
Cause I can't use MY_GATEWAY_SERIAL for a node. Right?
Yes you can. But I read that there is a bug in MySensors 2.0 that causes the presentation function to not run, so you'll need the latest code from the MySensors development branch on Github.
I tried with the library from Development branch on GitHub. It still doesn't work.
I must have #define MY_GATEWAY_SERIAL line in the code for the code to work with MySensors.h.Library version:

Code below doesn't work cause I have commented #define MY_GATEWAY_SERIAL: Just uncomment it and the same code works
//MySensors // Enable debug prints //#define MY_DEBUG //// Enable and select radio type attached #define MY_RADIO_NRF24 ////#define MY_RADIO_RFM69 //#define MY_GATEWAY_SERIAL #include <SPI.h> #include <MySensors.h> unsigned long SLEEP_TIME = 120000; // Sleep time between reports (in milliseconds) const byte DIGITAL_INPUT_SENSOR = 3; // The digital input you attached your motion sensor. (Only 2 and 3 generates interrupt!) //#define CHILD_ID 1 // Id of the sensor child // Initialize motion message //MyMessage msg(1, V_LIGHT); void setup() { // Setup locally attached sensors pinMode(8, OUTPUT); } void presentation() { // Present locally attached sensors } void loop() { // Send locally attached sensor data here digitalWrite(8, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(8, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second } -
@palande.vaibhav said:
Cause I can't use MY_GATEWAY_SERIAL for a node. Right?
Yes you can. But I read that there is a bug in MySensors 2.0 that causes the presentation function to not run, so you'll need the latest code from the MySensors development branch on Github.
I saw the post about the presentation function not working in 2.0. But that has been fixed in development version.
My problem is still there that code doesn't work at all. To which I think my loop function stops working if I don't have #define MY_GATEWAY_SERIAL line in the code.
-
I saw the post about the presentation function not working in 2.0. But that has been fixed in development version.
My problem is still there that code doesn't work at all. To which I think my loop function stops working if I don't have #define MY_GATEWAY_SERIAL line in the code.
-
@palande.vaibhav what does the debug output say?
You can also add a few Serial.println in the code to see where the execution stops.@mfalkvidd
Thanx for the suggestion. It's worse than I thought.Here is the code:
//MySensors // Enable debug prints //#define MY_DEBUG //// Enable and select radio type attached #define MY_RADIO_NRF24 ////#define MY_RADIO_RFM69 #define MY_GATEWAY_SERIAL #include <SPI.h> #include <MySensors.h> // Initialize motion message //MyMessage msg(1, V_LIGHT); void setup() { // Setup locally attached sensors pinMode(8, OUTPUT); Serial.println("Setup runs"); } void presentation() { // Present locally attached sensors Serial.println("presentation runs"); } void loop() { // Send locally attached sensor data here Serial.println("loop runs"); digitalWrite(8, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(8, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }This is the output with #define MY_GATEWAY_SERIAL line.

Without #define MY_GATEWAY_SERIAL, it doesn't show anything on the serial monitor.
-
@ayo
did you try commenting #define MY_GATEWAY_SERIAL and running your Blink code?
Can you please try that? -
@mfalkvidd
Thanx for the suggestion. It's worse than I thought.Here is the code:
//MySensors // Enable debug prints //#define MY_DEBUG //// Enable and select radio type attached #define MY_RADIO_NRF24 ////#define MY_RADIO_RFM69 #define MY_GATEWAY_SERIAL #include <SPI.h> #include <MySensors.h> // Initialize motion message //MyMessage msg(1, V_LIGHT); void setup() { // Setup locally attached sensors pinMode(8, OUTPUT); Serial.println("Setup runs"); } void presentation() { // Present locally attached sensors Serial.println("presentation runs"); } void loop() { // Send locally attached sensor data here Serial.println("loop runs"); digitalWrite(8, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(8, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }This is the output with #define MY_GATEWAY_SERIAL line.

Without #define MY_GATEWAY_SERIAL, it doesn't show anything on the serial monitor.
@palande.vaibhav said:
@mfalkvidd
Thanx for the suggestion. It's worse than I thought.Here is the code:
//MySensors // Enable debug prints //#define MY_DEBUG //// Enable and select radio type attached #define MY_RADIO_NRF24 ////#define MY_RADIO_RFM69 #define MY_GATEWAY_SERIAL #include <SPI.h> #include <MySensors.h> // Initialize motion message //MyMessage msg(1, V_LIGHT); void setup() { // Setup locally attached sensors pinMode(8, OUTPUT); Serial.println("Setup runs"); } void presentation() { // Present locally attached sensors Serial.println("presentation runs"); } void loop() { // Send locally attached sensor data here Serial.println("loop runs"); digitalWrite(8, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(8, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }This is the output with #define MY_GATEWAY_SERIAL line.

Without #define MY_GATEWAY_SERIAL, it doesn't show anything on the serial monitor.
@mfalkvidd Any update on this?
-
@palande.vaibhav said:
@mfalkvidd
Thanx for the suggestion. It's worse than I thought.Here is the code:
//MySensors // Enable debug prints //#define MY_DEBUG //// Enable and select radio type attached #define MY_RADIO_NRF24 ////#define MY_RADIO_RFM69 #define MY_GATEWAY_SERIAL #include <SPI.h> #include <MySensors.h> // Initialize motion message //MyMessage msg(1, V_LIGHT); void setup() { // Setup locally attached sensors pinMode(8, OUTPUT); Serial.println("Setup runs"); } void presentation() { // Present locally attached sensors Serial.println("presentation runs"); } void loop() { // Send locally attached sensor data here Serial.println("loop runs"); digitalWrite(8, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(8, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }This is the output with #define MY_GATEWAY_SERIAL line.

Without #define MY_GATEWAY_SERIAL, it doesn't show anything on the serial monitor.
@mfalkvidd Any update on this?
-
I don't have access to my computer now I will try it when I have it.
@palande.vaibhav said:
@ayo
did you try commenting #define MY_GATEWAY_SERIAL and running your Blink code?
Can you please try that?@ayo Did you try running the code?
-
@palande.vaibhav no, I haven't got any ideas on what could be wrong. Sorry.
@mfalkvidd
Is it only me?
Can you please try this on your setup as time permits?
I have a manual install of the library 2.0
I want to use this for one of my projects and I am dead stuck. -
@palande.vaibhav said:
Cause I can't use MY_GATEWAY_SERIAL for a node. Right?
Yes you can. But I read that there is a bug in MySensors 2.0 that causes the presentation function to not run, so you'll need the latest code from the MySensors development branch on Github.
@mfalkvidd
I have to keep #define MY_GATEWAY_SERIAL line in the code for both gateway and sensor nodes.
Now since I have #define MY_GATEWAY_SERIAL line in the code for both gateway and sensor node, both of them are initializing as gateways.
And this causes them not to be able to communicate with each other.
Please help

-
@ayo Did you try running the code?
So I tried the whole code thing again as you have requested and I notice something weird happening to the device.
This is the code below//// Enable debug prints to serial monitor //#define MY_DEBUG // // //// Enable and select radio type attached #define MY_RADIO_NRF24 ////#define MY_RADIO_RFM69 // //// Set LOW transmit power level as default, if you have an amplified NRF-module and //// power your radio separately with a good regulator you can turn up PA level. //#define MY_RF24_PA_LEVEL RF24_PA_LOW // //// Enable serial gateway //#define MY_GATEWAY_SERIAL #include <SPI.h> #include <MySensors.h> void setup() { // Setup locally attached sensors pinMode(8, OUTPUT); } void presentation() { // Present locally attached sensors Serial.println("Presentation Runs"); } void loop() { // Send locally attached sensor data here digitalWrite(8, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(8, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second Serial.println("Loop is running");}
After I commented out #define MY_GATEWAY_SERIAL nothing really happens on the serial monitor as you have said.
No blinking nor display on the monitor.So I went back to the code and enable #define MY_DEBUG to see what was actually happening....
THEN..I figured out what was happening
I uploaded the new code with #define MY_Debug uncomment and #define MY_Gateway_Serial still commented out I got this one the serial monitorStarting sensor (RNNNA-, 2.0.0) TSM:INIT TSM:RADIO:OK TSM:FPAR TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc: TSM:FPAR TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc: TSM:FPAR TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc: TSM:FPAR TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc: !TSM:FPAR:FAIL !TSM:FAILURE TSM:PDT TSM:INIT TSM:RADIO:OK TSM:FPAR TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc: TSM:FPAR TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc: TSM:FPAR TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:From the result, the device is working as a node and trying to communicate with the parent/gateway and it enters an endless retry loop that keeps trying to communicate with the gateway. This is the reason i suppose nothing seems to be working because it is stuck trying to connect to the parent.
The Addition of #define MY_GATEWAY_SERIAL makes it already a gateway/parent device and avoids that endless loop thing.@palande.vaibhav said:
@ayo Did you try running the code?
-
I think one way to go about making it work is to edit that element of the mysensor main code that makes it enter an infinite retry loop is to is to make it retry for about maybe 3 times if no connection still it should raise a flag and leaves the loop and continue into the main code.
-
So I tried the whole code thing again as you have requested and I notice something weird happening to the device.
This is the code below//// Enable debug prints to serial monitor //#define MY_DEBUG // // //// Enable and select radio type attached #define MY_RADIO_NRF24 ////#define MY_RADIO_RFM69 // //// Set LOW transmit power level as default, if you have an amplified NRF-module and //// power your radio separately with a good regulator you can turn up PA level. //#define MY_RF24_PA_LEVEL RF24_PA_LOW // //// Enable serial gateway //#define MY_GATEWAY_SERIAL #include <SPI.h> #include <MySensors.h> void setup() { // Setup locally attached sensors pinMode(8, OUTPUT); } void presentation() { // Present locally attached sensors Serial.println("Presentation Runs"); } void loop() { // Send locally attached sensor data here digitalWrite(8, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(8, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second Serial.println("Loop is running");}
After I commented out #define MY_GATEWAY_SERIAL nothing really happens on the serial monitor as you have said.
No blinking nor display on the monitor.So I went back to the code and enable #define MY_DEBUG to see what was actually happening....
THEN..I figured out what was happening
I uploaded the new code with #define MY_Debug uncomment and #define MY_Gateway_Serial still commented out I got this one the serial monitorStarting sensor (RNNNA-, 2.0.0) TSM:INIT TSM:RADIO:OK TSM:FPAR TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc: TSM:FPAR TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc: TSM:FPAR TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc: TSM:FPAR TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc: !TSM:FPAR:FAIL !TSM:FAILURE TSM:PDT TSM:INIT TSM:RADIO:OK TSM:FPAR TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc: TSM:FPAR TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc: TSM:FPAR TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:From the result, the device is working as a node and trying to communicate with the parent/gateway and it enters an endless retry loop that keeps trying to communicate with the gateway. This is the reason i suppose nothing seems to be working because it is stuck trying to connect to the parent.
The Addition of #define MY_GATEWAY_SERIAL makes it already a gateway/parent device and avoids that endless loop thing.@palande.vaibhav said:
@ayo Did you try running the code?
@ayo
But adding #define MY_GATEWAY_SERIAL to the code for the sensor node will make it a gateway. Right? Please check my last post where I posted the screenshots of this making both of them initialize as the gateway.And if both are gateways they won't communicate
-
@ayo
But adding #define MY_GATEWAY_SERIAL to the code for the sensor node will make it a gateway. Right? Please check my last post where I posted the screenshots of this making both of them initialize as the gateway.And if both are gateways they won't communicate
Yes they won't communicate
@palande.vaibhav said:
@ayo
But adding #define MY_GATEWAY_SERIAL to the code for the sensor node will make it a gateway. Right? Please check my last post where I posted the screenshots of this making both of them initialize as the gateway.And if both are gateways they won't communicate
-
Yes they won't communicate
@palande.vaibhav said:
@ayo
But adding #define MY_GATEWAY_SERIAL to the code for the sensor node will make it a gateway. Right? Please check my last post where I posted the screenshots of this making both of them initialize as the gateway.And if both are gateways they won't communicate
@ayo
Then this makes library 2.0 completely useless cause we always have to use MY_GATEWAY_SERIAL and so can't create sensor nodes.If you also confirm this then I am gonna report this as a bug.