Newsletter
Subscribe to receive our blog updates
Hi Everyone,
We hope you are safe during this challenging time.
Our warehouse in Shenzhen has resumed shipping and we're fulfilling orders again. We completed an OpenMV Cam H7 production run and the OpenMV Cam H7 Plus production run which we have been using to fulfill orders.
However, 80% of our inventory is still inside of our Hong Kong warehouse which is inaccessible to our shipping staff who have to drive from Shenzhen to Hong Kong as the border is restricted right now.
That said, we expect to survive the economic downturn and hope to continue delivering and iterating on the OpenMV Cam long into the future.
As there's been nothing to do but stay at home and work we've been getting a lot of coding done lately. In particular, there's now an Interface Library for the OpenMV Cam!
The new OpenMV Cam Interface Library lets you control your OpenMV Cam over:
In particular, I sat down and debugged CAN, I2C using DMA in both master and slave mode, SPI using DMA in both master and slave mode, USB VCP, and WiFi.
Previously, we had discouraged folks from using I2C or SPI to control the OpenMV Cam, but, that is now a thing of the past. All interfaces on the OpenMV Cam are usable now with firmware v3.6.2 (which has been released to OpenMV IDE). I'd like to apologize for all the horrible bugs on these interfaces that were making them unusable before. If you are interested in how to use all the interfaces on your OpenMV Cam effectively please see the interface library code. There's even code in there showing off how to use the STM32 CRC hardware in Python.
Moving on, we've got code right now for one OpenMV Cam controlling another OpenMV Cam over Async Serial, I2C, SPI, and CAN. Code for controlling an OpenMV Cam from the computer over USB VCP and WiFi. And we'll have an Arduino and Raspberry Pi Interface Library out soon for controlling the OpenMV Cam over I2C, SPI, and Async Serial.
Here's a video of me using the library to stream images over WiFi:
The examples scripts for the interface library show off how to:
While not yet released in firmware v3.6.1 we've got readout control for the OV5640 working which allows you to achieve over 100 FPS on the OpenMV Cam H7 Plus for things like high resolution object tracking:
Using this feature above you can easily make a 2592x1944 IR object tracker that runs at 120 FPS. Additionally, we designed the read out control ioctl so that we can backport this functionality into other camera modules we have to allow you to massively increase your FPS on them too.
But, we're not done with the OV5640 driver yet. There are a few more knobs we can turn to increase the FPS performance and JPEG image quality output at higher resolutions which we will implement soon.
Firmware v3.6.1 has more software optimizations from Larry Bank, we had him work on our image filters last month and he speed up our Median Filter by 1000%. In particular, you can now do 7x7 Median Filters on the OpenMV Cam and instead of running at < 1 FPS it runs at 16 FPS on QVGA.
We had Larry optimize Mean, Median, Mode, Midpoint, Morph, Bilateral, Erode, and Dilate making all these images filters much more usable for your applications.
Please let us know if you are looking for a particular algorithm to be speed up and we'll try get him working on it next.
We originally were going to release WiFi programming support for the OpenMV Cam during the OpenMV Cam H7 Kickstarter. However, after implementing all the hooks in OpenMV IDE and testing the feature out we decided to shelve it as the WiFi shield was only able to move about 250Kb/s which is not fast enough to stream images.
However, during development of the OpenMV Cam Interface Library I discovered why the performance was so bad. Using WireShark I saw that our WINC1500 driver code would only send 1 TCP packet before waiting for an ACK resulting in a 35ms+ transmit time per 1400 bytes. After re-working the code to not wait for the ACK anymore we were able to increase the speed from about 250Kb/s to 15Mb/s.
This gives us enough bandwidth to get our debug protocol OpenMV IDE uses working over WiFi. We'll try to get this out in the next firmware release.
In the mean-time. Buy a WiFi Shield with your next OpenMV Cam! Also, assuming this makes the WiFi shield become even more popular we will start manufacturing them at at higher quantity which will allow us to lower the price.
Anyway, that's all folks. More updates coming soon!
Subscribe to receive our blog updates