As part of my final year, I worked in a team of five undergraduates on a project given to us by ARM: to design and develop a complex proof-of-concept application for their new subthreshold M0+ processor, which is currently in development. We choose to build a device and develop an embedded Machine Learning algorithm, to recognise certain forms of exercise.
I was responsible for modelling the algorithm in Java, and then programming it in C, optimising its code and any required libraries to fit into the device’s tiny 8kB of memory. I successfully implemented a working system in just 4kB for both program code and runtime data, running at 106kHz. ARM was very happy with the results, with the project earning a first and my individual contribution was graded as joint-highest, awarding me 76%, a good first class grade.