Open Sourcing Golioth Reference Designs and Template
The Golioth Reference Design Template is now publicly available to review and use with your IoT products. Our reference designs (and the template they are all based on) are now using the Apache 2.0 open source license. Over the last nine months of beta testing and development we’ve been sharing the source code only upon request. Starting today, we’re moving to stable releases and we’re making the repositories public for each design.
We began developing reference designs at the end of 2022 as a way to help customers jumpstart their fleet deployments. This goes far past hello-world, and gets your hardware up and running with an encrypted connection to every device, time-series and stateful data pipelines with the cloud, remote logging, remote procedure call, fleet settings, and of course over-the-air (OTA) firmware updates.
All of our specialized designs begin with the Golioth Reference Design Template. This is a firmware jumping off point that lights the way to customizing an implementation for your unique hardware needs.
You can try it right now using off-the-shelf parts (all that’s needed is a Nordic nRF9160 Development Kit) or on your own hardware using Zephyr RTOS.
What’s Included in a Reference Design?
Our reference design template demonstrates how to use all of the Golioth services, broken out into bite-sized files.
- dfu: all of our reference designs implement over-the-air (OTA) firmware updates. The files in this folder handle all the details for you.
- app_work: the core work for the application happens here. Sensor readings, data processing, and storing time-series data is found in this file.
- app_state: bi-directional stateful data is handled in this file. The device will write information about its actual state using functions in this file.
- app_settings: update your entire fleet at the same time, or drill down to specific devices. This file registers the Golioth Settings service and takes action when new settings are received.
- app_rpc: command and control gets truly powerful with the ability to call functions remotely, optionally supplying arguments that weren’t available at compile time.
- battery_monitor: an example of how to monitor and report device battery state back to the cloud.
Each of these files include API calls using the Golioth Zephyr SDK. Within that SDK, you’ll find samples of each of the above services as well; this is actually how we built the reference design template. An easy way to think about these layers:
- The Golioth SDK defines the service and assists in connecting to the Cloud-side capability
- The SDK samples are a simple implementation of a standalone service, such as LightDB Stream
- The Reference Design Template puts together multiple SDK samples in a format that approximates how product teams will build an all-inclusive firmware design. See below for a real-world example we built on top of the Reference Design Template.
Code Walkthrough
Mike and Chris walk through the code that’s part of the Reference Design Template
DC Power Monitor Reference Design
Today we are also releasing the DC Power Monitor Reference Design which illustrates voltage, current, and power monitoring for direct current applications like battery monitoring for micro-mobility fleets. This design was built on top of the Reference Design Template.
As with the template, this reference design can be run with off-the shelf parts. Support is included for the Nordic nRF9160 Developer Kit, along with an adapter board and two INA260 sensors from MikroElektronika. Full details on the features and hardware used in this reference design are available from the Golioth Projects page.
More Reference Designs Coming Weekly
The Reference Design Template and the DC Power Monitor are both live right now. We plan to publish one or two more each week until all of our reference designs are public. Keep an eye out for those weekly announcements, with the OBD-II / CAN Asset Tracker and the Air Quality Monitor as the next planned releases.
Sign up for the Golioth newsletter to make sure you don’t miss any of these announcements!
What Will You Build?
IoT shouldn’t be so hard, that’s why we’re here! Use Golioth as your instant IoT Cloud and finish your proof of concept quickly.
We’d love to know what you’re building. Post about your projects on the Golioth Forum and get in touch with our developer relations team to help with any questions you have along the way.
Start the discussion at forum.golioth.io