Bluetooth LE firmware for OpenDisplay tags (Silicon Labs EFR32BG22).
From cmake_gcc/:
cmake --preset project && cmake --build --preset default_configOr from this directory:
./build-and-flash.sh --no-flashFlash + optional RTT: ./build-and-flash.sh (needs Simplicity Commander and J-Link as in the script help).
cmake_gcc/opendisplay-bg22.cmake is generated by Simplicity Studio / SLC. This repository keeps SDK_PATH empty and uses the in-tree simplicity_sdk_* tree plus third_party/silabs_app_properties/ so Conan paths are not required for a normal build. If Studio regeneration puts a machine-specific SDK_PATH back, you can clear it again if you are not pulling app_properties.c from that path.
simplicity_sdk_*— vendored SDK copy used by the build.autogen/— GATT, linker fragments, and other generated files.artifacts/— optional output frombuild-and-flash.sh(gitignored).bootloader-artifact/opendisplay-bootloader.s37— prebuilt bootloader + Apploader for full flash (seebootloader-artifact/README.md).
Workflows live in .github/workflows/ (this repository must be the GitHub repo root so those paths resolve).
ci.yml— on pull requests and pushes tomain/master: installsgcc-arm-none-eabi, runscmake --preset projectwith-DOD_GENERATE_GBL_OTA=OFF(no Simplicity Commander in CI), setsOPENDISPLAY_BUILD_IDto the PR number or commit, uploads.s37/.hexas workflow artifacts.release.yml— when a GitHub Release is created: reads the tagvMAJOR.MINOR(optional patch segment is ignored for the 16-bit BLE version), passesOD_APP_VERSION(high byte = major, low = minor),OPENDISPLAY_BUILD_ID(vVERSION+shortsha), andSL_APPLICATION_VERSION(same 16-bit numeric encoding for Silicon Labs app properties), unpacks Silicon Labscommander-clifromSimplicityCommander-Linux.zip(innerCommander-cli_linux_*.tar.bz) to rungbl createlike localbuild-and-flash.sh, stages versioned files undercmake_gcc/release/, and attaches each file to the release (no bundle zip). There is no supported third-party substitute for Silicon Labs GBL generation.
Release tags must use MAJOR and MINOR in 0..255 (e.g. v1.26). The release includes bootloader-apploader-vVERSION.s37 when the in-repo bootloader-artifact/ file was copied into cmake_gcc/build/base/ during the build.