CircuitPython 4.0.0 is officially released!!! CircuitPython 4.0.0 now supports many new boards, check out the new circuitpython.org/downloads page for a complete list. The latest version is now available for download from circuitpython.org! This site makes it easier to choose the right files and language for your board. The download page is here.
Installation Follow the CircuitPython instructions to install! To install the latest libraries, see this page in that guide. Try the latest version of Mu Editor to create and edit CircuitPython programs, as well as easily access the CircuitPython REPL. Breaking changes from 3.x!
The ESP8266 is no longer supported. Starting with 4.x, we chose to focus on microcontrollers with built-in USB to ensure a consistent CircuitPython experience across all boards we support.
ure, ujson, uerrno renamed to re, json, errno to represent that they are a subset of CPython's library modules. Thanks @dhalbert.
busio.UART changed to match PySerial. Thanks @dhalbert.
busio.UART constructor timeout parameter is now in seconds instead of milliseconds.
UART.readinto(buf) now does not allow an optional length argument.
UART.write(...) no longer allows writing strings. The bytes written must be bytes or bytearray or array.array.
framebuf has been removed. displayio is its replacement, and will be enhanced after 4.0 to include its framebuf functionality. Thanks @tannewt.
struct improves compatibility with CPython by enforcing stricter types. This may break your previous code! Thanks @dhalbert.
bytearray, array.array, and int.to_bytes() now check for arguments that are too large, which matches CPython behavior. Thanks @godlygeek.