2025-11-21 7:57 AM
Hi,
We're working on a new open source wildlife camera system and planning to use ST's 1.5 Mp and new 5 Mp image sensors with an STM32N6x7 series MCU for routine MIPI CSI-2 camera interface, ISP, h.264 video encoding, storage and possibly CNN (Convolutional Neural Network) inference with a separate STM32MP25x booting embedded Linux when advanced functionality is needed.
We were wondering if it would be a practical possibility at all to use an STM32MP25x series MPU with bare metal for routine MIPI CSI-2 camera interface, ISP, video encoding and storage tasks as well as for running embedded Linux or if this would be a theoretical possibility but potentially practically difficult to implement?
Moe about ST image sensors:
https://www.st.com/en/imaging-and-photonics-solutions/industrial-consumer-cmos-image-sensors.html
and about our conservation work:
https://new-homes-for-old-friends.cairnwater.com/quick-summary-new-homes-for-old-friends-belgium/
Thank you for your help! / Merci beaucoup !
Will
2025-11-21 8:21 AM
We did not offer bare-metal software for STM32MP25.
For your use case on STM32MP25 "MIPI CSI-2 camera interface, ISP, video encoding and storage tasks", we recommend to do all in Linux (CNN is also supported thru GPU/NPU more powerful than STM32N6).
https://wiki.st.com/stm32mpu/wiki/CSI_internal_peripheral
https://wiki.st.com/stm32mpu/wiki/How_to_use_the_DCMIPP_ISP
https://wiki.st.com/stm32mpu/wiki/VENC_internal_peripheral
https://wiki.st.com/stm32mpu/wiki/X-LINUX-AI_Developer_package
You can quickly try those using the STM257F-DK Board where you could also purchase camera and screen if needed.
https://wiki.st.com/stm32mpu/wiki/STM32MP257x-DKx_-_hardware_description
Linux open much more open storage (local, cloud, USB, etc...), various connectivity (WLAN, Ethernet, BT, etc...), and many 3rd party application access.
In your case, issue versus bare-metal is probably power consumption (and Linux wake-up time if you are willing to go in low power modes in between activity).
There is option to use Cortex-M33 for some real time and faster wake-up, but I'm not sure we could use CSI/DCMIPP/VENC (and I'm sure GPU/NPU will not be supported). And wake-up/power will never beat a pure MCU product like STM32N6.
So, if power is a strong concern, maybe better to stick to STM32N6.
Regards.
2025-11-21 8:49 AM
Hi Will,
It’s definitely possible in theory to use the STM32MP25x in a bare-metal setup for routine CSI-2 capture, ISP, video encoding and storage. But in practice, it’s going to be quite challenging.
The MP25x platform is really designed with Linux in mind. A lot of the camera, ISP and accelerator drivers are made to sit on top of the Linux ecosystem, and you’d need to re-implement a fair amount of that functionality yourself if you went bare-metal. Things like the V4L2 stack, DMA configuration for CSI-2, buffer management, and the interfaces for the hardware encoders are all handled much more smoothly under Linux.
If your routine workload needs to be extremely low-latency or very power-tight, bare-metal could be made to work but you should expect a large development overhead since ST doesn’t provide full bare-metal examples for these multimedia blocks.
A more realistic architecture would be:
Use STM32N6x7 for your regular camera + DSP + encode tasks (as you already plan).
Wake the STM32MP25x only when you need advanced processing or CNN workloads.
Keep the MP25x running Linux, where all the camera/ISP/AI acceleration support already exists.
That setup will save you a lot of time and headaches while still giving you the performance you want.
Hope this helps, and your conservation project looks fantastic really meaningful work.
Let me know if you want help comparing N6x7 vs MP25x capabilities more deeply.