Want to use openMV in STM32F429DISC

HI, guys !
I have a STM32F429DISC board, and I found that:https://hackaday.io/project/1313-openmv/details.So that I want to port openMV in my board .

Then I change BOOTLOADER code: use USB_HS_IN_FS make a VCP device , change STM32F427xx in STM32F429xx and some other F429 config.

after that , I cp omv/boards/OPENMV2 in omv/boards/STM32F429DISC, because I found that Mircopython support STM32F429DISC. Also I change something about FLASH , LD file.

I use cmd make a binary file


when I connected my board to PC , it just show UNKNOWN DEVICE.

I found that OPENMV2 are not support, but can you get some advices on porting openMV to STM32F429DISC.

OS: WINDOWS 10 pro
VM: ubuntu 14.04
arm-none-linux-gcc: 5.6.1
and I also install openmv and st VCP driver


Hi, figuring out the USB stuff is a complete nightmare. We can’t really help you with that. All we can tell you is that the top level application code will run on that board. As for the USB stuff, you have to figure that out yourself. The binary targets the STM32F427 directly and ST parts are usually binary comparable if only the peripherals change.

thank for your reply, and I have a question : it is bootloader code make USB only work in VCP or a composite device ?


The bootloader is just a VCP device.

thanks for your answer,
I try to make a MDK project with the same code and then USB work normally. So I think maybe I should figure out ld file and starup.s . :smiley:

Today, I use cmd to make an assembly file

 arm-none-linux-objdump -d bootloader.elf > boot.dis

AND I found a symbol name OTG_FS_IRQHandler, but I want is OTG_HS_IRQHandler ,so I change stm32fxxx_it.c /.h .

after that PC can recognize USB and I can see OpenMV Cam USB COM Port :smiley:

but a new problem is emerging : when program jump to omv app , it allways run lable soft_reset :astonished:

Yes, the OpenMV C main firmware is a different USB application. You need to fix the issue for both the bootloader and the application.

I found that problem is uninit SENSOR and I have a 7670 which openMV did no support . but I can imitate other sensor driver.

Hi guys,
when program run in func sensor_init(), it will allways keep in HAL_I2C_IsDeviceReady(). So I make DEBUG=1, however the file size overflow .
so how can I to reduce the firmware.elf file size ? Remove some img module which not working well in F4 ?but i dont known which one.

thanks! :smiley:

Remove anything you don’t need. It is sufficient to just comment out the pymethod and the link in the c function pointer dictionary in py_image.c


Finally, I dont remove any.

I connect pins fllow the openmv sdr and try to use SCCB to read OV7670 ID via MDK project , but it does not work.

Today I try to fllow openmv2 pins . It is suprise that I can read the device ID . And now I can see a color bar in OPENMV IDE , just with 2.5 FPS , but thai is a good beginning.:smiley:

Hello, how far were you able to do it? Were you able to make it work? Can you provide steps on how to do it? Or just maybe hex file be enough. I have OV7725, maybe it could have less or no error at all.