The Golioth Developer Blog

Golioth Firmware SDK v0.17.0

Yesterday, we released [v0.17.0][1] of the Golioth Firmware SDK. This release introduces support for the Golioth Location service in the SDK. We’ve also improved the stability and robustness of FW updates, and added support for the latest versions of development platforms from our silicon partners. For the full set of changes in the release, see the [changelog][2].

Golioth Location

[Golioth Location][3] is a network positioning service that allows devices to determine their location without the use of dedicated GNSS hardware, using nearby WiFi access points or cellular towers. The SDK now [provides][4] access to this service using the same simple C APIs that our users have come to expect from Golioth. Users first build a location request, then send it to Golioth and receive an approximate location. Building the location request starts by calling golioth_location_init(). Then, WiFi SSIDs and cell towers are added to the request using golioth_location_wifi_append() and golioth_location_cellular_append(), respectively. Location requests can contain either just WiFi SSIDs, just cell towers, or a combination of the two. When including both WiFi SSIDs and cell towers in the same location request, the user must add all of one type and then all of the other. After all of the network information is added, finish building the request by calling golioth_location_finish(). At this point, the user can send the request to Golioth using golioth_location_get_sync(). The response contains the approximate location and an accuracy estimate:

struct golioth_location_rsp
{
    /** Latitudinal position in nanodegrees (0 to +-180E9) */
    int64_t latitude;
    /** Longitudinal position in nanodegrees (0 to +-180E9) */
    int64_t longitude;

    /** Accuracy in meters */
    int64_t accuracy;
};
We have a new

[example][5] for Zephyr that demonstrates the expected usage of this API, as well as how to gather WiFi scan results and cell tower information. Golioth Location remains in private access; customers on the Teams or Enterprise tiers can request access using this form.

Firmware Update Improvements

We’ve made several changes to improve the robustness of the firmware update module against error conditions and corner cases. In the last release, we introduced resumable downloads into the OTA service. Now, the firmware update module leverages that capability to automatically resume interrupted downloads, instead of restarting them. This will improve performance and resource usage in degraded network conditions. We’ve also added automatic retries (with backoff) to firmware update downloads to further protect against issues during updates. We’ve improved how the SDK responds to new OTA releases that roll out while a device is already downloading a previous release. And finally, we’ve made the reporting of OTA states more robust, making the recently launched [OTA event log][6] even more useful in the Golioth Console.

Updated Platform Support

We’re committed to the cross-platform nature of our SDK. We’ve updated our support for ESP-IDF to v5.4 and ModusToolbox to v3.3. [1]: https://github.com/golioth/golioth-firmware-sdk/releases/tag/v0.17.0 [2]: https://github.com/golioth/golioth-firmware-sdk/blob/v0.17.0/CHANGELOG.md [3]: https://blog.golioth.io/golioth-location-private-access/ [4]: https://github.com/golioth/golioth-firmware-sdk/blob/v0.17.0/include/golioth/location.h [5]: https://github.com/golioth/golioth-firmware-sdk/tree/v0.17.0/examples/zephyr/location [6]: https://blog.golioth.io/ota-event-log/

About the author
S
Sam Friedman
Golioth

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

View all posts by Sam Friedman →

Get every post, as it ships

Zephyr RTOS, IoT engineering, and platform release notes. Twice a month.

Keep reading

More from the archive

Hardware

Why build hardware at a software company?

Golioth has built a range of custom hardware to test out many of the aspects of our own IoT offering. These challenges mirror what our customers face with their …

C
Chris Gammell
Feb 2, 2026 · 9 min
Featured

WiFi HaLoW with Morse Micro, Zephyr, and Golioth

Wi-Fi HaLoW enables high throughput, at a long distance using ISM band radios (850-950 MHz, depending on location). This post introduces the concepts behind the …

A
Arien Judge
Jan 22, 2026 · 4 min