This is FUD. Partition twice the amount of space you need on IOT's fixed media, and trickle-download your update to the empty partition. Once that's finished, verify the download then switch your bootloader. I have to update 500+ field installations with a new OS and this is the approach I'd take if we had the space and bandwidth (Instead we're sending out an army of techs and account reps armed with USB sticks)
Software Updates for IoT Devices and the Hidden Costs of Homegrown Updaters [pdf]
21–30 of 41 posts
Re: Software Updates for IoT Devices and the Hidden Costs of Homegrown Updaters [pdf]
#22This is wonderfully timed, I’m currently looking for options when it comes to doing firmware updates on Linux based IoT devices. Does anyone have any recommendations?
A friend who is building an Linux appliance is using Yocto: https://www.yoctoproject.org/ . He also talked about Mender, mentioned in the other comment. I don't know how much overlap there is between these projects.
Re: Software Updates for IoT Devices and the Hidden Costs of Homegrown Updaters [pdf]
#23Re: Software Updates for IoT Devices and the Hidden Costs of Homegrown Updaters [pdf]
#24This is FUD. Partition twice the amount of space you need on IOT's fixed media, and trickle-download your update to the empty partition. Once that's finished, verify the download then switch your bootloader. I have to update 500+ field installations with a new OS and this is the approach I'd take if we had the space and bandwidth (Instead we're sending out an army of techs and account reps armed with USB sticks)
http://www.ganssle.com/tem-subunsub.html
Relevant to tomc1985's comment, Jack surveyed how embedded developers were handling updates with their methods in these two articles:
Re: Software Updates for IoT Devices and the Hidden Costs of Homegrown Updaters [pdf]
#25I really like resin.io's container system, but I want to self-host.
Re: Software Updates for IoT Devices and the Hidden Costs of Homegrown Updaters [pdf]
#26This is FUD. Partition twice the amount of space you need on IOT's fixed media, and trickle-download your update to the empty partition. Once that's finished, verify the download then switch your bootloader. I have to update 500+ field installations with a new OS and this is the approach I'd take if we had the space and bandwidth (Instead we're sending out an army of techs and account reps armed with USB sticks)
Re: Software Updates for IoT Devices and the Hidden Costs of Homegrown Updaters [pdf]
#27This is FUD. Partition twice the amount of space you need on IOT's fixed media, and trickle-download your update to the empty partition. Once that's finished, verify the download then switch your bootloader. I have to update 500+ field installations with a new OS and this is the approach I'd take if we had the space and bandwidth (Instead we're sending out an army of techs and account reps armed with USB sticks)
Device #1: A "root boot" loader in flash, very simple, loaded by a boot ROM. Its only job is to find the first good "large" chunk of boot code, get it into RAM and run it. The "large" chunks are in one of two slots. The update process is simple (update and test each slot independently), and if the update is interrupted there's always an image to boot from. It takes the developer responsible for FW update about a day to write the code and get it rock solid. An update takes less than about five seconds.
Device #2: Implements a complicated file system. Some files need to be updated, some are untouchable, some need other special treatment (and the documentation is, unsurprisingly, dead wrong about things). The update process is very slow (tens of minutes) and if it is interrupted you wind up with a brick. It takes about two man-years to get the update process stable enough to ship.
Device #3: Implements the standard USB firmware update protocol (DFU). There's a mountain of host-side code to deal with the edge conditions, and firmware updates are unpredictable. Devices get bricked pretty often. Takes maybe six months to get the update process stable enough to ship.
Thinking of #2 and #3 still makes me mad. This stuff just isn't hard.
Re: Software Updates for IoT Devices and the Hidden Costs of Homegrown Updaters [pdf]
#28Re: Software Updates for IoT Devices and the Hidden Costs of Homegrown Updaters [pdf]
#29I've been contracting with an IoT company for 3 years now. It's interesting to see guys who coded exclusively for radio or infrared based remotes get pulled into the software development world. V1: 5 years ago everything was raw sockets and custom messaging formats with hand coded firmware and all data stored in a custom vector format, builds were distributed on google drive and flashed by hand. V2: 3 years ago we dr…
It's unaccpetable for a button to take action after some random delay between 100ms and 5s. It's even worse if there's a remote https round trip required, as network lag adds another layer of unpredictability.
Re: Software Updates for IoT Devices and the Hidden Costs of Homegrown Updaters [pdf]
#30This is FUD. Partition twice the amount of space you need on IOT's fixed media, and trickle-download your update to the empty partition. Once that's finished, verify the download then switch your bootloader. I have to update 500+ field installations with a new OS and this is the approach I'd take if we had the space and bandwidth (Instead we're sending out an army of techs and account reps armed with USB sticks)
All of you interested in embedded tips might find Jack Ganssle's The Embedded Muse interesting. The current and back issues are here: http://www.ganssle.com/tem-subunsub.html Relevant to tomc1985's comment, Jack surveyed how embedded developers were handling updates with their methods in these two articles: http://www.ganssle.com/tem/tem288.html http://www.ganssle.com/tem/tem289.html