OpenMV2 on STM32F429I-DISCO board

702 views
Skip to first unread message

王宪

unread,
Oct 25, 2014, 12:25:47 AM10/25/14
to open...@googlegroups.com
Hello, I failed to get the pre-order of OpenMV1 HW this time. However I'm trying to boot up the OpenMV2 on an STM32F429I-DISCO board, with the same OV2640 camera. Is there any other thing required to do with the source tree after alternating the pin assignments? Also may I ask whether the compilation process requires Python3 instead of Python2? (For Micropython). Thanks so much.

Ibrahim Abdelkader

unread,
Oct 25, 2014, 12:52:40 AM10/25/14
to open...@googlegroups.com
Hi, try:
make clean && make -j5 TARGET=OPENMV2 

You'll get some errors when building, I haven't updated the OMV2 build for a while, try commenting/fix stuff.. also make sure the SDRAM timings are correct, and the bus width (I'm using an 8-bit bus).

Other than that it should work, I built an image a few days ago for testing something.

Python2 works to build MicroPython (it's used to run some scripts) make sure you checked the submodule.
Message has been deleted

王宪

unread,
Oct 25, 2014, 1:00:40 AM10/25/14
to open...@googlegroups.com
Hi,

Yes I tried that yesterday. However I found inside the link script (src/omv/stm32f4xx.ld.S), there are following section:

SECTIONS
{
/* The startup code goes first into FLASH */
.isr_vector :
{
. = ALIGN(4);
KEEP(*(.isr_vector)) /* Startup code */
. = ALIGN(4);
*/ff.o(.text*)
*/ccsbcs.o(.text*)
*/stm32f4xx_hal.o(.text*)
*/stm32f4xx_hal_msp.o(.text*)
*/stm32f4xx_hal_spi.o(.text*)
*/stm32f4xx_ll_usb.o(.text*)
. = ALIGN(4);
} >FLASH_ISR

It seems the following part has caused FLASH_ISR section to overflow. Could you explain why you put those inside FLASH_ISR instead of TEXT? Thanks.


*/ff.o(.text*)
*/ccsbcs.o(.text*)
*/stm32f4xx_hal.o(.text*)
*/stm32f4xx_hal_msp.o(.text*)
*/stm32f4xx_hal_spi.o(.text*)
*/stm32f4xx_ll_usb.o(.text*)

Ibrahim Abdelkader

unread,
Oct 25, 2014, 1:07:13 AM10/25/14
to open...@googlegroups.com
Because the ISR section is mostly unused except for the ISR vector, this way this section is utilized better to conserve flash on OMV1.

On OMV2 it overflows because those objects are bigger on OMV2, but it doesn't matter really because it has 2MB flash, so you can remove all the *.o from the ISR section if you want.

Ibrahim Abdelkader

unread,
Oct 25, 2014, 1:08:46 AM10/25/14
to open...@googlegroups.com
It might be best to direct all dev issues to github for future reference.


On Saturday, October 25, 2014 6:25:47 AM UTC+2, 王宪 wrote:

王宪

unread,
Oct 25, 2014, 1:10:38 AM10/25/14
to open...@googlegroups.com
OK thanks for the clarification.

I will figure it out then. May I ask whether you were using this STM32F429 Discovery board for developing OMV2? If so I may not need to change the SDRAM timing.

Also, did you try to put the python code onto SD card? I haven't found where inside your source tree that connects to the IDE so I haven't got the place to modify now.

王宪

unread,
Oct 25, 2014, 1:12:20 AM10/25/14
to open...@googlegroups.com
OK. I will try to debug and get it up on Discovery then maybe I post this issue and submit the change to github? How about creating a branch for OMV2?

Ibrahim Abdelkader

unread,
Oct 25, 2014, 1:31:36 AM10/25/14
to open...@googlegroups.com
I will figure it out then. May I ask whether you were using this STM32F429 Discovery board for developing OMV2? If so I may not need to change the SDRAM timing.

No I just started dev on my hw, timings may look the same -but they are probably not- because it's the same brand/series (ISSI)
 
Also, did you try to put the python code onto SD card? I haven't found where inside your source tree that connects to the IDE so I haven't got the place to modify now.
 
Do you mean can you execute Python scripts from SD ? Yes, on boot the camera tries to mount SD on "/", if it's not detected, it mounts internal flash instead, and then executes /main.py, you could store other python modules too on SD or internal flash.

The IDE uses USB vendor requests to communicate with the camera (see usbdbg.c and usbd_cdc_msc_hid.c in micropython) it sends code to be executed on the fly, it doesn't save it to storage yet, but you could just copy the script to SD for now

Ibrahim Abdelkader

unread,
Oct 25, 2014, 1:37:32 AM10/25/14
to open...@googlegroups.com
OK. I will try to debug and get it up on Discovery then maybe I post this issue and submit the change to github?

Sure, all patches/PRs are welcome :) 
 
How about creating a branch for OMV2?

I'm not sure what to do with OMV2 yet, I was thinking maybe it should be moved to a separate repo.

王宪

unread,
Oct 25, 2014, 1:57:57 AM10/25/14
to open...@googlegroups.com
Good. I will work on this F429 discovery board first. Will contact you again before submitting. Thanks.

王宪

unread,
Oct 27, 2014, 1:33:19 AM10/27/14
to open...@googlegroups.com
Are you using USB2.0  High Speed for connecting to host? Basing on your current bandwidth utilization, do you predict a USB 2.0 Full speed connection to be fast enough?

在 2014年10月25日星期六UTC+8下午1时37分32秒,Ibrahim Abdelkader写道:

Ibrahim Abdelkader

unread,
Oct 27, 2014, 1:57:23 AM10/27/14
to
USB HS requires an external PHY (at least on the 40x) and the DFU bootloader is available only on the FS (on all parts ?).

王宪

unread,
Oct 27, 2014, 2:01:55 AM10/27/14
to open...@googlegroups.com
I'm not using the DFU bootloader now and the issue is STM32F429I-DISCO only provides USB OTG FS interface, without that external PHY. That's why I'm wondering how you connected through USB to the IDE. As I saw in Micropython directory, it seems to be HS interface with the external PHY?

在 2014年10月27日星期一UTC+8下午1时57分23秒,Ibrahim Abdelkader写道:
USB HS requires an external PHY (at least on the 40x) and the DFU bootloader is available only on the FS (on all parts ?).
On Monday, October 27, 2014 7:33:19 AM UTC+2, 王宪 wrote:

Ibrahim Abdelkader

unread,
Oct 27, 2014, 3:09:37 AM10/27/14
to open...@googlegroups.com
No OTG FS is used there's no external PHY on the pyboard or mine (I'm not providing VBUS power or connecting the ID pin though, so device mode only)

Steve Gulick

unread,
Oct 27, 2014, 9:15:00 AM10/27/14
to open...@googlegroups.com
Seems like OTG would be very useful to have on openMV2. It would allow hooking up USB modems, WiFi adapters, etc. The STM32F429I-DISCO has OTG and the schematic shows only 2 extra chips.

I have one of the first batch of the openMV1 -like it very much and am looking forward to openMV2!

Thanks,
Steve

Ibrahim Abdelkader

unread,
Oct 27, 2014, 10:57:48 AM10/27/14
to open...@googlegroups.com
Probably a power switch and a step-up regulator, but you would still need drivers/stacks for those devices to work and they draw lots of current, plus I think other than mouses/keyboards most USB devices are HS.

We have plans for some shields to cover connectivity like (BLE/WiFi) and also other stuff like IR, Video out and IMU.

王宪

unread,
Oct 27, 2014, 11:00:58 AM10/27/14
to open...@googlegroups.com
I'll be interested to take part in this work to add BLE/WiFi and IMU. Also I would like to propose why not put OMV2 onto a Discovery board? Seems that thing has almost everything we need at an affordable cost. MP of our own HW always brings some trouble. That's where I come from.

However, I'm also interested in an idea of face tracking application with super low cost BOM. Maybe that one can become a Kickstarter idea.

在 2014年10月27日星期一UTC+8下午10时57分48秒,Ibrahim Abdelkader写道:

Ibrahim Abdelkader

unread,
Oct 27, 2014, 11:41:41 AM10/27/14
to open...@googlegroups.com
Mostly because it's a compact single board solution Vs. discovery board/wires/camera and uSD, which will probably be cheaper too, but you usually go from prototyping with a dev-board like the disco to own HW not the other way around :).. Anyway, the software/framework is out there, so anyone can use it on a discovery board if they want, in fact we could make it an "official" thing, like OpenMV on a bread-board, it's all cool as long as it's for the greater good :)

BTW, we're not making OMV2, at least not for now, because it's costly, we're actually testing something in between, it's slightly bigger than OMV1 (1.4x1.8 inches vs 1.0x1.3) still really small, it has a lens mount, IR, SDIO for uSD (faster recording) SPI/UART/I2C/DAC/ADC/PWM all broken out, and will use the 180MHz or the 200MHz versions when available.

We managed to keep costs down, it's also a lot cheaper to manufacture (since all components are on a single side) so it will be very affordable in comparison with other stuff. This is the one we'll most likely use if we do a KS.

王宪

unread,
Oct 27, 2014, 12:07:32 PM10/27/14
to open...@googlegroups.com
Yes. For a KS one I'd of course use this small one. However as currently we have some problem ramping up and I don't know whether there will be many people needing a base platform urgently -- anyway, I am.

I agree with you on putting OMV2 on hold. I'm exploring on it just because I have many STM32F429 DISCO board at hand. I may call STMicro's FAE this week and find out what is their schedule for M7 processor :)

Let me just port the OMV2 onto F429 DISCO board first, and let's see whether we can release it onto github. I'm building it around a base board just bought over the internet. Called Open429ZD or something, from waveshare. That one is a breakout board for STM32F429-DISCO.

在 2014年10月27日星期一UTC+8下午11时41分41秒,Ibrahim Abdelkader写道:

Ibrahim Abdelkader

unread,
Oct 27, 2014, 12:28:07 PM10/27/14
to open...@googlegroups.com
Yes. For a KS one I'd of course use this small one. However as currently we have some problem ramping up and I don't know whether there will be many people needing a base platform urgently -- anyway, I am.
Actually a few people want to experiment on breadboards and with DISCO, we might even make a kit or something...
 
 
I may call STMicro's FAE this week and find out what is their schedule for M7 processor :)
If you do, please let us know :) 

王宪

unread,
Nov 8, 2014, 2:23:42 AM11/8/14
to open...@googlegroups.com
Latest news is STM32F7 is currently at early ES stage and only supports 1st tier customer. I may be able to get access at late Feb 2015, when it's at Beta stage.

I've been working on another project these weeks so OpenMV2 is on hold for now. But I do have a issue here. I'm using a CentOS7 due to project requirements for the other one. But I don't have gtksourceview2 on this OS, neither can I get it compiled through other means. This one gets a gtksourceview3. Is it possible to migrate the IDE to gtksourceview3? I've no idea about this one...

Ibrahim Abdelkader

unread,
Nov 9, 2014, 12:07:29 PM11/9/14
to open...@googlegroups.com
gtksource view is not used anymore. 

Michael Shimniok

unread,
Nov 9, 2014, 12:25:29 PM11/9/14
to open...@googlegroups.com
The latest origin master uses gtkcodebuffer instead.

I suppose we should provide RH install steps too, huh?


On 11/09/2014 10:07 AM, Ibrahim Abdelkader wrote:
gtksource view is not used anymore. 

On Saturday, November 8, 2014 9:23:42 AM UTC+2, 王宪 wrote:
Latest news is STM32F7 is currently at early ES stage and only supports 1st tier customer. I may be able to get access at late Feb 2015, when it's at Beta stage.

I've been working on another project these weeks so OpenMV2 is on hold for now. But I do have a issue here. I'm using a CentOS7 due to project requirements for the other one. But I don't have gtksourceview2 on this OS, neither can I get it compiled through other means. This one gets a gtksourceview3. Is it possible to migrate the IDE to gtksourceview3? I've no idea about this one...


Ibrahim Abdelkader

unread,
Nov 9, 2014, 12:32:47 PM11/9/14
to open...@googlegroups.com
yes, and the release too I think.

Steve Gulick

unread,
Jan 28, 2015, 7:59:20 AM1/28/15
to open...@googlegroups.com
Hello,

I wonder if you have done any more work on porting OMV2 to the STM32F29-DISCO? I like openMV very much, but need the SDRam. Also I want to be able to attach different sensors with better low-light and dynamic range specs. I purchased the Open429Z_D board you had mentioned. Nice breakout board.

Thanks,
Steve

王宪

unread,
Feb 8, 2015, 8:41:03 PM2/8/15
to open...@googlegroups.com
Hi Steve,

Yes, the basic functions are working on Discovery or waveshare board. Currently my checked in branch is for waveshare board. However those boards got severe issues. Discovery is sharing pins between SDRAM and camera, while waveshare board is sharing between Ethernet PHY and camera. Without an SDRAM, you can only snapshot 320x240 size image, even JPEG, if the image is a little complex. I'm currently working on other projects so this one is on hold now. Anyway please feel free to checkout my branch at github:
I think I have some issues on linking my version of micropython to the forked branch. So you may still have to change the pin assignments for LEDs and memory configurations in micropython according to the outside .ld file, if you want it to work completely. If you still have trouble, please ask for the zip file.
However, another big issue, the pystudio cannot work. I was never able to connect to the IDE. Whenever I did that, there was a hard fault. Seemingly some character sent by the IDE caused so. Didn't bother to correct that, while I always use serial port usbtty. The only issue is that you always have to write the image to SD card, before you can see it through the USB mass storage device.
How is your progress on this project? Seems there's not much maintenance since last Oct or Nov...

Best Regards,
Wang Xian


--
You received this message because you are subscribed to a topic in the Google Groups "Openmvcam" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/openmvcam/tdrQ0GXV7Es/unsubscribe.
To unsubscribe from this group and all its topics, send an email to openmvcam+...@googlegroups.com.
To post to this group, send email to open...@googlegroups.com.
Visit this group at http://groups.google.com/group/openmvcam.
To view this discussion on the web visit https://groups.google.com/d/msgid/openmvcam/f20a1d33-5514-4a42-b4c9-9b36f602ed4a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages