Changelog

Follow up on the latest improvements and updates.

RSS

Added:
  • ESP-IDF: added ability to send native logging system messages to the Golioth remote logging service.
Changed:
  • OTA firmware update observation will retry multiple times when failing to register.
  • Status added to the CoAP request struct for passing error codes.
Fixed:
  • Zephyr: correctly handle the client connection stop command.
  • Zephyr: reestablish observations after reconnect.
Breaking Changes:
  • Previously, it was possible to implicitly include default Kconfig settings from the Zephyr examples into client applications. This was unintentional and has been fixed. As a result, if your application was relying on those defaults, you'll now need to set those Kconfig values explicitly in your application.
Added:
  • Zephyr: Add socket hello_nrf91_offload example to demonstrate DTLS sockets offload
  • Zephyr: add rak5010_nrf52840 support to all examples
  • ESP-IDF: add fw_update example to demonstrate OTA firmware update
  • ESP-IDF: add settings example to demonstrate device settings service
Changed:
  • Zephyr: example code now explicitly sources Kconfig.defconfig file to select necessary Kconfig symbols from the example common files
  • Zephyr: update runtime settings in examples to take effect without needing a reboot
  • Update libcoap version to v4.3.4a
Fixed:
  • Documentation updates
  • Certificate Provisioning: Increase nRF52840 network buffers to avoid failing handshake
Known Issues:
  • Default Kconfig values may not propagate correctly if the Golioth SDK
is not listed first in the West manifest. To workaround this, ensure
that Golioth is listed first in your application's manifest.
Added:
  • CONFIG_GOLIOTH_RPC_MAX_RESPONSE_LEN to control the size of the buffer
used to hold the RPC response
Changed:
  • Improved how the Golioth Zephyr log backend handles network disconnects
to avoid interfering with the application's control of logging levels
  • Removed default dependency on floating point support
Fixed:
  • Enable log shell commands in Zephyr Certificate Provisioning example
  • Build error when compiling with NCS and without newlib
  • Correctly handle TOO_MANY_REQUESTS responses from the server in NCS
Highlights
  • Zephyr port updated to Zephyr v3.6
  • NCS port updated to NCS v2.5.2
  • ESP-IDF port updated to ESP-IDF v5.2.1
  • New examples for ESP-IDF
  • Initial support for
    native_sim
    target in Zephyr
Breaking Changes
Added:
  • New examples for ESP-IDF:
    hello
    ,
    rpc
    ,
    lightdb state
  • Additional hardware-in-the-loop integration tests
  • west patch
    command for applying git patches
  • native_sim
    support (requires patches on top of Zephyr v3.6)
  • nRF91 LTE monitor log level is now configurable
  • Zephyr console now returns an error when attempting to store a PSK-ID or PSK that is too long
Changed:
  • Improved NACK handling during initial connection
  • OTA module now decodes all items in a manifest
  • RPC returns
    NOT_FOUND
    instead of
    UNKNOWN
    when receiving an RPC
for an unregistered method
  • Improved and clarified documentation
  • Improved and stablized HIL test infrastructure
  • Documentation updated to reflect change from Device Name to Certificate ID in device certificates
Removed:
  • Individual type functions for Stream service
  • Zephyr port no longer depends on
    CONFIG_POSIX_API
Fixed:
  • Fixed range checking for int type settings
  • Fixed incorrect error code for receiving an unknown setting
  • Fixed crash when disabling Zephyr log backend
  • Fixed buffer allocation failures on nRF52840DK
  • Fixed
    free()
    of unallocated buffer
  • Zephyr CoAP client was not notifying port layer of disconnections
  • Some kconfig settings had no effect in the ESP-IDF port
  • Some kconfig options could not be overriden in the Zephyr port
Highlights
  • The Zephyr CoAP library is now used instead of libcoap for Zephyr ports
  • Zephyr ports can specify a TLS credential tag to use for authentication, in particular this will enable the use of offloaded DTLS sockets.
Breaking Changes
  • Remove
    golioth_
    prefix from filenames and move header files under
    golioth/
    folder.
  • Remove
    golioth.h
    header - users must now include individual headers for each service that they use.
  • Stream and State: change
    json
    and
    cbor
    object set calls to specify type in the parameters (instead of separate function calls).
  • RPC: This service must now be initialized prior to use by calling
    golioth_rpc_init(client);
  • Settings: This service must now be initialzied prior to use by calling
    golioth_settings_init(client);
  • Services (e.g. stream, fw_update, etc.) are disabled by default - be sure to enable them in your project configuration.
  • Typedefs have been removed throughout the codebase - instead use the underlying struct or enum types
  • Remove
    lightdb_
    from
    lightdb_stream
    functions to differentiate from LIghtDB State
