v1.6.0

v1.6.0 centers on OpenMV Cam registration and a richer Machine Vision workflow: the IDE now detects unregistered cameras on connect, gains a Threshold Editor integrated with the code editor, adds collapsible panes, and advances the bundled firmware from 2.3.0 to 2.4.1 (adding line detection along the way). It continues to track Qt Creator 4.0.2 with no rebase. There is one user-facing break: connecting an unregistered camera now prompts for a board key on each connect (see Breaking changes).

Highlights

  • OpenMV Cam registration is now detected on connect: the IDE queries the board architecture, checks the board/ID against openmv.io, and prompts the user to register the camera with a board key.

  • Bundled firmware 2.4.1 for both OMV2 (M4) and OMV3 (M7) cameras adds line detection (find_lines / find_line_segments via a Hough transform) and a new image.match_descriptor result object in 2.4.0; firmware 2.4.1 follows with a binary-operation API rename.

  • Threshold Editor integration: right-clicking a selected grayscale or LAB threshold tuple in the editor opens the Threshold Editor pre-loaded with those values and writes the adjusted tuple back into the source on close.

  • Collapsible panes: the frame buffer and serial terminal panes gained drawer buttons that hide and re-show a pane and restore their state from settings.

  • Live Frame Buffer title bar now shows the current resolution and selected ROI, and the disabled frame buffer shows an overlay in its place.

New features

  • OpenMV Cam registration is detected on connect. The IDE queries the board architecture and checks the board/ID against openmv.io (openmv-swd-ids-check.php / openmv-swd-ids-register.php), prompting the user to register the camera with a board key. A registration dialog with a working purchase hyperlink, progress display, and error handling is included (c61052eb3, 9fa8a253e).

  • Threshold Editor from the editor: right-clicking a selected grayscale (g_min, g_max) or LAB six-tuple threshold offers an Edit … threshold with Threshold Editor action that opens the editor pre-loaded with those values and updates the source tuple on close (3d12e6ee7, 992d3bdf8).

  • Collapsible panes: the frame buffer and serial terminal panes gained top/bottom/left/right drawer buttons that hide and re-show a pane and restore their state from settings (abaf628ff, 7461e3b55, b51faa8f5).

  • Live resolution and ROI in the Frame Buffer title bar, e.g. Frame Buffer - Res (w:.., h:..) - ROI (x:.., y:.., w:.., h:..) (992d3bdf8).

  • DataMatrix Generator and Barcode Generator entries were added to the Machine Vision Tools menu, each opening a Google web search for an online generator (bf284997b).

Other changes and improvements

  • When the frame buffer is disabled, a centered Frame Buffer Disabled - click the disable button again to enable (top right) overlay is now shown in its place (bf284997b).

  • The Threshold Editor now persists and restores its slider state (combo/invert/min-max values) between sessions, not just window geometry (bf284997b).

  • Reworked Python syntax highlighting to better color OpenMV class/function/method/argument names and import keywords in the editor and terminal (38c00e5a2, 7461e3b55).

  • Pasting into the serial terminal now sends clipboard bytes one character at a time and inserts a 1ms gap between outgoing serial/UDP/TCP packets so the MicroPython REPL is not overrun, and CR and LF are emitted separately on Enter (c61052eb3).

  • Member auto-completion now triggers when typing . after a closing bracket such as ), ], or }, so completions appear after function calls and subscripts (9fa8a253e).

Bug fixes

  • Fixed the OpenMV Cam SWD-ID registration dialog so Cancel and request-completion reliably close it instead of relying on a pointer-cast result code (6599856c4).

  • Fixed firmware-matching for registered boards by stripping the [board:id] registration token out of the architecture string before looking it up in the firmware mappings table (a1be146f1).

  • Fixed a registration regression where the success/error handling never ran due to an inverted cancel check and an unescaped board-id regex, and skipped the registration check for M4-based cameras (9fa8a253e).

  • Disabled the upstream Qt Creator left navigation sidebar wiring to fix the navigation widget in the OpenMV layout (bf284997b).

Platform and tool support

  • Qt Creator base: 4.0.2.

  • Bundled OpenMV firmware: advanced 2.3.0 -> 2.4.1 for both OMV2 (M4) and OMV3 (M7) cameras across two steps. The 2.3.0 -> 2.4.0 step added line detection (find_lines / find_line_segments via a Hough transform), a new image.match_descriptor / kptmatch result object, DataMatrix decoding examples (find_datamatrices.py / find_datamatrices_w_lens_zoom.py), find_lines.py / find_line_segments.py examples, and a sensor.set_vsync_output() method (f0cd4d75c). The 2.4.0 -> 2.4.1 step added the new b_and / b_or logical AND/OR image operations and renamed nand / nor / xor / xnor to b_nand / b_nor / b_xor / b_xnor (the legacy names are retained as aliases) (4fc16559e).

  • Windows drivers: reworked the DfuSe / FTDI / OpenMV / PybCDC driver install command scripts and bundled the previously-missing DfuSe and FTDI/OpenMV/PybCDC driver binaries, DLLs, and VC redistributables needed for installation (b51faa8f5, c2633fc04, 4fc16559e).

Breaking changes

Connecting an OpenMV Cam that openmv.io reports as unregistered now triggers up to three prompts asking the user to enter a board key, repeating on each connect until the camera is registered. M4-based boards are exempt from this check. The 2.4.1 firmware rename of the binary image operations is backward compatible, since the legacy nand / nor / xor / xnor method names remain available as aliases.