💬 FOTA (Wireless Programming)

  • Admin

    This thread contains comments for the article "FOTA (Wireless Programming)" posted on MySensors.org.

  • Is it possible to flash bootloader to a pro mini with the radio attached?
    I want OTA but have some nodes with not-so-easy-to-remove radios =)

  • Hardware Contributor

    yes this is possible.

  • Can i even have it powered during the process?

  • Hardware Contributor

    that should work depending of the different voltage source. if your mini pro is 3v and also your programming tool, this is ok (but not the best advice ;) ). or keep your batt, and don't connect vcc from your programming tool. It's always better to use only one source if you're not sure and, also not sure if there are all protection .

  • Sorry for asking stupid questions but, "USBtinyISP AVR ISP Programmer" from the shopping guide. Is this able to do the same as "usbasp (clone, USBASP 2.0 LC Technology)" in this guide.

  • Hardware Contributor

    yes this should work

  • For some reason I can't set the extended fuse to 0x06, it always reverts to 0xFE;

    avrdude.exe: verifying ...
    avrdude.exe: 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.exe: 1 bytes of efuse verified

    Anyone knows why?

  • Hardware Contributor

    The Extended fuse handle the bod level. Only the 3 least significant bits are meaningful. Others are not used.
    Be careful: This is true for this fuse, not for all fuses, check datasheet or fuses calculator!
    That's why :

    • 0x06 = 00000110
    • 0xFE = 11111110

    are doing the same job for the extended fuse. It depends of the tool you use for burning this fuse. Simply, if you get this warning, use the "equivalent".

  • Thanks for the explanation, first try didn't work so I suspected the fuses, but turned out to be a voltage issue. :)

  • Is it possible to do OTA over RS485 connections?

  • Admin

    Yes, it should be possible. The node doesn't really care which transport that was used.

  • Does OTA work with the NRF24L01+ modules?


  • Mod

    @skywatch yes.

  • @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.

  • Admin


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

  • @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.

  • Admin


    @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.

  • Is it possible OTA from linux without MYSController?

  • 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.

Looks like your connection to MySensors Forum was lost, please wait while we try to reconnect.