git clone --recurse-submodules [email protected]:teufelaudio/mynd-firmware.git
mkdir build && cd build
cmake -DPROJECT=Mynd -DTOOLCHAIN_PREFIX=<path to compiler> -DCMAKE_BUILD_TYPE=Release ..
make mynd-update-firmware-mcu
drivers
- Basic stm I/O driversfirmwares
- Third-party firmwares (Bluetooth, USB-PD controller)gitversion
- Version string generatorProjects
Mynd
- Source code for MCU firmwareMyndBootloader
- Source code for bootloader
sdk
- Board support packagesupport
cmake
- Cmake helpers for stm32 components and other librariesdocker-build
- Configuration for docker buildkeys
- Keys to sign firmware update file (Only for tests! They are not used.)scripts
- Helper scripts for build and CI/CDsvd
- Hardware description file - internal registers outline
There are two main workflows:
- Docker Publish Workflow (
.github/workflows/docker-publish.yml
):
- This workflow builds the Docker image (
myndfirmware:latest
) and publishes it to the repository owner's GitHub Container Registry (GHCR).- You must run this workflow manually whenever you update the Dockerfile or before running the build workflow for the first time.
- This ensures the latest build environment is available for building the Mynd firmware.
- Build Workflow (
.github/workflows/ci.yml
):
- This workflow runs automatically on pushes, pull requests, or can be triggered manually.
- It pulls the
myndfirmware:latest
image from GHCR to build the firmware and bootloader.- If the Docker image has not been published yet, the build workflow will fail.
- Always make sure the Docker Publish workflow has completed successfully before running or relying on the build workflow.
- It pulls the
Summary:
- Run the Docker Publish workflow first to build and push the Docker image.
- Then, run the Build workflow to build and upload the firmware artifacts.