If you I sent you a prototype OV7725 OpenMV Cam or you’d just like to have firmware on the bleeding edge of development please see the OpenMV Cam wiki - Home · openmv/openmv Wiki · GitHub. OV2640 OpenMV Cam owners should get themselves setup for firmware development too. This way you can get fixes quickly. Otherwise you’ll have to wait for releases.
Okay, I lied, there’s no Mac development environment. Instead you can install Ubuntu on a virtual machine running on your mac machine:
Given that I have been compiling MicroPython firmware for the pyboard on my Mac for two years now, you had me worried that OpenMV had somehow dramatically diverged from MicroPython.
Happily, I found that it is possible to build the OpenMV firmware and load it using pydfu on OSX just as I have been doing with MicroPython. It takes a bit of tinkering with dependencies to set it up - I needed to install libusb and pyusb and run pydfu specifically using python3 - but it all worked. I can even get the IDE to run, though I will allow that it isn’t as stable on my Mac as it is on Ubuntu. (I suspect that this is something to do with the USB configuration, but OS X doesn’t have /etc/udev so I will need to dig a bit to find the equivalent.)
Unfortunately I won’t have a chance to fill in the details right away, but I just wanted to provide encouragement that OpenMV development on OS X is in fact possible.
Fair enough, that is probably wise. It does take some tinkering to get all the dependencies in place, and I appreciate that you don’t want to support that right now; also, my experience is that the IDE is currently more stable on Ubuntu than OS X.
I’ll be busy for the next two weeks or so, but then I would like to dig in to making the IDE more stable and also turn my notes into a proper installation guide for OS X.
I just received the OpenMV with the new sensor, and I compiled and flashed the latest firmware. Unfortunately, now the board comes up with a “failed to initialize sensor” error. I wonder if I need to specify some options to the make command to tell it about the new sensor?
That one works, thank you. Any idea why the one I compiled myself doesn’t?
The new sensor really has much nicer colors! However, I tried to run the color blob detection example, and it fails with “None type is not iterable” – seems like the “find_blobs” functions returns None instead of an empty list? I guess I will report a proper bug for that.
I’m trying to delve into my own custom function in imlib.c then wrapped in py_image.c I’m following other functions as an example, however the compile chokes on a generated file qstrdefs.generated.h which does not have an entry for my new function. I read up a bit and the process for micropython is to run this script:
My question - is there a different way or does your toolchain involve running this script?
And… then create a new function in the py_image.c file with the correct header type and do what you want in it.
The compile is pretty much automatic. However, our build system is… not good at detecting dependency changes. SO, rebuild whenever you edit the qstrdesport file.
Also, how you define the header of functions that are being called in the py_image file is very import. Look at one of our functions for the particular header style that you’d like and copy what we did. Otherwise you’ll get crashes. MP just jumps to these functions using a function pointer. So, you have to make sure it jumps using the correct ABI. In particular, what bit me once was that for less than 3 arguments it will call the function in a slightly faster way than it will call the function with 4 or more arguments.