OTA firmware update



  • Is there anything special that needs to be done on the sensor node to allow over-the-air firmware upgrade from MYcontroller?

    I uploaded a hex file (compiled within sketch), added it to a node, triggered it.
    I do see the message go out , but the node does not do an update.


  • ADMIN

    @hoegaarden_bier

    Yes, have to install DualOptiboot or MYSBootloader boot-loader on your node.

    have a look at http://forum.mysensors.org/search/ota?in=titlesposts



  • @jkandasa:

    I use the MYSBootloader_8MHz.hex (https://github.com/mysensors/MySensorsBootloaderRF24/blob/development/hex/MYSBootloader_8MHz.hex)

    What did I do so far:
    I added the firmware versions in the "Utilities / Firmware" dialogs as described in your pdf.
    I added my sensors to MyController, assign the firmware in the details dialog to the sensor.
    But neither rebooting nor clicking the menu item "Upload firmware" do the expected.

    After this there is only one line in the log file, but nothing else happens.

    ethernetGW 105:reed ds18b20 minimal node Sent Stream [Firmware config response] 33000600D005C29F

    Any idea? Thanks in advance


  • ADMIN

    @dirkc When you use MYSBootloader node reboot is required to send new firmware. Looks like your node didn't ask new firmware from MyController. Does it on the reachable range? In normal time can you access your node?



  • @jkandasa ok, its working well now. The root cause seemd to be that I not only uploaded the bootloader using usbasp but also the firmware sketch with the result, that another non ota bootloader was installed by usbasp, too.
    Now I used a brand new barebone atmega328p in a really basic circuit with a NRF24L01+, upload the bootloader using usbasp only and then wait for MyController to recognize the node. Now I can upload the firmware by just rebooting.
    Uploading the TimeReporter demo lasts ca. 6 minutes with a distance between gateway and node of about 6 meter in different floors.
    Thanks for doing such a great job building MyController :-)



  • @jkandasa : sorry, next question. I have new sensor on a new 328p breadboard with internal RC. This 328p was already in use in another broad/circuit and loaded simple sketches, e.g. TimeReporter quite well and fast.
    But with the new board, the same 328p, but another sketch, 52 KB of size, the OTA process seems to load until a specific block (always the same!), and then restarts and again and again.
    It stops at 01000A007C04 and restarts at 01000A008F04
    Here is the specific log

    Any hint appreciated, thanks in advance
    Dirk

    edit: the new board uses the nrf24 pa lna (470uF elko capacitor) as well as the gateway, 5 m distance, different floors.

    2017-05-13 20:51:43: node[102] child[255] ack:0 C_STREAM        ST_FIRMWARE_REQUEST       | 01000A007D04
    2017-05-13 20:51:45: node[102] child[255] ack:0 C_STREAM        ST_FIRMWARE_REQUEST       | 01000A007D04
    2017-05-13 20:51:48: node[102] child[255] ack:0 C_STREAM        ST_FIRMWARE_REQUEST       | 01000A007D04
    2017-05-13 20:51:50: node[102] child[255] ack:0 C_STREAM        ST_FIRMWARE_REQUEST       | 01000A007D04
    2017-05-13 20:51:53: node[102] child[255] ack:0 C_STREAM        ST_FIRMWARE_CONFIG_REQUEST | 01000A0090042B510103
    2017-05-13 20:51:53: node[102] child[255] ack:0 C_STREAM        ST_FIRMWARE_REQUEST       | 01000A008F04
    2017-05-13 20:51:54: node[102] child[255] ack:0 C_STREAM        ST_FIRMWARE_REQUEST       | 01000A008E04
    2017-05-13 20:51:54: node[102] child[255] ack:0 C_STREAM        ST_FIRMWARE_REQUEST       | 01000A008D04
    2017-05-13 20:51:54: node[102] child[255] ack:0 C_STREAM        ST_FIRMWARE_REQUEST       | 01000A008C04
    2017-05-13 20:51:54: node[102] child[255] ack:0 C_STREAM        ST_FIRMWARE_REQUEST       | 01000A008B04```

  • ADMIN

    @dirkc Can you send your mycontroller.log file to my email address? jkandasa at gmail dot com



  • @jkandasa : now, only after shutting all off for just one night, surprisingly everything works fine again. I didn't change anything in the setup!

    edit: I think, the most relevant lines are here:

    [Sat May 13 18:02:20 CEST 2017] IO error: javax.net.ssl.SSLException: Connection has been shutdown: javax.net.ssl.SSLHandshakeException: Received fatal alert: unknown_ca in processing a request from /2a0.........443 / sun.security.ssl.SSLSocketImpl
    2017-05-13 18:02:23,235 WARN [Thread-796] [org.mycontroller.standalone.message.McMessageEngine:297] Inclusion mode not supported by this controller! Message:McMessage(gatewayId=1, nodeEui=0, sensorId=SENSOR_BC, type=C_INTERNAL, subType=Inclusion mode, acknowledge=true, payload=0, isTxMessage=false, networkType=MY_SENSORS, isScreeningDone=true, timestamp=1494691343235)
    2017-05-13 18:02:23,332 WARN [Thread-797] [org.mycontroller.standalone.message.McMessageEngine:297] Inclusion mode not supported by this controller! Message:McMessage(gatewayId=1, nodeEui=0, sensorId=SENSOR_BC, type=C_INTERNAL, subType=Inclusion mode, acknowledge=true, payload=1, isTxMessage=false, networkType=MY_SENSORS, isScreeningDone=true, timestamp=1494691343332)
    [Sat May 13 18:02:24 CEST 2017] IO error: javax.net.ssl.SSLException: Connection has been shutdown: javax.net.ssl.SSLHandshakeException: Received fatal alert: unknown_ca in processing a request from /2a0.......443 / sun.security.ssl.SSLSocketImpl
    2017-05-13 18:03:23,104 WARN [Thread-983] [org.mycontroller.standalone.message.McMessageEngine:297] Inclusion mode not supported by this controller! Message:McMessage(gatewayId=1, nodeEui=0, sensorId=SENSOR_BC, type=C_INTERNAL, subType=Inclusion mode, acknowledge=true, payload=0, isTxMessage=false, networkType=MY_SENSORS, isScreeningDone=true, timestamp=1494691403105)
    2017-05-13 18:03:23,204 WARN [Thread-984] [org.mycontroller.standalone.message.McMessageEngine:297] Inclusion mode not supported by this controller! Message:McMessage(gatewayId=1, nodeEui=0, sensorId=SENSOR_BC, type=C_INTERNAL, subType=Inclusion mode, acknowledge=true, payload=1, isTxMessage=false, networkType=MY_SENSORS, isScreeningDone=true, timestamp=1494691403204)
    2017-05-13 18:04:23,099 WARN [Thread-1177] [org.mycontroller.standalone.message.McMessageEngine:297] Inclusion mode not supported by this controller! Message:McMessage(gatewayId=1, nodeEui=0, sensorId=SENSOR_BC, type=C_INTERNAL, subType=Inclusion mode, acknowledge=true, payload=0, isTxMessage=false, networkType=MY_SENSORS, isScreeningDone=true, timestamp=1494691463099)
    2017-05-13 18:04:23,198 WARN [Thread-1178] [org.mycontroller.standalone.message.McMessageEngine:297] Inclusion mode not supported by this controller! Message:McMessage(gatewayId=1, nodeEui=0, sensorId=SENSOR_BC, type=C_INTERNAL, subType=Inclusion mode, acknowledge=true, payload=1, isTxMessage=false, networkType=MY_SENSORS, isScreeningDone=true, timestamp=1494691463198)
    2017-05-13 18:05:23,183 WARN [Thread-1362] [org.mycontroller.standalone.message.McMessageEngine:297] Inclusion mode not supported by this controller! Message:McMessage(gatewayId=1, nodeEui=0, sensorId=SENSOR_BC, type=C_INTERNAL, subType=Inclusion mode, acknowledge=true, payload=0, isTxMessage=false, networkType=MY_SENSORS, isScreeningDone=true, timestamp=1494691523183)
    2017-05-13 18:05:23,284 WARN [Thread-1363] [org.mycontroller.standalone.message.McMessageEngine:297] Inclusion mode not supported by this controller! Message:McMessage(gatewayId=1, nodeEui=0, sensorId=SENSOR_BC, type=C_INTERNAL, subType=Inclusion mode, acknowledge=true, payload=1, isTxMessage=false, networkType=MY_SENSORS, isScreeningDone=true, timestamp=1494691523284)
    2017-05-13 18:06:23,153 WARN [Thread-1544] [org.mycontroller.standalone.message.McMessageEngine:297] Inclusion mode not supported by this controller! Message:McMessage(gatewayId=1, nodeEui=0, sensorId=SENSOR_BC, type=C_INTERNAL, subType=Inclusion mode, acknowledge=true, payload=0, isTxMessage=false, networkType=MY_SENSORS, isScreeningDone=true, timestamp=1494691583154)
    
    

    But most entries in the log, and at the point in time of my last post, the log is like

    2017-05-13 20:50:25,886 WARN [Thread-7226] [org.mycontroller.standalone.message.McMessageEngine:297] Inclusion mode not supported by this controller! Message:McMessage(gatewayId=1, nodeEui=0, sensorId=SENSOR_BC, type=C_INTERNAL, subType=Inclusion mode, acknowledge=true, payload=0, isTxMessage=false, networkType=MY_SENSORS, isScreeningDone=true, timestamp=1494701425886)
    2017-05-13 20:50:25,976 WARN [Thread-7227] [org.mycontroller.standalone.message.McMessageEngine:297] Inclusion mode not supported by this controller! Message:McMessage(gatewayId=1, nodeEui=0, sensorId=SENSOR_BC, type=C_INTERNAL, subType=Inclusion mode, acknowledge=true, payload=1, isTxMessage=false, networkType=MY_SENSORS, isScreeningDone=true, timestamp=1494701425977)
    2017-05-13 20:51:25,943 WARN [Thread-7262] [org.mycontroller.standalone.message.McMessageEngine:297] Inclusion mode not supported by this controller! Message:McMessage(gatewayId=1, nodeEui=0, sensorId=SENSOR_BC, type=C_INTERNAL, subType=Inclusion mode, acknowledge=true, payload=0, isTxMessage=false, networkType=MY_SENSORS, isScreeningDone=true, timestamp=1494701485944)
    2017-05-13 20:51:26,044 WARN [Thread-7263] [org.mycontroller.standalone.message.McMessageEngine:297] Inclusion mode not supported by this controller! Message:McMessage(gatewayId=1, nodeEui=0, sensorId=SENSOR_BC, type=C_INTERNAL, subType=Inclusion mode, acknowledge=true, payload=1, isTxMessage=false, networkType=MY_SENSORS, isScreeningDone=true, timestamp=1494701486045)
    2017-05-13 20:52:26,003 WARN [Thread-7336] [org.mycontroller.standalone.message.McMessageEngine:297] Inclusion mode not supported by this controller! Message:McMessage(gatewayId=1, nodeEui=0, sensorId=SENSOR_BC, type=C_INTERNAL, subType=Inclusion mode, acknowledge=true, payload=0, isTxMessage=false, networkType=MY_SENSORS, isScreeningDone=true, timestamp=1494701546004)
    
    

    As said, I am using the same gateway all the time, the standard WiFi Gateway using ESP8266 (Wemos D1 mini) with a NRF24L01+ pa lna.


  • ADMIN

    @dirkc Inclusion mode not supported by MyController and there is a request from the gateway. So it says I won't support. I guess some other environment issue might get resolved on restart.


Log in to reply