Skip to content

cziter15/silabs-firmware-builder

 
 

Repository files navigation

Silicon Labs firmware builder repository

This repository contains Dockerfiles and GitHub actions which build Silicon Labs firmware for Home Assistant Yellow and SkyConnect, Sonoff ZBDongle-E and EasyIot ZB-GW04 v1.1 and v1.2.

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. This is a fork of the NabuCasa silabs firmware builder, adding support for additional hardware.

Three firmware variants are available:

  • EmberZNet NCP for Zigbee-only environments, for direct use with Zigbee2MQTT, ZHA or Zigpy or other Zigbee stacks
  • RCP Multi-PAN firmware for concurrent communication over Zigbee and Thread
  • OpenThread RCP firmware (experimental) Thread-only

RCP Multi-PAN firmware is for use with Home Assistant SiliconLabs Multiprotocol add-on and OpenThread RCP firmware is for OpenThread Border Router add-on

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 addon 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 end of filename.

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

Building locally

To build a firmware locally the build container can be reused. If you use VSCode then simply open the included devcontainer. Or you can manually start the container locally using Docker, with a build directory bind-mounted, e.g.

docker run --rm -it \
  --user builder \
  -v $(pwd)/build:/build \
  ghcr.io/darkxst/silabs-firmware-builder:4.2.2

To generate a project, use slc generate. To replicate/debug build issues in an existing GitHub action, it is often helpful to just copy the command from the "Generate Firmware Project" step.

  slc generate \
      --with="MGM210PA32JIA,simple_led:board_activity" \
      --project-file="/gecko_sdk/protocol/openthread/sample-apps/ot-ncp/rcp-uart-802154.slcp" \
      --export-destination=rcp-uart-802154-yellow \
      --copy-proj-sources --new-project --force \
      --configuration=""

Then build it using commands from the "Build Firmware" step:

cd rcp-uart-802154-yellow
make -f rcp-uart-802154.Makefile release

Releases

No releases published

Packages

 
 
 

Languages

  • Dockerfile 100.0%