From my previous experiments with the Portenta H7, I had installed a multi-core version of blink with one core flashing green and the other blue. I was keen to know if the M4 core would still boot if I loaded MicroPython code on the M7 core.


I clipped on the Vision shield and plugged it in. Arduino recommend using the OpenMV IDE for developing for this shield, so I fired that up and pressed the connect button. It failed to find the board so I gave the reset button a double-tap and pressed connect again.

OpenMV A vision enabled IDE

OpenMV prompted me to install the latest Firmware which I did.

OpenMV firmware install prompt, install latest or other versions

I ran the "Hello World" example and confirmed that it was connecting to the camera and generating an image. The camera is black and white so the default RGB histogram shows the same thing on each graph. But you can swap this out with a grayscale one.

Camera output with image analysis Grayscale Histogram

Noticeably the LED was not blinking which suggested the M4 core was not running. I had a look around the IDE for settings, I found the options to turn on Wifi at boot but strangely pressing cancel on that broke some of the menus. So I rebooted and was prompted with a new message. So I now don't know if the M4 is not running or if it is that the Pin is taken by the M7 core. I suspect it is the first but perhaps need to find a different way to check the M4 core. And need to find a way of booting that core from Python and/or modifying the bootload to start both.


The IDE did prompt me with a tip to look at some examples so I opened one of the Arduino examples and hovered over the library that was imported to be prompted with a bunch of tips. However running the example told me that UART 3 did not exist and broke the File and Tools menu again, they just don't pop down anymore, but edit, help menus did work.  There is some IntelliSense on the IDE but it is not context-sensitive so I am not sure how much use that will be. The examples did show me that it is the pyb library that will hold all the board-specific features so I'll perhaps look into there to get more detail.

Open MV providing tips in a popupOpen MV Intellisense

So I rebooted the IDE again and loaded up a Face detection example. That worked well and was fast to draw the boxes. It only detects when you are looking at the camera.

Open MV Face example with border around a face

The python code looks easy to adapt to my needs and there are many examples for manipulating images I can learn from and adapt.


So a promising start but there is obviously work to be done by the Arduino/OpenMV team. For me the main challenge will be getting the M4 core to boot which I want to do so I can run some NeoPixels along with my vision detection.