dankamongmen / dankdryer

firmware for the world's best filament dryer
Apache License 2.0
7 stars 0 forks source link

support OTA #17

Open dankamongmen opened 2 weeks ago

dankamongmen commented 2 weeks ago

we'll need be able to load new versions of firmware onto the ESP32-S3. once we've got wifi working (see #16), add OTA capabilities.

dankamongmen commented 2 weeks ago

this looks pretty complicated, with lots of partitioning and such. ideally we'll find a trustworthy library to handle this.

dankamongmen commented 2 weeks ago

are we going to have the device pull OTA from the internet, or do we expect it to be sideloaded, or need we support both? pulling it over the internet will require PKI--at the very least, TLS and a cert store on the device. i think we have to support sideload given our "no cloud" guarantee. so let's handle that first. ideally we would have a random password per device, tied to the serial number, but that requires infrastructure as well...

dankamongmen commented 2 weeks ago

yeah i think sideloading is the way to go, at least at first. we can optionally check to see if there's new firmware, and if we find it, let the user know. even that, though, would require PKI.

dankamongmen commented 2 weeks ago

https://github.com/arduino-libraries/Arduino_ESP32_OTA explicitly claims esp32-s3 support.. but appears to want to pull it over the internet

dankamongmen commented 2 weeks ago

https://github.com/gb88/BLEOTA looks nice for using BLE ala nordic's DTU, but there's only one radio on esp32, so you can't use wifi and bluetooth at the same time. we'd probably want to switch to BLE update mode, and if we timeout, switch wifi back on. sounds pretty complex. let's keep looking...