Original cube mx project fully refactored. Squashed learning_test_usart branch here.