But first, shipping news.
The drought on OpenMV Cam's is over! We've got stock again! Additionally, the backlog of orders have been cleared and over 800 cameras have shipped! If you want one buy it from SparkFun, they've got tons.
OpenMV IDE v1.7.1 Features
The latest release of OpenMV IDE is mainly about firmware v2.5.0 which includes tons of new features for DYI Robocar racing.
- Fix UART timeout when using slow baudrate.
- Enable RTC.
- Remove openmv.inf and update Readme.
- Support recording and viewing raw videos.
- Add linear regression.
- Add find_rectangles and find_circles.
- Improve find_lines merging.
- Fix bug in ORB matching descriptor loaded from file.
- Support new OpenCV Haar format.
- Fix bug in Haar cascades loading.
- Add initial LeNet port.
- Add unit-tests.
- Fix uninitialized FB enabled bug.
- Fix Servo(3).
- Fix MJPEG/GIF BAYER support - (e.g. RGB565 VGA recording support).
Finally, OpenMV IDE v1.7.1 itself mainly includes fixes to saving files to your OpenMV Cam when an SD card isn't inserted.
- OpenMV IDE saves main.py on your SD card more robustly now.
- OpenMV IDE unmounts the SD card on eject.
- Serial bug fixes (timeout was too small).
I'd actually like to go into this a little bit more. So, the OpenMV Cam has a small 96 KB internal flash drive that appears when you plug it into the PC. This drive is formatted as a FAT12 drive because it isn't large enough to be considered a FAT16 drive. Only 16MB sized drives and above can be FAT16. SD Cards you plug into your OpenMV Cam are all either FAT16 (if they're old) or FAT32. The reason this matters is because Windows (and other OSes) don't handle FAT12 drives the same way as FAT16/32 drives. In particular, they don't write out data to the file allocation table (FAT) after you save a file to the disk because the original drivers were for floppy disks. Because of this, if you tried to save a script to your OpenMV Cam using it's internal flash drive you may have had some corruption issues. In fact, all MicroPython boards have been suffering from this problem. You can read more about the exact issue here.
OpenMV IDE v1.7.1 fixes this issue by executing OS flush commands for Windows/Mac/Linux when you click "Tools -> Reset OpenMV Cam" before resetting the camera. This makes sure the internal flash drive is unmounted correctly. "Tools -> Save open script to OpenMV Cam" has also been updated to use a much more aggressive file saving method too.
Both of these fixes for Windows/Mac/Linux make sure your files are saved. However, you need to Safety Remove your OpenMV Cam's internal flash drive if you make edits to it from another program and don't use OpenMV IDE's "Tools -> Reset OpenMV Cam" command.
Note that you can ignore all of this if you use an SD card (FAT16/FAT32) because the OS properly writes to the FAT any time you edit a file. Otherwise, you have to wait for the OS to flush it's cache (which it does so eventually after about 5 minutes).
DYI Robocar Racing
I cleaned up my OpenMV Cam's racing code posted last time and I was able to place again. Lack of good speed control while using an RC car limits my ability to slow down on making turns (and not flying on the line) thus limiting my overall speed, but, otherwise, the system performed well! For this race I switched from following a solid white line to a dotted yellow line.
I think the platform is ready for others to copy now so I'll be posting a write-up on how to build my robot soon.
Future IDE Work
I'll be focusing on OpenMV IDE improvements for the next release. In particular:
- We're going to make all the WiFi shields folks bought super useful now - WiFi programming is coming to OpenMV IDE. The next release of OpenMV IDE will feature the ability to connect to your OpenMV Cam over WiFi as seamlessly as you are able to connect to it over USB! This feature will work by having your OpenMV Cam read a "settings.ini" file on bootup which will tell the camera how to connect to a network or run in AP mode and etc. After which, your camera will broadcast its presence on the network while OpenMV IDE is listening. When you click connect OpenMV IDE will establish a TCP connection which will work exactly the same as our USB connection. (File system access however... is another matter - any ideas on this would be appreciated).
- Video recording in OpenMV IDE! That's right, next time I make a video you'll be able to see the camera's point of view too.
- Bug fixes!
- And even more bug fixes - if you know of a problem or something that's not quite right let us know and I'll get right on it ASAP.