Added:
  • Automated Hardware-in-the-Loop test framework
  • Basic cross-platform connection HIL test
  • Tests for all Zephyr examples
  • Add kconfig option for default log level for SDK logs
  • Lightb State examples now show how to use CBOR
Changed:
  • Improved network connection management
  • Wait for network traffic and request queue concurrently - this removes the need to wakeup every 1 second to check for requests
  • Pass structs by reference instead of value in golioth_sys_* APIs
  • Use bool instead of int for binary Kconfig options
  • Improved organization of Kconfig options
  • ESP-IDF examples use FreeRTOS APIs directly instead of Golioth abstractions
  • LightDB State and Stream are now separate services in the SDK
  • DFU example has been renamed to
    fw_update
  • Use golioth_content_type enum instead of libcoap content types
Removed:
  • Magtag demo for ESP-IDF - this hardware is out of stock
  • Golioth time module - this was a thin wrapper around golioth_sys
  • golioth_statistics module - this internal memory tracking module is being replaced by out-of-source tooling
  • remote_shell - This was an experimental feature that was never released. If you are interested in remote shell functionality in the future, please reach out to Golioth!
  • Integration guide - see docs.golioth.io for the latest documentation on integration Golioth into your product
Fixed:
  • Various documentation fixes
  • Removed double check for CONFIG_GOLIOTH_SAMPLE_COMMON
  • Fix stack overflow in logging thread
  • Drop logs with unsupported log levels
  • Attempting to use a disabled service now fails at build time instead of at run time

new

improved

Web Console

New in Web Console v1.25.4

Feature 📦: New authentication service domain (
auth.golioth.io
).
Feature 📦: All projects now associated with an organization.
Improvement ✨: Navigation breadcrumbs now always show current organization and project.
Improvement ✨: Switching projects now takes you directly to the new project devices page.
Improvement ✨: Switching organization now takes you directly to the first project devices page.
Improvement ✨: User account page now shown in dedicated view without sidebar.
Version 0.9.0 of the Golioth Firmware SDK has been released.
Highlights:
  • Support for Zephyr v3.5.0 and Nordic Connect SDK v2.5.0
Added:
  • zephyr: Add
    CONFIG_GOLIOTH_USE_CONNECTION_ID
    symbol to enableqConnection IDs
  • zephyr: support DTLS 1.2 Connection IDs with NCS (disabled by default)
  • zephyr: samples: enable reboot
  • ci: add HIL test workflow
  • zephyr: samples: add connection test
Changed:
  • zephyr: Use Zephyr 3.5.0
  • zephyr: Use NCS 2.5.0
  • moved src/include folder to root directory
  • moved src/priv-include folder to src/include
  • zephyr: Use random subsystem provided by Zephyr
  • ci: parallelize workflows
Known Issues:
FlexSPI issue in Zephyr 3.5.0 may cause DFU to hang for NXP chips during the flash memory erase step. This issue has already been addressed with a recent commit: https://github.com/zephyrproject-rtos/zephyr/commit/9dd8f94fd47b8b399c230fac2c24e4949cc25b99
Golioth has confirmed that this commit fixes the DFU issue on NXP boards, but we have not performed full verification of the rest of the SDK against this revision of Zephyr. Work around the issue by updating the Zephyr revision number in
west-zephyr.yml
to that commit SHA number (or newer).
Added
  • pinout for ESP32 WROVER in samples' README files
  • support for nRF52840DK + ESP-AT platform in
    samples/cert-provisioning/
  • documentation (README file) for
    samples/rpc/
  • CONFIG_GOLIOTH_USE_CONNECTION_ID
    Kconfig option enables DTLS CID use
Changed
  • WiFi state machine (with implemented reconnects) has replaced previous implementation of simple one-shot connection attempt to WiFi Access Point
  • moved Python Golioth package to separate repository at https://github.com/golioth/python-golioth-tools
  • replaced
    samples/common/runtime_psk.conf
    with
    samples/common/runtime_settings.conf
    that additionally enables WiFi credentials storage in Zephyr settings subsystem
  • verified with NCS v2.5.0
  • verified with Zephyr v3.5.0
Feature 📦: Added ability of tag creation inline from the device creation screen.
Improvement ✨: Updated Device setup modal with new links to the docs.
Improvement ✨: Improved display of the Project selection modal to show organization ID for all projects.
Fix 🐛: Removed non-functional close icon on Tags display.
Improvement ✨: Notification for new projects for invited user.
Load More