v4.5.7

v4.5.7 adds PAG7920 sensor recognition, unifies the drawing pipeline onto the draw_image backend (GPU-offload ready), and fixes a JPEG-decoder boundary bug and an STM32 MPU protection bug.

Highlights

  • PAG7920 sensor ID is now recognized.

  • Unified drawing pipeline — line operations now run through the draw_image backend, which was refactored to support GPU offload.

  • Fixed a JPEG-decoder boundary bug and an STM32 MPU protection bug.

New features

  • PAG7920 — added the missing PAG7920 sensor enum so that sensor is recognized.

Other changes and improvements

  • Drawing pipeline — all line operations now use the draw_image backend, and draw_image was refactored to support GPU offload (groundwork for hardware-accelerated drawing).

  • More RAM on non-JPEG boards — the JPEG buffer is now reserved only when a hardware JPEG encoder is defined.

  • ml.Model — its printed representation now also shows the model address.

  • MicroPython submodule updated.

Bug fixes

  • Fixed a JPEG-decoder boundary problem (imlib/jpegd).

  • Fixed an STM32 MPU region-protection bug.

Hardware and board support

  • PAG7920 — the sensor is now recognized by its ID.

Breaking API changes

User-visible API breaks between v4.5.6 and v4.5.7.

The only breaking change is narrow and affects just the RPC transport helper libraries.

RPC SPI/I2C master helpers moved to machine (minor)

The rpc_spi_master and rpc_i2c_master helper libraries were updated to use the machine module instead of the legacy pyb module. Scripts that constructed these RPC transports with pyb-style arguments must switch to the machine-style bus arguments.

Commits: 1ec77498a, 0154ada53

Migration checklist

Only RPC users are affected: if you used rpc_spi_master or rpc_i2c_master, update the bus construction to machine-style arguments (the RPC helper change). All other scripts run unchanged.