Impressed by the H7 Plus and RT1062 - but why "only" 32 MB frame buffer RAM?

Hello!

I’ve recently been working with an Arduino Nicla Vision and quickly ran into the limitation of the available 1 MB RAM. The board crashed with models around 180 kB. This had me exploring alternatives and I happily found OpenMV H7 Plus and RT1062, with an extended frame buffer RAM of 32 MB (!!). The possibilities of larger models got me really happy, but raised some questions from me and I would really appreciate any input:

  1. What’s the reason of “only” extending the frame buffer to 32 MB? The board footprint would not be affected much with an extension of 1 GB or why not 2 GB or even 3 GB etc etc? I’m really curious of why the design choice was limited to 32 MB.

  2. In order to fully enjoy the benefits of the frame buffer RAM, I simply need to load the tflite file like this right?: " tf.load(‘model.tflite’, load_to_fb = True)"

  3. Excited about the 32 MB frame buffer RAM it got thinking about loading YOLOv8n as a tflite file of approx 3.2 MB. Has anyone successfully run inference using this model on either the H7 Plus or RT1062?

I’ve ordered both the H7 Plus and RT1062 and will try them out. I’m excited to compare them against the Nicla Vision. If anyone has any interesting advice of other cards to try out or other experiences I’m all ears!

Cheers,
Kurreman

maybe the least board quantity is 5000. and they don’t konw how many person will buy the 1GB board. :grinning:

1 Like

@kurreman

Thanks for using OpenMV!

So, to answer your questions:

  1. Microcontrollers only support SDRAM. The maximum sized SDRAM you can buy is only 64 MB per chip. We use the 32 MB per chip version as the cost is better than 64 MB, which is like 3x more expensive. 1GB/2GB/4GB chips are all DDR3/4 based, which require application processor chips that have DDR3/4 transceivers. These hardware blocks draw ALOT of power. On an application processor, most of your power draw is actually from moving data to and from the SDRAM versus power drawn from the processor CPU itself. To get the best power/performance/cost you really want a processor which has megabytes of onboard SRAM versus having to use any external RAM.

  2. Yes! Otherwise, the model ends up in the MicroPython Heap, which is 256 KB. Alternatively, you can directly pass the model file path to the actual call, and we will load it from disk on demand. However, this is much slower as you reload the model per frame.

  3. No one has run Yolo yet. The reason is that you’d get a very low sub-1 FPS frame rate on our current lineup of MCUs (this will change in the future, though). Edge Impulse instead recommends their FOMO model, which can achieve 30 FPS.

Thank you for a great reply!

I look forward to testing out your boards.