understanding mysbootloader background to get working FOTA
uwe taz last edited by uwe taz
I try to get running the nice FOTA feature (I love it to use on ESP32). I have a pro mini 8MHz 3.3V node with NRF24L01+. Sometimes I get an sucessful upload of a new sketch and sometimes it takes very long time (over 5min) or it takes long time until myscontroller finds the node. I have the feeling that there are some corners where I could or was turned in the false direction. It resulted in several long nights...
I have 4 topics in mind to the problem:
- github repo
Shall I use the the development branch for mysbootloader on github? I wanted to avoid compiling the bootloader and only use the ready hex-files because I'm shure that I trip in some pitfalls. I read somewhere that with development branch it is still possible to use serial upload and with main branch not.
Gernerally I could live with main branch but there is only one hex-file and I do not know for which HW it is. And then there is a third branch UpdateBoardFiles. I did not understand for what it is.
- two 8MHz Versions
I noticed that there are two 8MHz hex-Files and Entries. I took the NRFduino because the fuses are similar to normal pro mini. Is it the right one?
I noticed that in all 4 entries the extended_fuses=0x06. This is completely another value than in the "normal" pro mini bootloader. I had a look at the atmega328P data sheet and saw that only 3 lower bits are defined for brown out feature and these combination of the lower 3 bits is reserved. Is there any reason for that?
- time until sketch is started
I wrote a simple blink sketch (with using millis for delay - my first pitfall) and later with deactivating watchdog (second pitfall). Now I wonder because of long (10s-1min) and various time until the sketch is started. I could isolate a little bit: If I cut the SCLK connection to to NRF it starts instantly. Without NRF and only powered with 2xAA cells too. Yes I understand that the bootloader has to check for a message from controller but why with a variable time although I have not a switched on/powered GW?
As another cause I found the serial/USB connection. If I power the node via a TTL/USB Converter at an Windows USB port (to read serial outputs) it also takes long time to start. If I plug these vehicle to an USB powerbank it starts instantly too.
Is these behave explainable?
Many thanks for some helpfull hints in advance!
- github repo