v4.8.1

v4.8.1 is a maintenance release on top of v4.8.0 — camera and IDE-streaming fixes, a PAG7936 image-quality improvement, and a new GenX320 event-mode bias-tuning script. It introduces no breaking API changes: scripts that ran on v4.8.0 run unchanged on v4.8.1.

Highlights

  • OV5640 fixed on 400 MHz OpenMV H7 cameras — the pixel clock is now scaled for 400 MHz H7 parts instead of being driven at the 480 MHz rate.

  • PAG7936 image quality — the sensor driver now applies bad-pixel correction.

  • IDE frame-buffer streaming fixes — raw transfer over the legacy V1 protocol and the raw-stream → JPEG fallback both work correctly again.

  • New GenX320 bias-tuning script for event-streaming mode.

  • No breaking API changes — reflash and your v4.8.0 scripts run unchanged.

New features

  • GenX320 event-mode bias tuning — a new genx320_event_mode_biases.py example for tuning the GenX320 event sensor’s biases while running in event-streaming mode. (f2e4e234c)

Other changes and improvements

  • PAG7936 bad-pixel correction — the PAG7936 global-shutter sensor driver now applies bad-pixel correction, improving image quality on boards using that sensor. (b405fa176)

  • Alif Device Family Pack updated to 1.3.4 — the Alif I2C/I3C driver was updated to match, affecting machine.I2C on Alif (AE3) boards. (7388ef403, d79086cdc)

Bug fixes

Camera and sensors:

  • OV5640 pixel clock is now reduced for 400 MHz STM32H7 OpenMV H7 cameras (H7 Plus boards are 480 MHz); it was previously driven too fast on 400 MHz parts. (cd9bb2d09)

  • Fixed the one-shot capture configuration on the STM32 DMA multi-buffer path. (61ffb7403)

Host/IDE streaming:

  • Fixed the raw-stream → JPEG fallback: the destination image width/height and PIXFORMAT_JPEG are restored after raw-stream processing, so JPEG capture and streaming after a raw stream work correctly. (36a8b627b)

  • Fixed raw frame-buffer transfer over the legacy V1 (USBDBG) protocol, restoring reliable IDE frame-buffer preview. (75963a623)

Firmware update:

  • Fixed the bootloader not exiting its main loop after a DFU detach on some hosts (a USB-polling thread on the host kept the device mounted), so dfu-util / OpenMV IDE reliably reset the board after flashing. (3a1e8dab7)

Hardware and board support

  • OpenMV H7 — the OV5640 pixel clock is now scaled for 400 MHz H7 units (480 MHz on H7 Plus).

  • PAG7936 — bad-pixel correction is applied by the sensor driver.

  • Alif (AE3) — Device Family Pack 1.3.4 with an updated I2C/I3C driver.

Breaking API changes

v4.8.1 introduces no breaking Python API changes. Scripts that ran on v4.8.0 run unchanged on v4.8.1 — just reflash the firmware. The only fork-facing changes are build/tooling.

Build / tooling (tooling)

None of this affects MicroPython scripts. .dfu image generation was dropped from the STM32 and i.MX RT ports (the files were unused). The bootloader now embeds a header and encodes its version in the USB bcdDevice so host tools and firmware can identify the bootloader version at runtime; an STM32 combined-image padding bug was fixed, the ROMFS resource build (mkromfs) was parallelized, and the Alif Device Family Pack moved to 1.3.4. See the firmware repository history for fork-relevant detail.

Migration checklist

Nothing to do — reflash the firmware; your v4.8.0 scripts run unchanged.