A small experiment with https://www.arduino.cc and Modern C++ (C++14 for dev, C++20 for testing).
> Goal
* Verify whether development/simulation can be done fully online and with Modern C++.
> Tools
* Design: Plant UML - https://bit.ly/2GRos5N
* Development: Compiler Explorer - https://godbolt.org/z/MfMdj9
* Implementation/State Machine: SML - https://github.com/boost-ext/sml
* Unit Testing: UT - https://github.com/boost-ext/ut
* Simulation: Tinker Cad - https://www.tinkercad.com/things/8rDYx57Ns7Q
> Key takeaways
* Compiler Explorer made it really easy to develop/test with different compilers
* State Machines are great abstractions for hardware/bare metal
* SML produced a fully optimized code for the AVR compiler
* Tinker Cad made it really easy to simulate the results