Dual processing with H7 Portenta

Hi, is dual-core processing supported on OpenMV? I have an H7 Portenta that I’d like to try this on.

There’s a tutorial on how to get this one on Cpp via Arduino IDE, but unfortunately nothing Micropython.

PC

There’s some documentation here: Guide to GIGA R1 Dual Cores | Arduino Documentation

1 Like

Hi @kwagyeman, thanks for that. The tutorial on GIGA R1 is very clear but the package cannot be imported on my Portenta; simply says no module named 'msgpackrpc'. Could you please confirm if this the right library for micropython: msgpack-rpc/msgpack-rpc-python: MessagePack RPC implementation for Python

PC

Hi, running MicroPython + the M4 is not a part of the OpenMV code base. You need to install this: MicroPython on the GIGA R1 | Arduino Documentation

Please note that this feature is supported through the Arduino forums.

While OpenMV’s firmware runs MicroPython too, there are large differences in the functionality and modules exposed.

Thanks for confirming! Just curious if this will be implemented in the future. It would be cool to be able to fully utilise the potential of these dual processor devices

PC

Hi, yes, we plan to provide support for such things. Rather soon too. However, in a newer form. :slight_smile: Stay tuned.

1 Like

Actually I’ve recently added support for this feature, and it’s enabled for Giga and Portenta, see the Open-AMP example in the menu. Note that you still have to provide your own M4 firmware, there’s also an example for that. There very little memory for the M4 so it has to be < 64KB and its data/stack memory < 16KB. It can also be loaded executed from SDRAM, but this will require more changes.
The feature itself is not very useful, but as mentioned in the future we will have much more useful dual core support.

2 Likes

Sorry for the delayed follow-up, I just got back to this after fixing a few other priority issues in my application.

Is there a step-by-step tutorial on building your own firmware? I don’t fully understand the readme instructions.

  1. I have the files with me but how do I load things onto Portenta? Do I need a debugger?
  2. I have downloaded ARM GNU Toolchain. What do I do with the files really? Readme says that it should be installed somewhere in the path, that’s all.

Sorry if my query is too rudimentary. I am struggling to find resources to test this and have had no luck yet…

PC

Yes, or dfu-util as mentioned in the readme and flash the bin to the its address, or if it’s an elf you could copy it to storage/sdcard.

Install it somewhere and add it to the path. For example, /opt/arm-none-eabi/bin/.

Yes, it’s not easy. The readme should get through it though.

1 Like