To run the application:
1.) Install STM32CubeIDE from here
2.) Clone the repo and change to the code
directory
3.) Build and run the project using the IDE
The application was tested on STM32F413ZH Nucleo-144 containing ARM Cortex M4 so I cannot guarantee for other MCUs.
This Medium Article describes the structure and state diagram of the application.