Close

Rev 2 motion devboard

A project log for 1 dollar TinyML

Can we build Machine Learning enabled sensor for under 1 USD?

jon-nordbyJon Nordby 11/11/2025 at 23:060 Comments

Back in January I finished the rev 2 board (mentioned in previous post). Liam from PCBWay kindly offered to sponsor the board. It was finished and arrived in just a few weeks time. The board is very well-made, as I have come to expect from PCBWay them (I use them also for work).

I have confirmed that I can program the microcontroller and done some basic checks of the LEDs, etc. Unfortunately, this year has been very busy, so I have been unable to do more checks of the board.

However, I was able to improve the software stack for doing motion classification with the emlearn machine learning library.
There is now a C implementation of a motion preprocessor/ feature extractor, in addition to the MicroPython motion preprocessing code that already existed.
Last Christmas I also created an example project, an automatic toothbrush timer that uses the accelerometer to track time being actively spent brushing. It is currently running MicroPython with emlearn-micropython on an ESP32-based device from M5Stack. I am now porting the toothbrush firmware to this board, using the above C preprocessing code.

Motion during toothbrush session
Motion decomposed into different features: orientation, overall energy, and energy per frequency band (using FFT)

Trying out the board for the toothbrush usecase revealed a few shortcomings. The main one being that it would be nice to have a USB Type-C socket instead of Type A edge connector, to avoid something sticking out of the device. For now I have done a quick hack by soldering on an external USB Type-C connector breakout. But this is something I am considering changing for future revisions.

Toothbrush timer with quick adaptation of board
USB Type C connector was retrofitted. Needs some firmware work for the Puya PY32F microcontroller.

Discussions