MYSBootloader 1.3.0-beta.3
-
@Mark-Swift What changes did you make to the bootloader - the code size seems increased
@tekka None that I'm aware of? :(
I just changed the fuses in the makefile to match the ones in my boards.txt, not sure if that's required, can you take a look at my questions above, I really want to be sure I'm doing all of this right before deploying.
To recap with regards the bootloader.
- Installed Windows 7
- Installed mingw (core and c++ compiler)
- Installed Arduino IDE and MySensors library (Installed at the same location as you, at c drive root)
- Downloaded bootloader from github
- Edited the fuses and clock speed at the top of the makefile to match my boards.txt
- Ran makefile from cmd
-
@tekka None that I'm aware of? :(
I just changed the fuses in the makefile to match the ones in my boards.txt, not sure if that's required, can you take a look at my questions above, I really want to be sure I'm doing all of this right before deploying.
To recap with regards the bootloader.
- Installed Windows 7
- Installed mingw (core and c++ compiler)
- Installed Arduino IDE and MySensors library (Installed at the same location as you, at c drive root)
- Downloaded bootloader from github
- Edited the fuses and clock speed at the top of the makefile to match my boards.txt
- Ran makefile from cmd
-
@tekka It seems to work? I guess if there was an issue it wouldn't work at all?
Please can you conform my fuses look okay in the boards.txt I posted above? Also, do I need to change the fuses in the makefile and make a file for each device, or just 1 x 16Mhz and 1 x 8Mhz for example?
-
@tekka It seems to work? I guess if there was an issue it wouldn't work at all?
Please can you conform my fuses look okay in the boards.txt I posted above? Also, do I need to change the fuses in the makefile and make a file for each device, or just 1 x 16Mhz and 1 x 8Mhz for example?
@Mark-Swift I'm not at my workstation right now - you have to adjust the fuse settings according to your HW configurations and preferences. The fuse settings in the makefile are obsolete if you use the Arduino IDE / boards.txt for flashing. Please use the AVR fuse calculator to calculate to correct fuse settings:
-
I @tekka, I thought as much, so basically I just need a bootloader with the right Mhz and then set fuses in the Arduino IDE boards.txt.
I used the fuse settings from the original boards.txt included with the Arduino IDE, but adjusted the extended one to 0x06 (Adjust BOD).
I noticed you used slightly different fuses to the Arduino IDE, you're using fuses that indicate a floating crystal or something?
-
First of all, thanks for working so hard on the new version of the BL.
My setup:
- MYSBootloader 1.3.0-beta3 (md5 49ef3dc263110613c9c25ac21a8c3d83)
- MYSController 1.0.0.beta (updated to latest version)
- GW on Arduino Nano
- Node on Arduino Pro Mini @ 5V 16 Mhz with MockMySensors sketch running
What I did:
- Flashed latest bootloader version from github on the Pro Mini ATMEGA328P (using AVRDUDESS 2.4 & USBasp, fuses L: 0xFF, H: 0xDA, E: 0x05)
- Flashed latest mysensors lib on both node & gw (tested with both 2.0.0 & 2.1) on the Nano
What I got:
- FW upgrade through MYSController: Working
- Reboot through MYSController: Working
- Serial flashing with Arduino IDE: Working
- Request presentation through MYSController: Working
Request heartbeat through MYSController: Working
But...
Reassign ID through MYSController: NOT WORKING (the node reboots but still preserves the old ID)
(MY_NODE_ID IS NOT DEFINED / THUS SET AS AUTO AS PER MYSENSORS DEFAULTS)
Clear EEPROM through MYSController: NOT WORKING (the node reboots but still holds the value saved in EEPROM using saveState)Node bootlog after Clear EEPROM from MYSBootloader (you can see my debug LOADSTATE which still loads the value 123 from EEPROM):
Starting sensor (RNNNA-, 2.0.0) TSM:INIT TSM:RADIO:OK TSP:ASSIGNID:OK (ID=4) TSM:FPAR TSP:MSG:SEND 4-4-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc: TSP:MSG:READ 150-150-255 s=255,c=3,t=7,pt=0,l=0,sg=0: TSP:MSG:BC TSP:MSG:READ 0-0-4 s=255,c=3,t=8,pt=1,l=1,sg=0:0 TSP:MSG:FPAR RES (ID=0, dist=0) TSP:MSG:PAR OK (ID=0, dist=1) TSM:FPAR:OK TSM:ID TSM:CHKID:OK (ID=4) TSM:UPL TSP:PING:SEND (dest=0) TSP:MSG:SEND 4-4-0-0 s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=ok:1 TSP:MSG:READ 0-0-4 s=255,c=3,t=25,pt=1,l=1,sg=0:1 TSP:MSG:PONG RECV (hops=1) TSP:CHKUPL:OK TSM:UPL:OK TSM:READY GW Started LOADSTATE 123And...is it expected that the "Info" tab on my node shows bootloader version 1.2?

