Software
Cellular and over-the-air updates
ModBee GSM and ModBee OTA
Two libraries for remote sites. ModBee GSM runs SIMCom cellular modems over AT commands and gives Arduino-standard network clients. ModBee OTA updates a node's firmware over MQTT and rolls it back if the new version does not come up.
ModBee GSM
GsmClient and GsmUDP implement the Arduino Client and UDP interfaces, so MQTT, HTTP and other libraries run over cellular unchanged. TLS runs in the modem. SMS and GNSS are included, and nothing blocks.
Drivers cover the SIMCom A7670, A7672, A7678 and A7608 (LTE Cat-1) and the SIM7070, SIM7080 and SIM7090 (LTE-M and NB-IoT), chosen at run time from the modem's reply.
ModBee OTA
The node pulls the new image in chunks, checks its CRC-32 and SHA-256, and optionally an Ed25519 or ECDSA signature, the board and the version. It then boots the new image on trial and rolls back automatically if it does not come up.
Flash work runs at the lowest priority, so a PLC program keeps running during an update. On slow links it adapts its timeouts and resumes after a power cut. It runs on ESP32 boards with two OTA slots.