Stress Test Arduinos

I like to stress test Arduinos with Machine Learning models. Does anyone have an Edge Impulse Large Multi-label Model of either: Motion, Sound or Images that works on microcontrollers that they could export an Arduino library of and share it with me?

To share the library you would have to put it on github or a website. Here is an example of a poorly trained motion sensor, for the NANO 33 BLE Sense detecting the letters W,O,R,D,S

https://github.com/hpssjellis/my-examples-of-edge-impulse/tree/main/libaries-arduino

I guess you could fork my Github above, load your model and send a PR (Pull Request.)

Here is an image of a previous stress test of the Seeeduino XIAO, PortentaH7, Nano33BLESense. Running hidden layers with 100 dense connected nodes. The PortentaH7 Inner M4 core doing the best with 20 layers before crashing.

@Rocksetta I’ve emailed you three models. I’m wondering a bit about how you do the testing though in the example above. The model indeed has a lot of layers, but it’s all 100x100 layers so memory usage per layer does not exceed ~10K RAM, and I see ~18K required arena size for even the largest ones (by doing a quick calculation). So I’m surprised to see devices crashing here, as the main component here is amount of flash required (and you figure that out already when compiling).

E.g. here’s a model with 25 hidden layers of 100 neurons each (input layer is 99 neurons, output layer is 4 neurons):

EON

image

TFLite

image

So this seems to be no problem for most targets that have enough flash. Tested this on the Nano 33 BLE Sense (Arduino export from Edge Impulse) and that works fine.

Thanks for the models. My models were densely connected without any quantization. So our results will be extremely different. I just kept adding layers until the boards crashed. I agree it was not very well thought out, but was my only crash test I could do at the time. Link here, reduce the batches and click the button. I then had to convert the TFJS models to c header files and load them on the boards. Sounds like a lot of work but only took about a day.

It also told me which boards could even run models. I could not get the Nano 33 IOT working at all (but it should), or the ESP 32 using regular TensorflowLite. I was very impressed with the compile speed of the $5.00 USD SeeeduinoXIAO and it’s very cool expansion board even though it is rather short on memory and pins.