After many requests, we now have QR Code detection support built-in to the OpenMV Cam's firmware. Check it out!
QR Code Detection support is made possible by Daniel Beer's quirc library which was designed to run on low memory systems like the OpenMV Cam. The library is capable of detecting and decoding QR Codes from version 1 (21x21 pixels) to version 40 (177x177 pixels). Best of all, the library code will work on both the M4 version of the OpenMV Cam and the new M7 version.
On the M4 OpenMV Cam you're going to be limited to detection resolutions less than or equal to 160x120 which translates into support for QR Code versions 1-5. So, you'll be able to decode QR Codes that can handle up to 255 character numeric strings, 154 character alpha numeric strings, and 106 character 8-bit ASCII/UTF-8 strings. On the M7 you'll be able to go up to 320x240 which will allow for up to version 15 QR Codes which can store 1,250 character numeric strings, 758 character alpha numeric strings, and 520 character 8-bit ASCII/UTF-8 strings.
Once we release updated firmware with QR Code support you'll be able to use the feature simply by calling the "find_qrcodes" function which will return a list of QR Code objects. These QR Code objects return the bounding box around the QR Code, the payload in ASCII form, and a few other bits of information for advanced users.
OpenMV Cam M7 News
We're currently prototyping the new M7 board still. We'll be getting our next batch of prototypes back in January and once we verify that all features work without any issues we'll start a small production run of 40 boards to test a new programming jig we're building for the M7 boards which can program 20 (a panel) at a time. Assuming that all goes well we'll then start the production of 1000 more boards.
As for the fund raising progress - We've done a lot of sales for the M4 boards and we have enough cash in our coffers to do the M7 production run. So, for everyone who's pre-ordered so far I can say that we should be able to build the next run of OpenMV Cams. However, this is basically going to drain every cent of our bank account to do so at this time. So, please share this QR Code video with friends and colleagues and let them know about the new OpenMV Cam M7 so we can raise more cash! More money in our coffers means lower prices on everything since we'll be able to manufacture more things like our shields in larger volumes.
We'll be rolling out a new firmware release soon using the auto update feature built-into the IDE along with an updated library reference. Among other things the "find_blobs" function was re-worked to use the scan line fill algorithm when its finding all the pixels in a blob. This algorithm is 3X faster than the previous code. The function still has to check every pixel for a blob but after it finds one it will figure out all the pixels in the blob 3X faster now. Additionally, "find_blobs" will return a blob object with named attributes like ".cx()" or ".rect()" now so you don't have to deal with tuple indexes anymore (but, indexing into the object like a tuple will still continue to work).