.. _changelog_ide_v4_8_9: 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. .. contents:: On this page :backlinks: none :local: :depth: 1 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 `__).