Golioth Firmware SDK v0.21.0

Yesterday, we released v0.21.0 of the Golioth Firmware SDK. This release improves the robustness of OTA firmware updates, adds more flexibility to WiFi networks in our samples, and updates our support for Zephyr and the nRF Connect SDK to the latest releases.

Improved OTA Robustness

The Golioth Firmware SDK makes use of CoAP Observations to be notified anytime a new OTA manifest is available. Observations allow the server to push updates to a resource directly to a client, so that the client can conserve bandwidth and power, while receiving updates with low latency. While generally reliable, these notifications, like all traffic on the Internet, are not 100% guaranteed. Packets can be dropped due to spotty Internet connections or congestion on the device itself. Polling can be more robust, as if any individual response is dropped, the server has another chance to send the response the next time the client requests an update. But most of the time there isn’t any new update, and achieving low latency requires many requests, resulting in high bandwidth and power usage.

We’ve combined the best of both worlds into a polling-with-short-circuit mechanism that we’re calling subscriptions. Subscriptions still use CoAP observations to get asynchronously notified of new updates with low latency. But it layers polling with a long interval on top. This ensures that in the ‘happy path’, devices are notified of any changes immediately. In the worst case, they are still notified eventually. This results in a small increase in power usage, and the polling is configurable via a new KConfig symbol called CONFIG_GOLIOTH_OTA_MANIFEST_SUBSCRITION_POLL_INTERVAL_S. We’re rolling this out first for OTA manifests, but soon we’ll use this subscription mechanism in place of all observations in the SDK.

More Flexible Wi-Fi

When we first added support for Wi-Fi devices to our samples, there was no standard way to store and retrieve Wi-Fi credentials in Zephyr, so we built our own. It was relatively simple, only allowing open or WPA2-PSK networks, and storing credentials in plaintext in Zephyr’s settings subsystem. Since that time, Zephyr has implemented a robust Wi-Fi Credentials library that outclasses our own. Credentials can be added through the wifi shell for a wide variety of network types, and credentials can be stored in PSA secure storage in addition to the settings subsystem. We’ve moved our samples to use this library, which will result in a more flexible experience for users, while bringing our samples in line with the wider Zephyr ecosystem.

Updated Platform Support

We’ve updated our support for Zephyr and the nRF Connect SDK to the latest versions. That’s v4.2.1 for Zephyr and v3.1.1 for the nRF Connect SDK. While there’s always lots of great additions in each release, this time around we’re particularly excited for the new silicon and boards that are supported in these new releases.

Sam Friedman
Sam Friedman
Sam leads Firmware Engineering at Golioth. Previously, Sam has built and shipped consumer electronics and IoT devices used by millions around the world.

Post Comments

No comments yet! Start the discussion at forum.golioth.io

More from this author

Related posts

spot_img

Latest posts

Visualizing Bluetooth OTA Firmware Updates

This demo shows a full end-to-end encrypted Over-The-Air (OTA) Firmware Update for a Bluetooth Device from the Cloud using Golioth's Pouch capabilities and . The demo also utilizes the accelerometer and LED matrix of the Tikk board to activate the OTA and display progress throughout the download.

How to Use Golioth Blockwise Stream to Upload Large IoT Data Payloads

Golioth allows large data uploads using the Firmware SDK and via blockwise stream calls. This post shows how to modify the Stream sample to try uploading large amounts of arbitrary data and route that data through Golioth Pipelines.

Golioth Joins STMicroelectronics Partner Program

Golioth and STMicroelectronics are officially partners. Golioth will enhance ST offerings and make devices more secure, more capable, and easier to manage from afar.

Want to stay up to date with the latest news?

Subscribe to our newsletter and get updates every 2 weeks. Follow the latest blogs and industry trends.