https://annegautham.github.io/posts/stm-firmware/