@yveaux said in Can we increase the number of nodes from 254 to 1024 or more?:
You would need to rework the MySensors stack and break the protocol in doing so.
May be it could be implemented in a new version of mysensors?
@yveaux said in Can we increase the number of nodes from 254 to 1024 or more?:
You would need to rework the MySensors stack and break the protocol in doing so.
May be it could be implemented in a new version of mysensors?
@yveaux said in Can we increase the number of nodes from 254 to 1024 or more?:
If you really need more then 254 nodes I would suggest to break it up in separate networks, each with its own gateway.
Sound good for me. How can I make it if i am using RFM95 LoRa radio?
I have not found any mysensors instruction which could resolve this.
Do you have any instruction for this solution?
Hi,
I have tried last code, and it works - the watchdog reboot MC. As expected.
@mfalkvidd Why you think delay() should reset the watchdog?
Hello,
Short question. Can we increase the number of nodes from 254 to 1024 or more?
If I understand correctly, this can be done by changing the data type for nodeid. Or is it more difficult?
Sorry for my English.
@mfalkvidd Thx for you answer.
If I understand you right MySensor has implicit call wdt_reset()?
And in this case this new code will reboot.
#include <Arduino.h>
#include <avr/wdt.h>
// RFM95
#define MY_RADIO_RFM95
//#define MY_DEBUG_VERBOSE_RFM95
#define MY_RFM95_FREQUENCY (RFM95_868MHZ)
#define MY_RFM95_MODEM_CONFIGRUATION RFM95_BW125CR45SF128
#define MY_NODE_ID 10
#define MY_PARENT_NODE_ID 0
#define MY_PARENT_NODE_IS_STATIC
#include <MySensors.h>
#define STATUS_LED_PIN A2
void setup() {
wdt_disable();
Serial.begin(9600);
Serial.println("Setup..");
pinMode(STATUS_LED_PIN, OUTPUT);
digitalWrite(STATUS_LED_PIN, 0);
Serial.println("Wait 5 sec..");
delay(5000);
wdt_enable (WDTO_8S);
Serial.println("Watchdog enabled.");
}
int timer = 0;
void loop(){
if(!(millis()%1000)){
timer++;
Serial.println(timer);
digitalWrite(STATUS_LED_PIN, digitalRead(STATUS_LED_PIN)==1?0:1); delay(1);
}
delay(20000);
//wdt_reset();
}
I will try it later
Hello,
I faced with the same issue like https://forum.mysensors.org/topic/9946/watchdog-not-watchdogging/1
MySensor ver 2.3.1
Optiboot ver 8.0
atmega328, 8MHz
I have tested two codes on the one board and the result is bellow.
This test code works well. Watchdog is working and Atmega is rebooting.
#include <Arduino.h>
#include <avr/wdt.h>
#define STATUS_LED_PIN A2
void setup() {
wdt_disable();
Serial.begin(9600);
Serial.println("Setup..");
pinMode(STATUS_LED_PIN, OUTPUT);
digitalWrite(STATUS_LED_PIN, 0);
Serial.println("Wait 5 sec..");
delay(5000);
wdt_enable (WDTO_8S);
Serial.println("Watchdog enabled.");
}
int timer = 0;
void loop(){
if(!(millis()%1000)){
timer++;
Serial.println(timer);
digitalWrite(STATUS_LED_PIN, digitalRead(STATUS_LED_PIN)==1?0:1); delay(1);
}
//wdt_reset();
}
But this code is not working. Watchdog is not working.
#include <Arduino.h>
#include <avr/wdt.h>
// RFM95
#define MY_RADIO_RFM95
//#define MY_DEBUG_VERBOSE_RFM95
#define MY_RFM95_FREQUENCY (RFM95_868MHZ)
#define MY_RFM95_MODEM_CONFIGRUATION RFM95_BW125CR45SF128
#define MY_NODE_ID 10
#define MY_PARENT_NODE_ID 0
#define MY_PARENT_NODE_IS_STATIC
#include <MySensors.h>
#define STATUS_LED_PIN A2
void setup() {
wdt_disable();
Serial.begin(9600);
Serial.println("Setup..");
pinMode(STATUS_LED_PIN, OUTPUT);
digitalWrite(STATUS_LED_PIN, 0);
Serial.println("Wait 5 sec..");
delay(5000);
wdt_enable (WDTO_8S);
Serial.println("Watchdog enabled.");
}
int timer = 0;
void loop(){
if(!(millis()%1000)){
timer++;
Serial.println(timer);
digitalWrite(STATUS_LED_PIN, digitalRead(STATUS_LED_PIN)==1?0:1); delay(1);
}
//wdt_reset();
}
What I am doing wrong?