Arduino Nano 33 limitations and performance on image classification


I have assigned my students the below projects to work on Edge impulse using the TinyML kit. However, I would like to ask, with respect to your experience and the product specifications, which can work with the Arduino Nano 33 sense and which requires a Raspberry pi or ESP32-CAM:

  1. Pothole detection and localization (Image based)
  2. Smart bird feeder for bird recognition (Image, might include sound later)
  3. Eye test based on speech recognition

I am still not fully aware of the Arduino 33 sene maximum capabilities and limitations when implementing tinyML image based applications

Thank you

Hi @Ghattas,

The Nano 33 can handle a lot of different applications, including low-resolution image classification, keyword spotting, and low-sample-rate sensor data (e.g. motion/gesture recognition with accelerometers).

Anything that requires object localization and/or detection will run very poorly (or not at all) on the Nano. For #1, you will probably need an ESP32, OpenMV Cam, or Pi. If #2 is just image classification, that will likely run decently well on the Nano. Assuming that #3 is keyword spotting, that should run on a Nano.

Hello @shawn_edgeimpulse

Thank you for the prompt reply!
I will experiment with the Nano on the 3 topics in order to check its performance and the resolution

  1. for the first project, It can be made to only say that there is a pothole here or not. I think this way it can be treated as an image classification problem and run on the Nano.

  2. for this one it should classify which bird it is from for example 5 pre trained bird species. But I am guessing from your previous answer that it will not be able to handle more than one bird in an image ? Is the Raspberry PI 3 B+ compatible with EdgeImpulse for these kind of applications?

  3. The system will be trained to detect some letters a, b, c ,d etc… Therefore it should work with no issues

Thank you again it is much appreciated

Hi @Ghattas,

For #2, the Nano should support multiple classes. In my experience, you start running into issues over about 5-6 classes, as you start needing more complex models and/or better resolution.

Hello @shawn_edgeimpulse

Wonderful thank you!

Hello again,

I just a final question concerning this thread. Does Edge Impulse support Raspberry PI 3 B+, if yes is there any guide to setting it up? Mainly for project 2
I can only find Raspberry PI 4 as supported board in the documentation, however from a simple search in the forum some threads discuss Raspberry PI 3

Thank you

Hello @Ghattas,

I managed to run EI models on the RPI 3B+ when we released the Linux support about a year and a half ago. I have to say that I haven’t tested it again since.
You should be able to set it up smoothly using the same tutorial as the RPI4 but I cannot 100% guarantee it will work. If the edge-impulse-linux cli does not fully work, the Python SDK and the C++ build should work! Just keep in mind that it will be a bit slower than the inference time you will obtain from the studio.

Do not hesitate to let us know if everything works as expected, I am sure many people would be interested too!



1 Like


That’s great, thank you! I will do a small test following the tutorial of the PI4 to double check.