v1.7.0¶
v1.7.0 adds serial frame-buffer chunking and reassembly so large frames can be transferred over the debug serial link, makes disconnect-with-reset safer by flushing (and, on Windows, ejecting) the camera’s USB mass-storage drive, and refreshes the example set. The release is based on Qt Creator 4.0.2 (the same base as the previous release) and adds build support for cross-compiled embedded Linux targets such as the Raspberry Pi. There are no breaking changes.
Highlights¶
Serial frame-buffer chunking — large frame-buffer transfers are split into MTU-sized chunks and reassembled in a pixel buffer, so big frames can be moved over the debug serial link.
Safer disconnect-with-reset — the camera’s USB mass-storage drive is flushed before reset (and force-ejected on Windows) so the filesystem is synced first.
Atomic file saving —
main.pyand keypoint files are written atomically, preventing corruption and fixing a path bug that wrotemain.pyto the wrong location.Raspberry Pi / embedded Linux — cross-compile build support is now included.
Refreshed examples — a Servo Shield set, new Feature-Detection demos, and Image Reader/Writer video examples.
New features¶
Serial frame-buffer chunking and reassembly. Frame-buffer transfers are split into MTU-sized chunks and reassembled in a pixel buffer, so large frames can be moved over the debug serial link using a default MTU. A runtime MTU auto-negotiation handshake was added with its firmware version gate set to 2.5.0, matching the 2.5.0 firmware bundled in the same commit (96458ccef). The gate was then raised to
9.9.9for release, which no shipped firmware reports, so cameras use the default MTU and no negotiation occurs (abd1dacb9).Flush/eject on disconnect-with-reset. Disconnecting with reset now flushes the camera’s USB mass-storage drive before reset: on Windows the drive is force-ejected, while on Linux and macOS the drive’s filesystem is synced (
syncfs/sync_volume_np). AFailed to ejecterror is reported on failure on all three platforms (243618791, ff6b15aff, 1865ffd31, 4fd4e89cf).Servo Shield examples. Added a
15-Servo-Shieldexample set demonstrating PCA9685-driven servos, including apca9685.pydriver and aservo.pyhelper (abd1dacb9).New Feature-Detection examples. Added
find_circles(Hough),find_rects(quad-threshold),find_numbers(LeNet digit recognition), and fast and robust linear regression examples under09-Feature-Detection(abd1dacb9).Video and board-control examples. Added Image Reader/Writer examples for recording and replaying snapshot streams from the SD card, an RTC board-control example, and an on-camera unit-test runner (abd1dacb9).
Other changes and improvements¶
Renamed the
99-Testsexample folder (formerly15-Tests) and added theunittests.pyrunner (abd1dacb9).
Bug fixes¶
Hardened saving of
main.pyand keypoint files. The writes were switched to atomicFileSaverwrites (write then finalize) in (4fd4e89cf), and a missing path separator that wrotemain.pyto the wrong location was fixed in (1865ffd31).Improved serial reliability by enlarging the serial read buffer to 1MB on all ports and increasing the read-stall timeout, addressing dropped data with
QSerialPort(7f68368dc).Fixed a window splitter layout glitch by exporting
MainWindowand emitting a show-event signal so the OpenMV plugin can restore the layout when the main window is shown (4895e20b7).
Platform and tool support¶
Qt Creator base: 4.0.2.
Added build support for cross-compiled embedded Linux targets such as the Raspberry Pi: deploys Qt fonts, fixes
chrpath/RPATH handling, builds translations with host binaries, and adds a missingqmldependency (73c052fcc, 8f0baa131, 5b9e9e82e, 45011ec2a).Updated bundled OpenMV firmware from 2.4.1 to 2.5.0 (96458ccef).
Renamed the firmware folders
OMV2/OMV3toOPENMV2/OPENMV3and shipped updated, rebuilt STM32F427 (OPENMV2) and STM32F765 (OPENMV3) firmware and bootloader binaries (abd1dacb9).
Breaking changes¶
None. This release introduces no user-facing workflow or behavior breaks, and existing projects continue to work unchanged.