Deep Learning models usually require a considerable amount of resources for inference. We are interested in running neural networks on low power embedded systems with limited available resources.

What it does

In this project, handwritten digits are classified on a Micro-controller with 2MB Flash/256+4KB RAM.

How I built it

We have trained a simple Convolutional Neural Network using TensorFlow2.0 and Keras on MNIST data-set. Using STM32CUBEMX.AI we converted the saved model to C files and integrated to the reset of our project.

Challenges I ran into

Importing the generate C files for the network into the main project and running inference. Converting user input from the LCD touch screen to appropriate tensor to feed to the CNN.
Creating GUI on LCD.

Accomplishments that I'm proud of

The entire network only needs 157 KBytes of RAM and 1.2 Mbytes of flash

What I learned

What's next for Handwritten Digit Recognition On Microcontroller

Built With

  • stm32f429i-disc1
  • stm32f429zi-mcu
  • tensoflow2.0
Share this project: