STM32F429I-DISCO firmware uploading

Hi, I have some questions about openmv github project:

  1. How can I upload it into “disco” dev board, using ST-LINK (afaik DFU conflicts with SDRAM)?
  2. Maybe you have source code for STM32F429 chip?
  3. Any suggestions about working with code in windows (IDE or something to compile using your makefiles)?
    Thanks.

Hello, guys!
I’m really interesting on it too!!!
Please reply!

I’m finally compiled it working with Linux preinstalled arm-gcc-none-eabi compiler and using “make” from shell.
I think in Windows You can use Make for Windows
Good Luck!

Awsome, thank you man, will try it!

At first I got error after make:

make  -C micropython/stmhal BUILD=/home/rokko/openmv/src/build/micropython BOARD=OPENMV2
make[1]: Entering directory `/home/rokko/openmv/src/micropython/stmhal'
Makefile:5: *** Invalid BOARD specified.  Stop.
make[1]: Leaving directory `/home/rokko/openmv/src/micropython/stmhal'
make: *** [objs] Error 2

Then I changed TARGET ?= OPENMV2 to STM32F4DISC, and got these errors:

In file included from /home/rokko/openmv/src/micropython/py/mpconfig.h:45:0,
                 from main.c:13:
/home/rokko/openmv/src/micropython/stmhal/mpconfigport.h:222:0: error: "USE_DEVICE_MODE" redefined [-Werror]
 #define USE_DEVICE_MODE
 ^
<command-line>:0:0: note: this is the location of the previous definition
In file included from /home/rokko/openmv/src/micropython/stmhal/mpconfigport.h:226:0,
                 from /home/rokko/openmv/src/micropython/py/mpconfig.h:45,
                 from main.c:13:
/home/rokko/openmv/src/micropython/stmhal/boards/STM32F4DISC/mpconfigboard.h:1:0: error: "STM32F4DISC" redefined [-Werror]
 #define STM32F4DISC
 ^
<command-line>:0:0: note: this is the location of the previous definition
In file included from /usr/include/newlib/stdio.h:29:0,
                 from main.c:9:
/home/rokko/openmv/src/micropython/stmhal/mpconfigport.h:218:16: error: conflicting types for 'gc_alloc'
 #define malloc gc_alloc
                ^
In file included from main.c:25:0:
/home/rokko/openmv/src/micropython/py/gc.h:48:7: note: previous declaration of 'gc_alloc' was here
 void *gc_alloc(mp_uint_t n_bytes, bool has_finaliser);
       ^
In file included from /home/rokko/openmv/src/micropython/stmhal/usbdev/core/inc/usbd_core.h:34:0,
                 from main.c:51:
/home/rokko/openmv/src/micropython/stmhal/usbdev/core/inc/usbd_def.h:258:0: error: "MIN" redefined [-Werror]
 #define MIN(a, b)  (((a) < (b)) ? (a) : (b))
 ^
In file included from /home/rokko/openmv/src/micropython/py/qstr.h:30:0,
                 from main.c:16:
/home/rokko/openmv/src/micropython/py/misc.h:42:0: note: this is the location of the previous definition
 #define MIN(x, y) ((x) < (y) ? (x) : (y))
 ^
In file included from /home/rokko/openmv/src/micropython/stmhal/usbdev/core/inc/usbd_core.h:34:0,
                 from main.c:51:
/home/rokko/openmv/src/micropython/stmhal/usbdev/core/inc/usbd_def.h:259:0: error: "MAX" redefined [-Werror]
 #define MAX(a, b)  (((a) > (b)) ? (a) : (b))
 ^
In file included from /home/rokko/openmv/src/micropython/py/qstr.h:30:0,
                 from main.c:16:
/home/rokko/openmv/src/micropython/py/misc.h:45:0: note: this is the location of the previous definition
 #define MAX(x, y) ((x) > (y) ? (x) : (y))
 ^
main.c: In function 'flash_error':
main.c:175:19: error: 'LED_RED' undeclared (first use in this function)
         led_state(LED_RED, 0);
                   ^
main.c:175:19: note: each undeclared identifier is reported only once for each function it appears in
main.c: In function 'make_flash_fs':
main.c:239:15: error: 'LED_RED' undeclared (first use in this function)
     led_state(LED_RED, 1);
               ^
main.c: In function 'main':
main.c:292:15: error: 'LED_RED' undeclared (first use in this function)
     led_state(LED_RED, 1);
               ^
main.c:293:15: error: 'LED_GREEN' undeclared (first use in this function)
     led_state(LED_GREEN, 1);
               ^
main.c:294:15: error: 'LED_BLUE' undeclared (first use in this function)
     led_state(LED_BLUE, 1);
               ^
main.c:417:21: error: implicit declaration of function 'pyexec_str' [-Werror=implicit-function-declaration]
                     pyexec_str(usbdbg_get_script());
                     ^
cc1: all warnings being treated as errors
make[1]: *** [/home/rokko/openmv/src/build/omv/main.o] Error 1
make[1]: Leaving directory `/home/rokko/openmv/src/omv'
make: *** [objs] Error 2

Hey guys,

I am quite noob at this,
Did you guys update the firmware through USB OTG?

We use DFU mode. See the link above to the development environment.

Thanks for the reply.

I am using STM32F407 Disco board and it seems that it can still do the work.
https://groups.google.com/forum/#!topic/openmvcam/FlB0hM490jw

I have uploaded the OPENMV1/openmv.dfu which from https://github.com/openmv/openmv/tree/master/firmware/OPENMV1 in DFU mode using DfuseDemo,
But still cant connect to the openmv ide.Not even seeing port have been added to device manager on PC.

Any help will be appreciate

Hi, we don’t support what you are trying to do. The OPENMV1 firmware has more or less been abandoned (we don’t test it).

If you want to try to use our firmware Either pickup a firesale OpenMV Cam or pre-order an OpenMV Cam.

If you can fit the OpenMV Cam 2 firmware on the disco then there’s hope to get something running… but, again, our code has moved on from supporting the disco board really.

Thank you for the reply,

I have bought the openMV board yesterday!

Just thinking maybe my disco board will do the job, but failed :frowning:

Anyway thank alot

Make sure to install the dev environment and do firmware updates as we push new features. We plan to get the release firmware done by May.

Hello, I am quite new to this.
I bought H7 in KS and I am planning on testing micropython.
I have this STM32F429I-Disco (using the older version of ST-linkV2 not ST-linkV2-1).
Few thing I would like to do this board:

  1. Test openMV micropython.
  2. Test openMV micropython using different LCD, ILI9341 TFT and modify lcd160cr_test.py and test.
    Maybe use Adafruit tutorial MicroPython | CircuitPython Hardware: ILI9341 TFT & FeatherWing | Adafruit Learning System

At this moment it is not officially supported by micropython Board STM32F429 · micropython/micropython Wiki · GitHub and I havent tried micropython at all.
My questions are:

  1. From STM32F429I-DISCO firmware uploading - OpenMV Products - OpenMV Forums
BOARD=STM32F429DISC

should work and Ill be able to get these files?

bootloader.bin
bootloader.dfu
bootloader.elf
firmware.bin
firmware.dfu
firmware.elf
openmv.bin
openmv.dfu
uvc.bin
uvc.dfu
uvc.elf
  1. How to upload openMV to STM32F429I-Disco?

Hi, we really can’t help with this. I honestly don’t know. The board isn’t made by us nor is it supported by us. If you want to target MicroPython to it you’ll really going to have to fight compiler issues and work through them.

You can open a thread on the micropython forums and ask for help. However, it’s not a board supported by them either.

Any reason for not just buying a supported board?

Hello, I was in the impression that you had some testing and prototyping using STM32F429I-DISCO board.
You have a schematic for that board also: http://forums.openmv.io/viewtopic.php?f=5&t=11&p=33&hilit=STM32F429#p6155.

My STM32F429I-DISCO is just collecting dust and is not even working on STM32duino. I thought it might be of some use on openMV and try to do some micropython before my actual H7 arrive.

If you happen to have the hex file for this https://github.com/openmv/openmv-boards/blob/master/openmv-sdr/openmv-sdr.pdf please upload on github.
Or maybe add on https://github.com/openmv/openmv/tree/master/firmware as OPENMV2-SDR?

Oh, yeah that camera. Um, we haven’t touched that in 3 years. No clue where the source is for that. Ibrahim might know.

He said just for only for reference.
Thanks for the reply…

http://forums.openmv.io/viewtopic.php?p=6171#p6171