Skip to content

darkxst/silabs-firmware-builder

 
 

Repository files navigation

Silicon Labs firmware builder repository

This repository contains Dockerfiles and GitHub actions that build Silicon Labs firmware. It also hosts unofficial Zigbee Coordinator and Thread (OpenThread) firmware builds that community members can experiment with at your own risk.

The firmware builder uses the Silicon Labs Gecko SDK (GSDK) and proprietary Silicon Labs tools such as the Silicon Labs Configurator (slc) and the Simplicity Commander standalone utility. This is a fork of the Silabs firmware builder by Nabu Casa, adding support for additional radio adapter hardware models.

Again, please note that the pre-compiled firmware builds hosted in this repository are both unofficial and experimental or cutting-edge releases with minimal testing which may brick your radio adapter so that it requires manual recovery via a compatible debug probe adapter, however, the builds offered via the Web Flasher are the latest versions recommended by the community.

Legacy firmware builds

If you are looking for Gecko v7 builds, they can be found here Legacy Gecko SDK builds

Supported hardware:

  • Sonoff ZBDongle-E by ITead (based on EFR32MG21)
  • Sonoff Dongle Plus Mg24 (based on EFR32MG24)
  • Sonoff iHost by ITead (also based on EFR32MG21 and uses the same firmware as Sonoff ZBDongle-E)
  • EasyIot ZB-GW04 v1.1 and v1.2 (based on EFR32MG21)
  • SMLIGHT SLZB-07 (which may require unlocked bootloader first) (based on EFR32MG21)
  • SMLIGHT SLZB-07Mg24 (based on EFR32MG24)
  • SMLIGHT SLZB-06M (based on EFR32MG21)
  • SMLIGHT SLZB-06Mg24 (based on EFR32MG24)
  • SMLIGHT SLZB-06Mg26 (based on EFR32MG26)
  • Aeotec Zi-Stick (model “ZGA008” based on EFR32MG21)
  • Sparkfun Things Matter MGM240P (requires bootloader to be flashed first using Silabs Simplicity Commander) (based on EFR32MG24)
  • SeeedStudio Xiao MG24 (based on EFR32MG24), requires bootloader to be flashed with OpenOCD
  • Xiaomi Multimode Gateway 2/Mi Smart Hub Pro 2 (based on EFR32MG21)
  • Elelabs Zigbee USB Adapter ELU013 (based on EFR32MG13P) [legacy only, 7.4.x builds]
  • Elelabs Zigbee Raspberry Pi Shield ELR023 (based on EFR32MG13P) [legacy only, 7.4.x builds]

Different firmware variants

Three network protocol application firmware variants are available:

  • EmberZNet NCP = Zigbee NCP (Network Co-Processor) is used as a dedicated Zigbee Coordinator for Zigbee-only environments, for direct use with Zigbee2MQTT, Home Assistant's ZHA integration, other Zigpy based Zigbee Gateway implementations, or other Zigbee gateways/frameworks that support the EZSP (EmberZNet Serial Protocol) interface.
  • OpenThread RCP firmware (experimental) = This Thread RCP (Radio Co-Processor) is used directly as a dedicated Thread Border Router in Thread-only environments, used for OpenThread Border Router add-on or wpantund.
  • RCP Multi-PAN (no longer recommended) = Multiprotocol firmware for concurrent communication over Zigbee and Thread via Home Assistant SiliconLabs Multiprotocol add-on.

Note! RCP MultiPAN in multiprotocol mode is no longer available. Running multi-protocol with multiple active networks on a single radio adapter has proven unstable when using Zigbee and Thread simultaneously. It also increases software component complexity. If you're currently using RCP Multi-PAN, it's highly recommended to migrate to separate dedicated radio adapters (using Zigbee NCP and Thread RCP firmware respectively), even if your current setup appears to be working fine. Note that we do not support Sonoff's re-branded multi-PAN attempts either.

External reference explaining these different co-processor designs at a high level:

Web Flasher

Flash directly from your browser (only Chrome and Edge supported) SL Web Flasher

Read this blog post for more details and instructions for using RCP Multi-pan firmware.

Home Assistant Add-on

RCP MultiPan firmware ONLY
You can install this HA add-on to keep your dongle up to date with latest the RCP Multi-Pan firmware. This is only for use if you are using the SiliconLabs Multiprotocol add-on.

Multipan Flasher Addon

It can also be used for the initial conversion to MultiPan firmware, however you will need to disable ZHA or Zigbee2MQTT while you do this initial flash. You can then install and configure the Silabs Multiprotocol Add-on.

Pre-Compiled Firmware

Firmware builds can be found in the firmware_builds folder.

ncp-uart-hw- EmberZnet pure Zigbee
rcp-uart-802154- RCP MultiPan
ot-rcp- OpenThread Only

ZBDongle-E and ZB-GW04 v1.1 do not support hardware flow control. Yellow, SkyConnect and ZB-GW04 v1.2 are built with hardware flow control. Various baudrates are available as listed at the end of the filename.

Use NabuCasa's Universal-Silabs-Flasher to flash the .gbl files.

Building locally with VSCode

To build firmware locally, simply open this repository in the included devcontainer.

You can then use the Run Task feature and select "Select Manifest" to choose the manifest you want to build.

To build manually and keep build artifacts, run:

./tools/buildit.sh <manifest.yaml> --no-clean-build-dir

Support

If you would like to help support further development of my Silabs firmware projects consider buying me a coffee!

Buy Me A Coffee

About

Silicon Labs firmware builder

Resources

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • C 88.3%
  • Python 6.4%
  • ZAP 4.3%
  • Other 1.0%