Golioth Firmware SDK v0.18.0

Yesterday, we released v0.18.0 of the Golioth Firmware SDK. This release improves blockwise transfers, adds initial support for Gateways, and updates our supported platforms and continuously verified hardware.

We’ve also made many smaller improvements and bug fixes across the codebase. For the full set of changes in this release, see the Changelog.

Improved Blockwise Transfers

The SDK leverages CoAP blockwise transfers for moving large payloads between embedded devices and the cloud. These transfers take payloads that are too large to be sent in a single IP packet and split them into smaller blocks that are uploaded or downloaded sequentially. In this release, we’ve made a couple of changes to our blockwise APIs to improve the developer experience.

First, we’ve added a multi-part blockwise upload API. Previously, blockwise uploads were done only through a single-shot API that would repeatedly call a user-supplied callback to get data for each block (this API still exists). This works well for many use-cases, but requires that the application is always ready to fill a block. For applications where that may not be the case, the multi-part API allows the application to decide when it is ready to send the next block.

We’ve changed our blockwise download API, used primarily for OTA package downloads, to be non-blocking. This unlocks additional use-cases and efficiency gains, while preserving the ability for users to implement blocking themselves, if desired.

Initial Gateway Support

We recently announced support for connecting Bluetooth devices to the cloud. Our MCU-based gateways leverage the Golioth Firmware SDK to proxy data between Bluetooth nodes and the Golioth cloud. In keeping with our commitment to open source, we’re releasing the initial set of changes made to our SDK to enable that functionality. Note that this initial support is experimental and APIs and behavior are subject to change. There will be more to come here! If you’re interested in taking part in our private access for Bluetooth-to-Cloud, sign up here.

Updated Platform Support and Verified Hardware

It’s been a few months since our last release and the wider world of open source embedded software continues to hum along. We’ve updated our support for Zephyr, nRF Connect SDK, and ESP-IDF to the latest stable versions.

We’ve also made a couple of changes to our Continuously Verified Boards. The NXP FRDM-RW612 replaces the i.MX-RT1024 – the RW612 is a powerful board with broad connectivity options, and internally we’ve had a lot of fun playing with it! For virtual boards, we’ve replaced QEMU with Zephyr’s Native Simulator. We’ve supported Native Simulator for several releases now and have found it to be a boon to developer productivity, shortening the build-flash-debug cycle considerably.

Sign up for the Golioth newsletter below or join our forums to be notified about upcoming releases and other features that are relevant to your IoT deployment!

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

Zephyr for Hardware Engineers: GDB Debugging

Debugging a Zephyr program with GDB can be tough for newcomers, especially if they're used to more vertically integrated IDE solutions. Let's get hardware engineers (and others!) started digging into a command-line based solution.

How to Flash a Pre-Loaded Filesystem During Production

Creating a filesystem separates your everyday firmware from other data like machine learning models, images, and binaries. In this post we discuss how you can set up the filesystem to speed up your production and create a flexible system that can be updated on-demand using Golioth's OTA service.

How to build a Bluetooth-connected digital signage fleet

Use Golioth Connectivity to create Bluetooth-enabled Digital Signage fleets. This demo shows how you can create an LED matrix that shows different informational callouts. We also show how you can easily provision a new device onto your fleet with certificates.

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.