Daily tips and tricks from the experts at Adafruit!
View this email in your browser

Last week saw the release of a new minor version for MicroPython, version 1.9.3.  Check out the MicroPython releases page for all the info on the new release.  Most of the changes in the release are small bug fixes and internal reorganization of the code, but be aware the MPY file format also was updated again and binary files (like .mpy drivers) need to be regenerated again to work with this release!  Here are more details from the release notes:

The main change in this release is the introduction of a “ports/” subdirectory at the top-level of the repository, and all of the ports are moved here. In the process the “stmhal” port is renamed to “stm32” to better reflect the MCU that it targets. In addition, the STM32 CMSIS and HAL sources are moved to a new submodule called “stm32lib”.

The bytecode has changed in this release, compared to the previous release, and as a consequence the .mpy version number has increased to version 3. This means that scripts compiled with the previous mpy-cross must be recompiled to work with this new version.

There have also been various enhancements and optimisations, such as: check for valid UTF-8 when creating str objects, support for reverse special binary operations like __radd__, full domain checking in the math module, support for floor-division and modulo in the viper emitter, and addition of stack overflow checking when executing a regex.

The stm32 port sees improved support for F7 MCUs, addition of a new board B_L475E_IOT01A based on the STM32L475, and support for the Wiznet W5500 chipset along with improved socket behaviour.

In addition last week saw more Adafruit Learning System guide updates with support for CircuitPython:

Finally here’s a neat Python and hardware project that creates a CNC / 3D printer driver entirely with a Raspberry Pi and pure Python code–no add-on hardware like an Arduino or other microcontroller necessary!  Although not MicroPython-related it’s still a fascinating Python hardware project as it combines the power of desktop / CPython and support libraries like PyCNC (a full g-code interpretor) with direct low-level access to the Pi’s GPIO hardware.  Check out the project post here for all the details!