
Introduction
The open source, MCU-based OpenMV cameras and shields are popular devices for computer vision projects due to their low cost, user-friendly documentation, and excellent community. They are also easy to program, with Python and the OpenMV IDE. The new OpenMV RT1062 is the most powerful version yet; its features are truly outstanding:- ARM Cortex M7 processor running at 600 MHz
- OV5640 image sensor capable of taking 2592x1944 (5MP) images
- 32MBs SDRAM, 1MB of SRAM and 16 MB of program/storage flash
- I/O pins
- microSD slot capable of 25MB/s reads/writes
- A SPI bus that can run up to 60Mb/s
- An onboard RTC which keeps running when the system is in low-power mode
- A 12-bit X/Y/Z accelerometer (2/4/8g)
- Onboard WiFi (a/b/g/n - 11/54/65 Mb/s) and Bluetooth (v5.1 – BR/EDR/BLE)
- Onboard 10/100 Mb/s Ethernet
- A LiPo battery connector
Classification Models
For this project I have trained a simple classification model using Edge Impulse. I took 30 pictures of a Lego figure and 30 pictures of a small blue ball. I have created an Impulse with 96x96 px images and a Classification Learning Block. These items are very distinct from one another so the classification is quite easy from a machine learning perspective, but that is because we are more interested in evaluating the performance and ease of use of the OpenMV RT1062 here. In the future we could always explore more difficult ML tasks.


.zip
file that was generated and downloaded. I connected the OpenMV camera to my computer with a USB-C cable, and copied the labels.txt
and trained .tflite
files to the camera, which conveniently exposes itself as a USB drive when connected.

OpenMV Setup
I have downloaded the OpenMV IDE from https://openmv.io/pages/download. The IDE is available for Windows, Mac and Ubuntu Linux. I have created a MicroPython script based on the example classification script included in the .zip file, but with small modifications to measure inference time.
SXGA
.
After this change I was able to increase the resolution up to 1024x1024.

Measuring Power Consumption
The OpenMV FAQs state that the OpenMV Cam consumes about 100 mA while idle, and 140 mA when processing images. However, it’s important to note that there are several OpenMV Cam models (such as the RT1062, H7 Plus, and H7 R2) and ML inferences could increase the power consumption, so I soldered two headers to VIN and GND pins and I put a Multimeter in series with the power lines to make my own tests.


Note: Because I utilized the low resolution ammeter feature of a general-purpose multimeter, the measurement of power consumption may not be entirely accurate and precision equipment should be used for highly detailed investigation if needed.

OpenMV Status
The OpenMV Cam has an on-board LED with blinking patterns related to different board states.- Green: Bootloader is running
- Blue: The board is executing
main.py
script - White: Firmware is panicking from a hardware failure