This repository contains tools for building Zigbee, Thread, and Z-Wave firmwares for the Home Assistant Connect ZBT-1/SkyConnect, ZBT-2, ZWA-2, and Yellow. The firmware manifests are entirely generic, however, and are intended to be written easily for any Silicon Labs chips.
It uses the Silicon Labs Gecko SDK and proprietary Silicon Labs tools such as the Silicon Labs Configurator (slc) and the Simplicity Commander standalone utility.
The project templates in this repository are configured and built for specific boards
using manifest files. For example, the zbt2_zigbee_ncp.yaml
manifest file configures the Zigbee firmware for the Connect ZBT-2.
The easiest way to build firmware is using Docker. The container image includes all required SDKs, toolchains, and tools pre-installed.
git clone https://github.com/NabuCasa/silabs-firmware-builder
cd silabs-firmware-builder
docker run --rm -v $(pwd):/repo ghcr.io/nabucasa/silabs-firmware-builder \
--manifest manifests/nabucasa/skyconnect_zigbee_ncp.yaml \
--output gbl \
--output-dir artifactsOnce the build is complete, the firmware will be in the artifacts directory.
If you are going to be developing using Simplicity Studio, note that each project can potentially use a different Gecko SDK release. It is recommended to forego the typical Simplicity Studio SDK management workflow and manually manage SDKs:
-
Clone a specific version of the Gecko SDK:
# For macOS mkdir ~/SimplicityStudio/SDKs/gecko_sdk_4.4.2 cd ~/SimplicityStudio/SDKs/gecko_sdk_4.4.2 git clone -b v4.4.2 https://github.com/SiliconLabs/gecko_sdk . git checkout -b branch_tag
-
Open preferences, navigate to Simplicity Studio > SDKs, click the
Add SDK...button, and browse to the above location. -
Once the SDK is added, select its entry and click
Add Extension.... -
In this repo, add the extensions under
gecko_sdk_extensions.
Repeat this process for every necessary SDK version.
Tip
If you have build issues after switching commits, make sure to delete any
gecko_sdk_* and template folders from the Simplicity working tree.