Is there anything I'm missing to have these features working?
Thanks in advance
-
First of all, thanks for working so hard on the new version of the BL.
My setup:
- MYSBootloader 1.3.0-beta3 (md5 49ef3dc263110613c9c25ac21a8c3d83)
- MYSController 1.0.0.beta (updated to latest version)
- GW on Arduino Nano
- Node on Arduino Pro Mini @ 5V 16 Mhz with MockMySensors sketch running
What I did:
- Flashed latest bootloader version from github on the Pro Mini ATMEGA328P (using AVRDUDESS 2.4 & USBasp, fuses L: 0xFF, H: 0xDA, E: 0x05)
- Flashed latest mysensors lib on both node & gw (tested with both 2.0.0 & 2.1) on the Nano
What I got:
- FW upgrade through MYSController: Working
- Reboot through MYSController: Working
- Serial flashing with Arduino IDE: Working
- Request presentation through MYSController: Working
Request heartbeat through MYSController: Working
But...
Reassign ID through MYSController: NOT WORKING (the node reboots but still preserves the old ID)
(MY_NODE_ID IS NOT DEFINED / THUS SET AS AUTO AS PER MYSENSORS DEFAULTS)
Clear EEPROM through MYSController: NOT WORKING (the node reboots but still holds the value saved in EEPROM using saveState)Node bootlog after Clear EEPROM from MYSBootloader (you can see my debug LOADSTATE which still loads the value 123 from EEPROM):
Starting sensor (RNNNA-, 2.0.0) TSM:INIT TSM:RADIO:OK TSP:ASSIGNID:OK (ID=4) TSM:FPAR TSP:MSG:SEND 4-4-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc: TSP:MSG:READ 150-150-255 s=255,c=3,t=7,pt=0,l=0,sg=0: TSP:MSG:BC TSP:MSG:READ 0-0-4 s=255,c=3,t=8,pt=1,l=1,sg=0:0 TSP:MSG:FPAR RES (ID=0, dist=0) TSP:MSG:PAR OK (ID=0, dist=1) TSM:FPAR:OK TSM:ID TSM:CHKID:OK (ID=4) TSM:UPL TSP:PING:SEND (dest=0) TSP:MSG:SEND 4-4-0-0 s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=ok:1 TSP:MSG:READ 0-0-4 s=255,c=3,t=25,pt=1,l=1,sg=0:1 TSP:MSG:PONG RECV (hops=1) TSP:CHKUPL:OK TSM:UPL:OK TSM:READY GW Started LOADSTATE 123And...is it expected that the "Info" tab on my node shows bootloader version 1.2?

