This repository is a template to create a new module firmware for Jacdac.
The full build instructions are available at https://github.com/microsoft/jacdac-stm32x0/blob/main/README.md. This is also where you learn more about this repo.
To pull the submodule sources, run
git submodule update --init --recursive && git pull
Follow these steps to update the file structure to reflect your module.
- update
jacdac-stm32
andjacdac-c
submodules (eg., withmake update-submodules
) - copy
targets/_example/
totargets/buzzer-v1.0/
(replacingbuzzer-v1.0
with the name of the module or series of modules) - edit
targets/buzzer-v1.0/board.h
to match your module - you likely do not need to edit
targets/buzzer-v1.0/config.mk
, unless using F0 chip - edit
targets/buzzer-v1.0/profile/module.c
to include your module name and used services (follow comments inmodule.c
); see jd_services.h for list of services - rename
module.c
to match the type of module (eg.buzzer.c
) - if you have several modules with non-conflicting
board.h
definitions, you can create more files undertargets/buzzer-v1.0/profile/
; otherwise you'll need to createtargets/thermocouple-v1.0
or something similar - edit
Makefile.user
to setTRG
, eg.TRG = targets/buzzer-v1.0/profile/buzzer.c
- run
make
; this will generate a new unique identifier and place as an argument ofFIRMWARE_IDENTIFIER
macro
make sure to never change the firmware identifier number, as that will break future firmware updates
Erase this section once you are done with the setup
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.