• Categories
  • Recent
  • Tags
  • Popular
  • Register
  • Login
  • Categories
  • Recent
  • Tags
  • Popular
  • Register
  • Login

FOTA not working

Scheduled Pinned Locked Moved Troubleshooting
15 Posts 5 Posters 1.8k Views 1 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    Daniele
    last edited by jkandasa 30 Sept 2018, 09:19

    Hi,

    I'm trying for the first time to use FOTA updates.
    I followed instructions on https://www.mysensors.org/about/fota.
    I changed fuse settings with AVRdudess, then I burned MYSBootloader on a Pro Mini 3.3V 8Mhz using USBasp.
    I uploaded a basic sketch with a mock sensor sending fixed value every 10 seconds (I has to upload using the programmer because with this bootloader the FT232 returns an error).
    The node connects and works as expected:

    // Enable debug prints to serial monitor
    #define MY_DEBUG
    
    // Enable and select radio type attached
    #define MY_RADIO_NRF24
    #define MY_RF24_PA_LEVEL   RF24_PA_LOW
    #define MY_RF24_DATARATE   RF24_250KBPS
    #define MY_RF24_CHANNEL 125
    
    #define MY_NODE_ID 50
    #define SENSOR_ID 2
    
    #include <MySensors.h>
    
    MyMessage msg(SENSOR_ID, V_TEMP);
    
    
    void setup() {
    }
    
    
    
    void presentation()
    {
      // Send the sketch version information to the gateway and Controller
      sendSketchInfo("Test", "1.1");
      present(SENSOR_ID, S_TEMP);
    }
    
    
    void loop() {
      send(msg.set(21));
      smartSleep(10000);
    }
    

    Then I did small changes on the sketch (updated version and changed the sensor fixed value), compiled and took the generated hex file.
    I created a type/version/firmware in MyController, uploaded the hex file and associated it to the node.
    Then I selected "upload firmware", but nothing happened when the node woke up.
    This is from MyController log:

    2018-09-30 10:12:17,872 INFO [mc-th-pool-2] [org.mycontroller.standalone.provider.EngineAbstract:232] Seems like failed to send this message. There is no ACK received! Retried 1 time(s). MessageImpl(gatewayId=3, nodeEui=50, sensorId=SENSOR_BC, type=Stream, subType=Firmware config response, ack=1, payload=03000300B8037A8A, isTxMessage=true, timestamp=1538295134829, properties=null)

    I guessed there was something related to acknowledge (which is enabled in my network), so I tried disabling it.
    Now I can see the firmware check in the node log, it seems to send the new firmware but nothing changes (i.e. same version, same sensor value).
    I tried sending the reboot command from MyController, but the node didn't reboot at all.
    I tried also an hard reset on the node, but again I got the same values sent out.

    Did I miss some step?
    Thank
    Daniele

    J 1 Reply Last reply 30 Sept 2018, 15:34 Reply Quote 0
    • J Offline
      jkandasa @Daniele
      last edited by 30 Sept 2018, 15:34

      @daniele It is important to enable Smart sleep enabled in your node settings. Otherwise, this node will be treated as a normal node.

      • MYSBootloader: we need to send Reboot command
      • Dualoptiboot: we need to send Upload firmware
      1 Reply Last reply Reply Quote 0
      • D Offline
        Daniele
        last edited by 30 Sept 2018, 15:45

        @jkandasa, I forgot to tell that I flagged "smartsleep" in the node page of mycontroller.
        I tried sending reboot and also resetting the arduino, but still nothing changes.
        BTW, any idea why it neither sends the firmware config when ack is enabled?

        J 1 Reply Last reply 3 Oct 2018, 05:44 Reply Quote 0
        • J Offline
          jkandasa @Daniele
          last edited by 3 Oct 2018, 05:44

          @daniele It should work, non-sleeping node firmware update works ok?

          I never tested sleep node firmware, needs to check. How about other data for sleep node, working as expected?

          1 Reply Last reply Reply Quote 0
          • D Offline
            Daniele
            last edited by 3 Oct 2018, 12:40

            I tried reaplacing smartSleep with wait, but still nothing happens (and no errors in the log).
            All other things are working as expected.

            J 1 Reply Last reply 3 Oct 2018, 14:50 Reply Quote 0
            • J Offline
              jkandasa @Daniele
              last edited by 3 Oct 2018, 14:50

              @daniele can you increase MY_SMART_SLEEP_WAIT_DURATION_MS value something to 1000ms?

              #define MY_SMART_SLEEP_WAIT_DURATION_MS (1000ul)
              
              1 Reply Last reply Reply Quote 0
              • D Offline
                Daniele
                last edited by 3 Oct 2018, 15:37

                I tried, but without any luck.
                After the reboot command, the node log is a continuous flow of MySensors splash screen:

                3485 TSF:MSG:SEND,50-50-0-0,s=255,c=3,t=33,pt=5,l=4,sg=0,ft=0,st=OK:10000
                3495 TSF:MSG:SEND,50-50-0-0,s=2,c=1,t=0,pt=2,l=2,sg=0,ft=0,st=OK:21
                3502 MCO:SLP:MS=10000,SMS=1,I1=255,M1=255,I2=255,M2=255
                3510 TSF:MSG:SEND,50-50-0-0,s=255,c=3,t=32,pt=5,l=4,sg=0,ft=0,st=OK:1000
                3831 TSF:MSG:READ,0-0-50,s=255,c=3,t=13,pt=0,l=0,sg=0:
                3837 TSF:MSG:ACK REQ
                3842 TSF:MSG:SEND,50-50-0-0,s=255,c=3,t=13,pt=0,l=0,sg=0,ft=0,st=OK:
                 
                 __  __       ____
                |  \/  |_   _/ ___|  ___ _ __  ___  ___  _ __ ___
                | |\/| | | | \___ \ / _ \ `_ \/ __|/ _ \| `__/ __|
                | |  | | |_| |___| |  __/ | | \__ \  _  | |  \__ \
                |_|  |_|\__, |____/ \__⸮ 
                 __  __       ____
                |  \/  |_   _/ ___|  ___ _ __  ___  ___  _ __ ___
                | |\/| | | | \___ \ / _ \ `_ \/ __|/ _ \| `__/ __|
                | |  | | |_| |___| |  __/ | | \__ \  _  | |  \__ \
                |_|  |_|\__, |____/ \__⸮ 
                 __  __       ____
                |  \/  |_   _/ ___|  ___ _ __  ___  ___  _ __ ___
                | |\/| | | | \___ \ / _ \ `_ \/ __|/ _ \| `__/ __|
                | |  | | |_| |___| |  __/ | | \__ \  _  | |  \__ \
                |_|  |_|\__, |____/ \___ 
                 __  __       ____```
                J 1 Reply Last reply 3 Oct 2018, 16:35 Reply Quote 0
                • J Offline
                  jkandasa @Daniele
                  last edited by jkandasa 10 Mar 2018, 22:05 3 Oct 2018, 16:35

                  @daniele Can you check, Have you burned MYSBootloader properly? Fuse settings are important.

                  I had this reboot issue while ago with Pro mini default boot loader.

                  1 Reply Last reply Reply Quote 0
                  • D Offline
                    Daniele
                    last edited by 3 Oct 2018, 19:40

                    I tried re-burning the bootloader, taking the dev branch this time.
                    No I don't have the reboot issue, everything goes without any error, but the sketch is not updated.
                    In the folder with generated files I have 2 hex files: one with the name of my sketch, and one with the same name + .with_bootloader, I used the first one in my tests, is this wrong?
                    Could this be related to the 250kbps parameter I used?

                    J 1 Reply Last reply 4 Oct 2018, 00:16 Reply Quote 0
                    • J Offline
                      jkandasa @Daniele
                      last edited by 4 Oct 2018, 00:16

                      @daniele You should use the hex without bootloader,

                      If you use burned bootloader from dev branch(hex file from GitHub), it should not work in your environment, since you are using non-default channels(MY_RF24_CHANNEL).

                      I guess, 250kbps is a default MY_RF24_DATARATE

                      • your settings, #define MY_RF24_CHANNEL 125
                      • default settings, #define MY_RF24_CHANNEL (76)
                      1 Reply Last reply Reply Quote 0
                      • D Offline
                        Daniele
                        last edited by 4 Oct 2018, 04:55

                        So I cannot use FOTA with a custom channel?
                        Or should I use the master branch from GitHub?

                        skywatchS A 2 Replies Last reply 4 Oct 2018, 10:51 Reply Quote 0
                        • skywatchS Offline
                          skywatch @Daniele
                          last edited by 4 Oct 2018, 10:51

                          @daniele @jkandasa

                          That seems crazy that you can select a clear channel to use but only can use default for fota. There must be a way to edit the hex file with an editor and save it for other channels?

                          Maybe worth asking that question directly on the mysensors pages?

                          G 1 Reply Last reply 25 Jan 2019, 18:15 Reply Quote 1
                          • A Offline
                            aliasjim @Daniele
                            last edited by 25 Jan 2019, 15:04

                            @Daniele You need to compile the MYSbootloader for the right channel. You can get all kind of flavors here: https://github.com/guillebot/MYSensors-Bootloaders

                            1 Reply Last reply Reply Quote 0
                            • G Offline
                              guille @skywatch
                              last edited by 25 Jan 2019, 18:15

                              @skywatch You can use every channel!

                              Take a look:

                              https://github.com/guillebot/MYSensors-Bootloaders

                              I would be great some form of scanning or automation, but for the moment this will do.

                              skywatchS 1 Reply Last reply 26 Jan 2019, 15:46 Reply Quote 0
                              • skywatchS Offline
                                skywatch @guille
                                last edited by 26 Jan 2019, 15:46

                                @guille That is a great resource, thanks.

                                My only comment would be that channels 111-125 are missing in the current version.

                                1 Reply Last reply Reply Quote 0
                                • First post
                                  Last post

                                0

                                Online

                                628

                                Users

                                532

                                Topics

                                3.4k

                                Posts
                                Copyright © 2015-2025 MyController.org | Contributors | Localization