v3.5.0#

v3.5.0 introduces the ulab NumPy-like module, the OpenRV library, image segmentation support, iterable image objects, and freezes all the scripts/libraries modules into the firmware; TensorFlow also accepts more model types. The default CAN baudrate changed — read the breaking changes below.

Highlights#

  • ulab — a NumPy-like array module is now available.

  • OpenRV library added.

  • Image segmentation — TensorFlow image-segmentation support.

  • Iterable images — image objects can now be iterated.

  • Frozen libraries — all scripts/libraries modules are frozen into the firmware.

  • Breaking: the default CAN baudrate changed from 250 Kbps to 125 Kbps — see the breaking changes.

New features#

  • ulab — added the ulab NumPy-like module (ulab submodule).

  • OpenRV — added the OpenRV library.

  • Image segmentation — added support for TensorFlow image segmentation.

  • Iterable images — image objects are now iterable.

  • TensorFlow — the TensorFlow library now accepts more model types.

  • Added MobileNet script examples (with model locations), a native code-emitters example, a modbus_apriltag.py example, and a light-shield example.

Other changes and improvements#

  • Froze all the scripts/libraries modules into the firmware; updated the modbus library / RTU-slave example; increased the face-detection example contrast; updated the cpufreq example and the H7 cpufreq_scaling frequencies.

Breaking API changes#

User-visible API breaks between v3.5.0.beta.3 and v3.5.0. Scope: Python C-modules in modules/ and Python libraries in scripts/libraries/.

The breaking change is a behavior change (same API, different result) — re-check affected scripts. Each commit hash links to its diff on GitHub.

Default CAN baudrate changed to 125 Kbps (behavior)#

The default pyb.CAN baudrate changed from 250 Kbps to 125 Kbps. Scripts that constructed a CAN bus without an explicit baudrate (e.g. CAN(2, CAN.NORMAL)) now run at 125 Kbps and will not communicate with peers still at 250 Kbps. Pass an explicit baudrate (or prescaler / sjw / bs1 / bs2) to restore 250 Kbps.

Commits: d3a9a06ef

Migration checklist#

Set an explicit CAN baudrate on any pyb.CAN bus that relied on the old 250 Kbps default (the CAN baudrate change). All other scripts run unchanged.