Is there anything I'm missing to have these features working?
Thanks in advance
-
@tekka is it okay to use the bootloader on the gateway?
-
@tekka is it okay to use the bootloader on the gateway?
-
@Mark-Swift That depends on the use case - what do you have in mind?
@tekka I'd like to put my gateway in quite an isolated place and update the sketches OTA, but I presume that's not possible as without the gateway live, there's nothing to action the OTA :(
I've tried the ESP as it allows OTA updates, but the ESP still has blocking code and it can't handle all my nodes without dropping messages.
-
@andreground Yes, re-assigning can be done nowadays with the MySensors framework, i.e. send a C_INTERNAL/I_ID_RESPONSE/<NEW ID> message to the (active) node.
@tekka thanks, it works.
2 more questions:
- Should the clearing eeprom function in MYSBootloader be working?
- From what I understand, Watchdog is enabled by default (8S timeout) in the bootloader; that means that I've to either call wdt_reset in my loop or call wdt_disable in setup to prevent unexpected reboots. Am i right?
-
@tekka thanks, it works.
2 more questions:
- Should the clearing eeprom function in MYSBootloader be working?
- From what I understand, Watchdog is enabled by default (8S timeout) in the bootloader; that means that I've to either call wdt_reset in my loop or call wdt_disable in setup to prevent unexpected reboots. Am i right?
@andreground said in MYSBootloader 1.3.0-beta.3:
@tekka thanks, it works.
2 more questions:
- Should the clearing eeprom function in MYSBootloader be working?
No, this has also been moved to the MySensors framework:
Add:
If MY_DEBUG is disabled, you can add
#define MY_SPECIAL_DEBUGand then send a C_INTERNAL / I_DEBUG / E to the node. For the sake of completeness, here are the special debug commands:
E: Clear EEPROM (node replies with OK and reboots)
V: Report CPU voltage in mV (if supported)
F: Report frequency in cHz
M: Report free memory
R: Report routing table (if node is a repeater/gateway)- From what I understand, Watchdog is enabled by default (8S timeout) in the bootloader; that means that I've to either call wdt_reset in my loop or call wdt_disable in setup to prevent unexpected reboots. Am i right?
wdt_reset() is called within the framework, so no need to call it unless you have blocking code of >8s. Alternatively, you can also disable it (AVR: if the wdton fuse is cleared).
-
@tekka thanks, it works.
2 more questions:
- Should the clearing eeprom function in MYSBootloader be working?
- From what I understand, Watchdog is enabled by default (8S timeout) in the bootloader; that means that I've to either call wdt_reset in my loop or call wdt_disable in setup to prevent unexpected reboots. Am i right?
I've never used the clear EEPROM feature but would like to.
I've added:
#define MY_SPECIAL_DEBUGTo my sketches. Using the latest MYSController, will the menu option 'Clear EEPROM' still do the trick, or does the application need some updates?
-
@tekka, I tested this bootloader and facing an issue.
https://github.com/mysensors/MySensorsBootloaderRF24/issues/7 -
How do I do a remote reboot of a node? Node is not responding to MYSController command (I think due to changed things as with reassigning node-ID). DO I have to write a receive event or enable it somehow? Node is sleeping most time, maybe that's a problem.
-
I'm very interested in testing your development for the latest MYSBootloader as the bootloader for OTA updates on my new hardware designs that i'm starting to design, but i would like a stable one first to make sure my system and setup are working fine with the stable. Is the stable bootloader the one in the master branch of https://github.com/mysensors/MySensorsBootloaderRF24/tree/master. The MYSBootloader.hex file or does this still need to be compiled for use?
Or do you happen to have a download link for the stable version, should we be using the one that you bundle together with MYSController?
Also, @tekka - Do you advise a stable one that works for MyController.org please?
-
With this bootloader, i can not upload scetch with serial or USB.
Where does i made a mistake?
Is there a configuration that is specific to the bootloader?
Thanks -
With this bootloader, i can not upload scetch with serial or USB.
Where does i made a mistake?
Is there a configuration that is specific to the bootloader?
Thanks@Nicolas-Charrier Welcome to MySensors. Please do not post the same question in different threads. Maybe you can give additional information that help to understand what you tried so far (logs, screenshots, HW configuration, CPU frequency, etc.). Did you follow the OTA/bootloader instructions here?