- Users produce yaml describing a microcontroller connected to (sensors, inputs, outputs, networks, services, etc).
- A python layer type checks that yaml, and spits out autogenerated C++ code (which can be inspected if desired)
- C++ is compiled and installed onto the hardware
- future updates can be made OTA
- extensible by either writing (hopefully small amounts of) C++ inside yaml (lambdas), or including/referencing C++ code (external components)
I’m still not positive I like yaml for the DSL, but that might be a personal bias and I’m not sure what an obviously better solution would be.