Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Announcements
  3. đź’¬ FOTA (Wireless Programming)

đź’¬ FOTA (Wireless Programming)

Scheduled Pinned Locked Moved Announcements
wirelessupdateover the airsensebenderfotafirmware over the airwireless programming
130 Posts 46 Posters 31.6k Views 44 Watching
  • 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.
  • scalzS scalz

    @rfm69 does your rfm69 CS signal have a pullup? If not, you should add one, because pin can be floating (so it's bad practice to not have pullup on CS lines) and interfering during AVRSPI reprogramming

    RFM69R Offline
    RFM69R Offline
    RFM69
    wrote on last edited by
    #99

    @scalz Thanks for the suggestion. By CS do you mean the DI00 on rmf69 and pin2 INT0 on mini pro ?

    I get confused by these things, so need to confirm. :)

    What type of value pullup would you suggest. Again I'm new to this.

    Thanks

    1 Reply Last reply
    0
    • scalzS Offline
      scalzS Offline
      scalz
      Hardware Contributor
      wrote on last edited by scalz
      #100

      @RFM69
      CS/SS of the SPI bus, for enabling/disabling device spi comm. it's your rfm69 NSS pin if you prefer.
      I usually use 56k pullup resistor

      RFM69R 1 Reply Last reply
      0
      • scalzS scalz

        @RFM69
        CS/SS of the SPI bus, for enabling/disabling device spi comm. it's your rfm69 NSS pin if you prefer.
        I usually use 56k pullup resistor

        RFM69R Offline
        RFM69R Offline
        RFM69
        wrote on last edited by RFM69
        #101

        @scalz thanks will give it ago.

        1 Reply Last reply
        0
        • G Offline
          G Offline
          Guillermo Schimmel
          wrote on last edited by
          #102

          Hi there. For what I'm reading, the MYSBootloader allways uses the default channel 76. Is that correct? It would be a very important addition to this howto.

          mfalkviddM 1 Reply Last reply
          0
          • G Guillermo Schimmel

            Hi there. For what I'm reading, the MYSBootloader allways uses the default channel 76. Is that correct? It would be a very important addition to this howto.

            mfalkviddM Offline
            mfalkviddM Offline
            mfalkvidd
            Mod
            wrote on last edited by
            #103

            @guillermo-schimmel not always, but by default. To change the channel, the bootloader must be recompiled. I have added a note to the howto. Could you check if the information is sufficiently clear?

            G S 2 Replies Last reply
            0
            • G Offline
              G Offline
              Guillermo Schimmel
              wrote on last edited by
              #104

              I recompiled MYSBootloader 1.3 with the RF Channel I use and it's now working. I can confirm that FOTA works great over MQTT gateway.

              1 Reply Last reply
              0
              • mfalkviddM mfalkvidd

                @guillermo-schimmel not always, but by default. To change the channel, the bootloader must be recompiled. I have added a note to the howto. Could you check if the information is sufficiently clear?

                G Offline
                G Offline
                Guillermo Schimmel
                wrote on last edited by
                #105

                @mfalkvidd Thank you as usual.

                I can confirm that is indeed working by recompiling to my channel.

                I have however a couple of questions.

                1. When you say "by default", do that means that there is a way of modify that default? If so, how?

                2. This specific node that I'm testing with, have a fixed node id (I use OpenHAB). But with the recompiled bootloader it "knows" which firmware download. Where does it gets from? Is the bootloader accessing the main sketch? Or is the node id info fixed in eeprom.

                3. If the node id info is in eeprom, could we also have the channel there? It would be so great not having to compile the bootloader.

                Thanks a lot, as allways.

                mfalkviddM 1 Reply Last reply
                1
                • G Guillermo Schimmel

                  @mfalkvidd Thank you as usual.

                  I can confirm that is indeed working by recompiling to my channel.

                  I have however a couple of questions.

                  1. When you say "by default", do that means that there is a way of modify that default? If so, how?

                  2. This specific node that I'm testing with, have a fixed node id (I use OpenHAB). But with the recompiled bootloader it "knows" which firmware download. Where does it gets from? Is the bootloader accessing the main sketch? Or is the node id info fixed in eeprom.

                  3. If the node id info is in eeprom, could we also have the channel there? It would be so great not having to compile the bootloader.

                  Thanks a lot, as allways.

                  mfalkviddM Offline
                  mfalkviddM Offline
                  mfalkvidd
                  Mod
                  wrote on last edited by
                  #106

                  @guillermo-schimmel

                  1. Yes. Isn't that exactly what you did when you did this: "I can confirm that is indeed working by recompiling to my channel" ?
                  2. I don't know. But I would also guess eeprom.
                  3. The bootloader needs to fit into a very small size, so I am not sure if there is room to read the channel from eeprom.

                  Maybe @scalz can comment on 2 and 3.

                  G 1 Reply Last reply
                  0
                  • mfalkviddM mfalkvidd

                    @guillermo-schimmel

                    1. Yes. Isn't that exactly what you did when you did this: "I can confirm that is indeed working by recompiling to my channel" ?
                    2. I don't know. But I would also guess eeprom.
                    3. The bootloader needs to fit into a very small size, so I am not sure if there is room to read the channel from eeprom.

                    Maybe @scalz can comment on 2 and 3.

                    G Offline
                    G Offline
                    Guillermo Schimmel
                    wrote on last edited by
                    #107

                    @mfalkvidd said in đź’¬ FOTA (Wireless Programming):

                    @guillermo-schimmel

                    1. Yes. Isn't that exactly what you did when you did this: "I can confirm that is indeed working by recompiling to my channel" ?

                    Definitely yes. And it worked. I meant a non-compiling way, like set some eeprom variable.

                    1. I don't know. But I would also guess eeprom.
                    2. The bootloader needs to fit into a very small size, so I am not sure if there is room to read the channel from eeprom.

                    Maybe @scalz can comment on 2 and 3.

                    Please @scalz should you have a little room, this would be a very nice feature to have.

                    Thank you both guys.

                    Regards

                    1 Reply Last reply
                    1
                    • mfalkviddM Offline
                      mfalkviddM Offline
                      mfalkvidd
                      Mod
                      wrote on last edited by
                      #108

                      I guess the main hurdle would be that while MySensors stores the node id in eeprom today, the nrf channel is not stored in eeprom. Since bootloader and sketch use the same eeprom, there would have to be some sort of agreement on where to store the channel.

                      1 Reply Last reply
                      0
                      • J Offline
                        J Offline
                        jimmy loyens
                        wrote on last edited by
                        #109

                        Hello, I have my MySensors gateway permanently attached to my openhab server (RPI3), but i want to do FOTA uploads from my desktop. How do I do this since MYSController needs to attatch to a gateway? Can i use an other gateway, both with the same address (ID0)? Thanks

                        1 Reply Last reply
                        0
                        • mfalkviddM mfalkvidd

                          @guillermo-schimmel not always, but by default. To change the channel, the bootloader must be recompiled. I have added a note to the howto. Could you check if the information is sufficiently clear?

                          S Offline
                          S Offline
                          sindrome73
                          wrote on last edited by
                          #110

                          @mfalkvidd Hello.
                          From what I read it is possible to somehow modify the channel for OTA updates, this is also said here.
                          https://www.mysensors.org/about/fota

                          But I can not find other info on how to proceed to change the channel .....
                          Can you give me some other clarification or link to follow ???

                          G 1 Reply Last reply
                          0
                          • S sindrome73

                            @mfalkvidd Hello.
                            From what I read it is possible to somehow modify the channel for OTA updates, this is also said here.
                            https://www.mysensors.org/about/fota

                            But I can not find other info on how to proceed to change the channel .....
                            Can you give me some other clarification or link to follow ???

                            G Offline
                            G Offline
                            Guillermo Schimmel
                            wrote on last edited by
                            #111

                            @sindrome73 You have to recompile the bootloader.

                            It's easier than it seems.

                            1. Mirror this repo on some machine with devel tools (I use OpenSUSE)

                            https://github.com/mysensors/MySensorsBootloaderRF24

                            1. Edit the file MYSBootloader.c, only the line:

                            #define RF24_CHANNEL (76) // RF channel for the sensor net, 0-127; default 76

                            1. Run Make

                            Probably it's going to need all the set of avr devel tools. Install them according to your distribution instructions.

                            1. You are going to get a .hex. That is the bootloader with the new channel. Install it according the standard instructions. I use AVRDUDESS.

                            I can confirm that I did this and it's working great.

                            S 1 Reply Last reply
                            1
                            • G Guillermo Schimmel

                              @sindrome73 You have to recompile the bootloader.

                              It's easier than it seems.

                              1. Mirror this repo on some machine with devel tools (I use OpenSUSE)

                              https://github.com/mysensors/MySensorsBootloaderRF24

                              1. Edit the file MYSBootloader.c, only the line:

                              #define RF24_CHANNEL (76) // RF channel for the sensor net, 0-127; default 76

                              1. Run Make

                              Probably it's going to need all the set of avr devel tools. Install them according to your distribution instructions.

                              1. You are going to get a .hex. That is the bootloader with the new channel. Install it according the standard instructions. I use AVRDUDESS.

                              I can confirm that I did this and it's working great.

                              S Offline
                              S Offline
                              sindrome73
                              wrote on last edited by
                              #112

                              @guillermo-schimmel Thanks for the reply.
                              Very useful, but can you tell me more accurately what software to use to recompile after making the change ????
                              Maybe some links to the software to download ..... thanks again for the availability

                              G S 2 Replies Last reply
                              0
                              • S sindrome73

                                @guillermo-schimmel Thanks for the reply.
                                Very useful, but can you tell me more accurately what software to use to recompile after making the change ????
                                Maybe some links to the software to download ..... thanks again for the availability

                                G Offline
                                G Offline
                                Guillermo Schimmel
                                wrote on last edited by
                                #113

                                @sindrome73 You have to use the Make tool, which is going to call the avr-gcc compiler.

                                Have you ever compiled something using command line tools?

                                If you don't know what I'm talking about, just tell me your channel and I can compile a bootloader for you.

                                1 Reply Last reply
                                1
                                • acbA Offline
                                  acbA Offline
                                  acb
                                  wrote on last edited by
                                  #114

                                  Quick question: Should FOTA work with personalized nodes/gateway?

                                  If the answer should be yes, then I appear to have a problem…

                                  As soon as I enable signing and signature requesting, the node will no longer respond to any internal or stream commands (e.g. Request Presentation, Reboot, Firmware, etc.) made via @tekka’s MYSController app. I haven’t tried anything else yet.

                                  The node still happily sends signed sensor data to the gateway and they ping-pong with heartbeats, etc.

                                  And as soon as I disable signing and signature requesting, the node will respond to all those same commands, quite happily rebooting, updating the firmware, etc.

                                  So, am I doing something wrong?

                                  (MYSController Version: 1.0.0beta, b3316. MySensors Library v2.3.1)

                                  acbA 1 Reply Last reply
                                  0
                                  • S sindrome73

                                    @guillermo-schimmel Thanks for the reply.
                                    Very useful, but can you tell me more accurately what software to use to recompile after making the change ????
                                    Maybe some links to the software to download ..... thanks again for the availability

                                    S Offline
                                    S Offline
                                    sindrome73
                                    wrote on last edited by
                                    #115

                                    @sindrome73 Hi Good evening, and I'm sorry for the delay in the reply.
                                    As you have never done a Bootloader, if you are kind enough to do it, I thank you.
                                    The channel I'm using is the "Channel 84" for now I'm using only the 16MHZ Bootloade, but if you want, the others are fine too.
                                    In addition you can give me some starting point to be able to fill in too ??
                                    Thanks for your availability, greetings

                                    G 1 Reply Last reply
                                    0
                                    • S sindrome73

                                      @sindrome73 Hi Good evening, and I'm sorry for the delay in the reply.
                                      As you have never done a Bootloader, if you are kind enough to do it, I thank you.
                                      The channel I'm using is the "Channel 84" for now I'm using only the 16MHZ Bootloade, but if you want, the others are fine too.
                                      In addition you can give me some starting point to be able to fill in too ??
                                      Thanks for your availability, greetings

                                      G Offline
                                      G Offline
                                      Guillermo Schimmel
                                      wrote on last edited by Guillermo Schimmel
                                      #116

                                      @sindrome73 here you have bootloaders for all the channels.

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

                                      They are unchanged from default elsewhere. Only RF CHANNEL.

                                      G 1 Reply Last reply
                                      1
                                      • S Offline
                                        S Offline
                                        sindrome73
                                        wrote on last edited by
                                        #117

                                        Hello!! And thank you again ......
                                        A really good job, it's something that was definitely missing ......
                                        I would suggest to the directors to expand the guide on OTA you better explain the steps to change channels and make a link to your great job !!

                                        Now if I understand this and the Bootloader that I have to load on my Arduino Pro-Mini, in practice insert in the path of the IDE of Arduino when I make the updates use that channel

                                        As soon as I can I try them and I'll let you know, in a lot of thanks again ......

                                        1 Reply Last reply
                                        0
                                        • acbA acb

                                          Quick question: Should FOTA work with personalized nodes/gateway?

                                          If the answer should be yes, then I appear to have a problem…

                                          As soon as I enable signing and signature requesting, the node will no longer respond to any internal or stream commands (e.g. Request Presentation, Reboot, Firmware, etc.) made via @tekka’s MYSController app. I haven’t tried anything else yet.

                                          The node still happily sends signed sensor data to the gateway and they ping-pong with heartbeats, etc.

                                          And as soon as I disable signing and signature requesting, the node will respond to all those same commands, quite happily rebooting, updating the firmware, etc.

                                          So, am I doing something wrong?

                                          (MYSController Version: 1.0.0beta, b3316. MySensors Library v2.3.1)

                                          acbA Offline
                                          acbA Offline
                                          acb
                                          wrote on last edited by
                                          #118

                                          @acb

                                          So, I’m answering my own question a little here after digging into the gateway/node logs and code - and so I'm replying to my own post.

                                          Should FOTA work with personalized nodes/gateway?

                                          Yes, it should and it does. FOTA (and any other internal commands) works with personalization (signed commands) using the MYSController.

                                          What doesn’t appear to work is if you’re using smartSleep and asking the MYSController app to trigger sending your internal command upon receiving from the node - in this case, simply a heartbeat from smartSleep.

                                          Does that make sense?

                                          So, if I don’t sleep the node, I can issue reboots and other internal commands that are signed, no problem.

                                          As soon as I switch to using smartSleep(DURATION) instead of wait(DURATION) and ask the MYSController app to trigger sending, for example, an internal reboot command “Upon RX”, then the reboot command never makes it to the node before it goes back to sleep. So the gateway tries to send the queued command, but the node has already gone back to sleep, and so it gets ignored.

                                          I’ve tried varying the smartSleep duration as well as the MY_SMART_SLEEP_WAIT_DURATION_MS define.

                                          I haven’t tried varying the MY_SLEEP_TRANSPORT_RECONNECT_TIMEOUT_MS define, but it didn’t immediately appear that this was a transport connection issue.

                                          It looks like the gateway/node do all their NONCE request/response just fine, but it could be something to do with how all that gets queued and ordered.

                                          Doesn’t look like it has anything to do with ATC at all, since I’ve tried enabling/disabling on both node and gateway.

                                          Also doesn’t look like it has anything to do with the new driver, since I’ve tried both the old and the new and get the same behaviour.

                                          The only difference appears to be the way smartSleep interacts with signed messages.

                                          I’ll keep digging, but if anyone has any ideas what I might be doing wrong here, I’d appreciate any help or advice.

                                          Thanks!

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          13

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.0k

                                          Posts


                                          Copyright 2019 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • MySensors
                                          • OpenHardware.io
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular