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.5k 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.
  • skywatchS skywatch

    @mfalkvidd

    Thanks for the (very) fast reply!

    I have arduino in my greenhouse and in winter when it can be constantly wet and cold it is a real pain to take the laptop out to make any changes. This would be a good solution that would allow me and my laptop to stay warm and dry! - - - But how do I stop any one else programming it remotely? Is there some security to stop random programs being installed (it is controlling mains electricity and I need to be sure it is a safe option.

    tbowmoT Offline
    tbowmoT Offline
    tbowmo
    Admin
    wrote on last edited by
    #16

    @skywatch

    You can use signing to authenticate a firmware upload. Then the attacker first need to get your pre shared keys to reprogram via ota

    1 Reply Last reply
    0
    • AndurilA Offline
      AndurilA Offline
      Anduril
      wrote on last edited by
      #17

      @skywatch just to be complete: using signing as @tbowmo suggested only works with dualoptiboot bootloader.
      When using MYSBootloader it will, as far as I know, accept any firmware when booting. To attack the node the attacker would have to reboot your node (power cycle,...) and then send his own firmware. So this is possible, but needs quite a good amount of control of your systems.

      tbowmoT 1 Reply Last reply
      0
      • AndurilA Anduril

        @skywatch just to be complete: using signing as @tbowmo suggested only works with dualoptiboot bootloader.
        When using MYSBootloader it will, as far as I know, accept any firmware when booting. To attack the node the attacker would have to reboot your node (power cycle,...) and then send his own firmware. So this is possible, but needs quite a good amount of control of your systems.

        tbowmoT Offline
        tbowmoT Offline
        tbowmo
        Admin
        wrote on last edited by
        #18

        @Anduril

        @tekka have been looking at making a secure Ota boot loader, if I remember right. I thought that it was released already.

        But if an intruder is able to get yo your node to do a reset in order to have the mysbootloader kick in, he could just as well put a new firmware in by attaching a programmer directly to the node.

        1 Reply Last reply
        1
        • b0rmannB Offline
          b0rmannB Offline
          b0rmann
          wrote on last edited by
          #19

          Is it possible OTA from linux without MYSController?

          1 Reply Last reply
          1
          • skywatchS Offline
            skywatchS Offline
            skywatch
            wrote on last edited by
            #20

            Thank you all for the responses. If someone gets physical access then the game is over anyway. I just want to protect from some bored malicious person getting remote access and causing problems or even a fire.
            If it is secure from 'others' hacking it remotely I might give it a try.

            1 Reply Last reply
            0
            • AndurilA Offline
              AndurilA Offline
              Anduril
              wrote on last edited by
              #21

              When initiating a ota firmware update MYSController sends a reboot message to the node. Does anyone knows if that is protected by signing (if enabled)? If so, it would be quite safe excluding the physical access.

              1 Reply Last reply
              0
              • chrilleC Offline
                chrilleC Offline
                chrille
                wrote on last edited by
                #22

                Same question as @b0rmann - is it possible to do OTA from a non-Windows environment (Mac OSX or Linux)? A simple implementation in python or perl, that could talk to the gateway, and do OTA from the command line, would be a really nice to have. I would prefer the dualoptiboot solution, since it'll work with RFM69 nodes as well (at least that's my understanding)

                1 Reply Last reply
                1
                • E Offline
                  E Offline
                  emc2
                  Hardware Contributor
                  wrote on last edited by
                  #23

                  It may be a silly question, but what is the point of setting the fuses before burning the bootloader (using Dualoptiboot)?

                  After burning the bootloader fuses are changed to E:06, H:D2, L:E2 anyway as set in board.txt

                  MysensorsMicro.bootloader.unlock_bits=0x3F
                  MysensorsMicro.bootloader.lock_bits=0x0F
                  MysensorsMicro.bootloader.low_fuses=0xE2
                  MysensorsMicro.bootloader.high_fuses=0xD2
                  MysensorsMicro.bootloader.extended_fuses=0x06
                  

                  Should we burn them after to revert to E:06, H:DA, L:E2 ? (and loosing EESAVE which seems bad)

                  1 Reply Last reply
                  0
                  • tonnerre33T Offline
                    tonnerre33T Offline
                    tonnerre33
                    Hardware Contributor
                    wrote on last edited by
                    #24

                    hello all,

                    i have installed MYSBootloaderV13pre on my arduino mini pro 3.3V and this work fine.

                    But i encountered some issues with my jeedom version (the node.js crash) that why i want to replace this bootloader (temporarily) but i can't.

                    Do you know why when i burn a different bootloader, MYSBootloaderV13pre is still present ?

                    Thx in advance for your answers

                    1 Reply Last reply
                    0
                    • Cliff KarlssonC Offline
                      Cliff KarlssonC Offline
                      Cliff Karlsson
                      wrote on last edited by
                      #25

                      This might be a stupid question but would it be possible to add a AT25DF512C-SSHN-B to a regular Pro mini by connecting it to a custom PCB like a jModule with a AT25DF512C-SSHN-B ?

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

                        i don't see any problem if you connect correctly the spi bus. it depends what's a jmodule??
                        in case i did this, perhaps smaller..
                        https://www.openhardware.io/view/18/OTA-and-Authentication-Evaluation-Board

                        1 Reply Last reply
                        0
                        • T Offline
                          T Offline
                          tlustoch
                          wrote on last edited by
                          #27

                          There is an ambiguity in documetation of MYSBootloader:

                          1. On https://www.mysensors.org/download/sensor_api_20#configuration there is a Note: "You can still have OTA FW updates without external flash but it requires the MYSBootloader and disabled MY_OTA_FIRMWARE_FEATURE"
                          2. Above on https://www.mysensors.org/about/ota#enabling-ota-in-your-sketch there is written: "To enable OTA in your sketch, you need to add #define MY_OTA_FIRMWARE_FEATURE"
                            So, in the case of MYSBootloader (no external flash), what is correct (I suppose 2)?

                          Two additional questions:
                          Where is located MYSBootloader for MySensors 2.0?
                          Is it usable with 8MHz internal clock config?

                          Thanks for answer(s)

                          tonnerre33T 1 Reply Last reply
                          0
                          • T tlustoch

                            There is an ambiguity in documetation of MYSBootloader:

                            1. On https://www.mysensors.org/download/sensor_api_20#configuration there is a Note: "You can still have OTA FW updates without external flash but it requires the MYSBootloader and disabled MY_OTA_FIRMWARE_FEATURE"
                            2. Above on https://www.mysensors.org/about/ota#enabling-ota-in-your-sketch there is written: "To enable OTA in your sketch, you need to add #define MY_OTA_FIRMWARE_FEATURE"
                              So, in the case of MYSBootloader (no external flash), what is correct (I suppose 2)?

                            Two additional questions:
                            Where is located MYSBootloader for MySensors 2.0?
                            Is it usable with 8MHz internal clock config?

                            Thanks for answer(s)

                            tonnerre33T Offline
                            tonnerre33T Offline
                            tonnerre33
                            Hardware Contributor
                            wrote on last edited by
                            #28

                            @tlustoch You need to enable MY_OTA_FIRMWARE_FEATURE only if you use DualOptiBoot.
                            With MYSBootloader, you don't need ;)

                            I use MYSBootloader 1.3 pre-release with mysensors 2.0. You can find it here : https://forum.mysensors.org/topic/3453/mysbootloader-1-3-pre-release-myscontroller-1-0-0beta

                            And yes it usable with 8 MHZ internal clock config if you burn the bootloader with 8Mhz internal clock setting.

                            1 Reply Last reply
                            1
                            • L Offline
                              L Offline
                              LastSamurai
                              Hardware Contributor
                              wrote on last edited by
                              #29

                              Short question from me: my mysensors network is set up with domoticz as a controller on a raspberry pi. I need to upgrade all my nodes to Version 2 of mysensors soon and want to enable wireless programming while I am at it. As far as I understand I do need to use MYSController to update a node, which seems to be a windows only program. Any way I can still use that with my linux based (raspi) network?

                              1 Reply Last reply
                              1
                              • TakeroT Offline
                                TakeroT Offline
                                Takero
                                Hardware Contributor
                                wrote on last edited by Takero
                                #30

                                For OTA Update under Rpi i used this: http://www.virtualhere.com/

                                • just install it on the Pi, stop the controler software
                                wget http://www.virtualhere.com/sites/default/files/usbserver/vhusbdarmpi2
                                

                                vhusbdarmpi2 -> for Pi2 only (see homepage for other platforms)

                                sudo chmod +x ./vhusbdarmpi2
                                
                                • start the virtualhere server
                                sudo ./vhusbdarmpi2
                                
                                • install the client on your Windows System
                                • Mount the Com-Port
                                • start MYSControler
                                • do what you want to do
                                • stop client

                                now you have to reboot your rpi, stop virtualhere server its not enoth, cant mount device again. After restart everythinks works well.

                                Greetings

                                1 Reply Last reply
                                5
                                • Cliff KarlssonC Offline
                                  Cliff KarlssonC Offline
                                  Cliff Karlsson
                                  wrote on last edited by
                                  #31

                                  I can't figure out this step:
                                  Go to Arduino Ide, in Board Manager, choose SensebenderMicro if you want to use DualOptiboot bootloader OTA. Or choose Arduino Mini pro MYSBootloader
                                  I cant find any sensbender board when searching the boards manager, I also tried downloading the 2.0 directly but cant find any boards there either. How should I do this?

                                  hekH 1 Reply Last reply
                                  0
                                  • Cliff KarlssonC Cliff Karlsson

                                    I can't figure out this step:
                                    Go to Arduino Ide, in Board Manager, choose SensebenderMicro if you want to use DualOptiboot bootloader OTA. Or choose Arduino Mini pro MYSBootloader
                                    I cant find any sensbender board when searching the boards manager, I also tried downloading the 2.0 directly but cant find any boards there either. How should I do this?

                                    hekH Offline
                                    hekH Offline
                                    hek
                                    Admin
                                    wrote on last edited by
                                    #32

                                    @Cliff-Karlsson

                                    https://github.com/mysensors/ArduinoBoards

                                    1 Reply Last reply
                                    0
                                    • Cliff KarlssonC Offline
                                      Cliff KarlssonC Offline
                                      Cliff Karlsson
                                      wrote on last edited by
                                      #33

                                      Thanks, but now I get this error in Arduino IDE when burning the bootloader:

                                      avrdude: warning: cannot set sck period. please check for usbasp firmware update.
                                      avrdude: warning: cannot set sck period. please check for usbasp firmware update.
                                      ***failed;
                                      avrdude: WARNING: invalid value for unused bits in fuse "efuse", should be set to 1 according to datasheet
                                      This behaviour is deprecated and will result in an error in future version
                                      You probably want to use 0xfe instead of 0x06 (double check with your datasheet first).
                                      avrdude: warning: cannot set sck period. please check for usbasp firmware update.
                                      avrdude: warning: cannot set sck period. please check for usbasp firmware update.

                                      Is this still ok?

                                      1 Reply Last reply
                                      0
                                      • Cliff KarlssonC Offline
                                        Cliff KarlssonC Offline
                                        Cliff Karlsson
                                        wrote on last edited by
                                        #34

                                        And this happens when I try to upoad a sketch to the board:

                                        Sketch uses 16,796 bytes (54%) of program storage space. Maximum is 30,720 bytes.
                                        Global variables use 739 bytes (36%) of dynamic memory, leaving 1,309 bytes for local variables. Maximum is 2,048 bytes.

                                        avrdude: stk500_paged_load(): (a) protocol error, expect=0x10, resp=0x90
                                        avrdude: stk500_cmd(): protocol error
                                        avr_read(): error reading address 0x0137
                                        read operation not supported for memory "flash"
                                        avrdude: failed to read all of flash memory, rc=-2
                                        the selected serial port avrdude: failed to read all of flash memory, rc=-2
                                        does not exist or your board is not connected

                                        1 Reply Last reply
                                        0
                                        • A Offline
                                          A Offline
                                          Alex B Goode
                                          wrote on last edited by
                                          #35

                                          Fellows, let me ask you about the procedure of switching controllers during OTA.
                                          My sensors are connected to a serial gateway, which is operated by a controller.
                                          In my case the controller is Domoticz server hosted by Raspberry Pi2.

                                          So if I want to initiate updating one of my nodes over the air then I need to... stop my current controller on my Raspberry Pi2 and... start a new gateway on a Windows machine with MYSControler, wait when all nodes will re-discover the new gateway and connect, and then use MYSControler to do all updates I need?

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


                                          5

                                          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