Portenta Vision Shield micro-python on the M4 core?

Most of my Portenta programs are completely interchangeable between the M7 and M4 core especially since Arduino has improved the RPC communication with the M4 println.

Wondering if the OpenMv code could be placed on the M4 core. I have another thread talking about RPC communication between python and C++ and the two cores.

Just thinking that it would be an impressive move to have the vision shield fully on the M4 core and the M7 core would then act like a regular Arduino using Arduino software. Any chance of this in the near or far future?

1 Like

No, you’d want this to be the other way around with the M7 running the vision code will need the extra power.

As for the M4, we’d likely allow that to be programmed as an Arduino in the future.

From OpenMV’s point of view I agree the M7 core is probably the best place for your firmware as it is faster and almost has as much memory as the Nan0o 33 BLE, but from an Arduino users point of view having options is always better than no options. I believe the M7 core is faster but my results suggest that the M4 core can store a larger Machine Learning model by quite a bit. See image of several boards I tested.

Link to higher resolution image: my-examples-for-the-arduino-portentaH7/crashTest04.png at master · hpssjellis/my-examples-for-the-arduino-portentaH7 · GitHub


If the image is hard to understand the M7 core could run 14 x 100 node, dense layers ( model_tflite_len = 534,748 ) whereas the M4 core ran 20 x 100 node, dense layers ( model_tflite_len = 780,148 ) in a multilayer minimally trained neural network. Those few extra layers might be the difference between a big model running and not working at all. No rush, but to have the option to use either core might be very useful in the future.

Another bonus for Arduino users is that having OpenMV on the M4 core, would mean that the user experience on the PortentaH7 would be as normal as possible just with RPC communication with the Vision Shield. Would be very easy even for beginners to work with the Portenta Vision Shield.

I’ve told Arduino about your request. Getting Ethernet working first is a priority.

Any implementation will likely have the M4 core running code from SDRAM. It’s not clear how the programming setup will work.