Golioth OTA to Thingy91 Help

Description

Hello,
I am trying to use the OTA feature on my Nordic Thingy91. I’ve been trying to simply upload my zephyr.signed.bin file to the Golioth console, and have deployed it, with no change to my device. I’m not 100% sure what I need to include in my prj.conf, or in my header on main.c, and/or what code I need to include in my main.c to enable checking for firmware updates.

Expected Behavior

Able to flash OTA to Thingy91 from Golioth Console

Actual Behavior

When deploying, no changes to Thingy91 occur.

Environment

Hardware: Nordic Thingy:91 (nRF9160)

nRF Connect SDK

Zephyr

Zephyr SDK

Golioth Firmware SDK

Logs and Console Output

N/A

Attempts to Resolve

I’ve tried to include files like golioth/fw_update.h, golioth/ota.h, and configs like CONFIG_GOLIOTH_FW_UPDATE, CONFIG_GOLIOTH_OTA.

Welcome to the forum @nsp24!

Have you had a chance to check out the thingy91-golioth repo? That has OTA implemented and you can even download a pre-built binary if you’d like to see it working.

One thing that you didn’t mention, but may have implemented, is the init code for the fw_update service.

golioth_fw_update_init(client, _current_version);

In the above repo, it’s on line 74 of main.c. This is derived from our fw_update sample in our SDK (linking to the Zephyr sample, since you’re using NCS), that it probably is a good idea to check out, as well.

This code is passing the current version to the SDK and then it is setting up a listener for newly published versions. I would guess your device doesn’t have that set up yet.

Let us know how it goes!

That repo is just what I needed! Thanks Chris!

I was just able to OTA update my new binary! The console UI is great very helpful at displaying the current version, and its state in the process of downloading a new update. Thanks again!

2 Likes

That’s awesome! Glad to hear that got you unblocked. Happy device updating! :smiley: