v4.8.9

v4.8.9 is an idle-efficiency and disconnect-reliability release built on Qt Creator 14.0.2. It overhauls how the IDE watches for hardware so it stops polling when nothing is happening, tightens the connect/disconnect path, and prunes the bundled model zoo. There is no Qt Creator rebase in this range, but a few default behaviors and bundled model names changed, so review the breaking changes below.

Highlights

  • Event-driven hardware monitoring replaces continuous device polling: the IDE now stops its scan timers when idle and only re-scans serial ports and drives in response to real USB plug/unplug and disk mount/dismount events, dramatically cutting idle CPU and resource usage.

  • Idle timers gated on activity: the frame-buffer event timer (formerly firing every 1ms) now runs only while connected, and the terminal cursor-blink timer (500ms) now runs only while the terminal is focused.

  • Background import syncing off by default: automatic syncing of the Examples and Documents/OpenMV import folders is now disabled and its menu toggle is hidden, so the IDE no longer continuously rescans those folders.

  • Faster, more reliable disconnect: the serial port is closed and the camera freed immediately, protocol timeouts were tuned down, and a wedged camera now recovers instead of hanging.

  • Clearer frame-buffer mode button that shows JPG Mode or RAW Mode to make the current compression state obvious at a glance.

New features

  • Native hardware-event monitoring via a new HardwareMonitor that emits hardwareEventDetected using IOKit and DiskArbitration on macOS, a WM_DEVICECHANGE message-only window on Windows, and a NETLINK_KOBJECT_UEVENT netlink socket on Linux. The serial-scan and drive-scan timers are now gated behind a 10s scan window that restarts on each event (a6612fec9, 462b55f7b, 17c2e93c7).

Other changes and improvements

  • The frame-buffer event-processing timer (formerly firing every 1ms) is now started on connect and stopped on disconnect, and the terminal cursor-blink timer (500ms) now starts and stops on terminal focus in/out instead of always running (a02afea53).

  • Automatic syncing of the Examples and Documents/OpenMV import folders is disabled by default and the toggle is hidden; the folder-scan timers no longer start at init and only run when the (now hidden) action is enabled (478f83e97).

  • The frame-buffer format toggle button now shows JPG Mode when JPEG compression is on and RAW Mode when off (c48831224).

  • On connect, the IDE now always applies the board’s JPEG-preferred default for the frame buffer instead of restoring the previously saved per-board JPG/RAW choice (c48831224).

Bug fixes

  • Disconnecting now closes the serial port and frees the camera (and port) inline in close(), making disconnect faster and more reliable (1e8941080, 9d31bcf80).

  • The serial idle timer is now stopped and the v2-protocol flag cleared when the port closes, fixing stale idle-timer behavior after disconnect (4bd2fd9ea).

  • Protocol command timeouts were tuned (open timeout lowered from 5s to 2s, resync and CHANNEL_SIZE use a 1s short timeout) and every serial command now disposes the camera object on failure, so a wedged camera recovers and disconnects faster instead of hanging (04aa6aea3).

  • Fixed a locking/hang issue when stopping a script: a script-stopped event now also clears the frame-event state and resets the frame-ready timers (3695b0704).

  • The protocol now tolerates short reads from the camera, returning the partial payload or text instead of discarding it or erroring out (0c8ccd58e).

Platform and tool support

  • Qt Creator base: 14.0.2.

  • Boards combining an AE3 or N6 module with a PAG7936 or PS5520 sensor now get the higher QVGA default (previously only AE3 + PAG7936), so affected examples auto-upgrade from QQVGA to QVGA (fcc0c3227).

  • The bundled ST MoveNet pose-estimation model zoo was cleaned up: redundant per-tensor (_pt) and duplicate singlepose/st_movenet variants were removed, and the surviving per-channel heatmap models were renamed to movenet_singlepose_192, movenet_singlepose_224, and movenet_singlepose_256 (18f66c4c1).

  • Dropped the bundled DeepLabV3 semantic-segmentation model and its example assets from the model zoo (a929e0dc1).

Breaking changes

User-visible behavior and bundled-asset changes between v4.8.8 and v4.8.9.

  • On connect, the frame buffer now always uses the board’s JPEG-preferred default and ignores any previously saved per-board JPG/RAW choice (c48831224).

  • Background syncing of the Examples and Documents/OpenMV import folders is disabled by default and its toggle is hidden (478f83e97).

  • Several bundled models were removed or renamed: the DeepLabV3 semantic-segmentation model is gone, and the ST MoveNet models were pruned and renamed to movenet_singlepose_192/224/256. Scripts that reference the old model filenames must be updated (a929e0dc1, 18f66c4c1).