Adding SiLabs EFR32BG27 to the Golioth Bluetooth-to-Cloud Service

Originally published at: Adding SiLabs EFR32BG27 to the Golioth Bluetooth-to-Cloud Service - The Golioth Developer Blog

If there’s one thing we love doing, it’s adding new chips to an IoT fleet. The Golioth Bluetooth-to-Cloud service is so hot right now because if your chip speaks BLE, we can connect it to the cloud. The Silicon Labs EFR32BG27 found on the xG27 development kit is the latest Bluetooth offering to be added to a Golioth fleet. Let’s jump in and discuss what it takes to enable SiLabs parts. Using the EFR32BG27 with Zephyr We grabbed the SiLabs xG27 dev kit for this experiment because it already has support in the Zephyr tree. Although support begins with v4.1.0 of Zephyr, our testing showed that for the device to work correctly with our gateways we needed to upgrade to v4.2.0. This board includes an embedded J-Link adapter so you can flash it using the USB-C port and Zephyr’s west flash command. To access the Bluetooth features of the chip, use west to grab the binary blob. west blobs fetch hal_silabs That takes care of the BLE prerequisites. I find that the Zephyr Bluetooth Observer sample is really handy when testing out new chips, so I built and ran that sample to confirm the radio was working as expected. Now it’s time to add this to our IoT fleet! Building Golioth’s Bluetooth-to-Cloud Example To get the SiLabs EFR32BG27 talking to the cloud I followed the instructions from the Golioth Bluetooth-to-Cloud connectivity repository. The example application is found in the Pouch non-IP protocol repository that is included as a submodule. I just needed to make a few updates to the pouch/west.yml manifest file in that repo so it will work with SiLabs parts: Use Zephyr v4.2.0 Add the SiLabs HAL library…