The CircuitPython 4.0.0 Beta 3 release is available here: https://github.com/adafruit/circuitpyth … 0.0-beta.3.
This is a beta build of 4.0.0. There are still issues to fix before stable and the new APIs may evolve a bit more. Please use the latest 3.x stable release when first starting with CircuitPython. It is stable.
4.0.0 is the latest major revision of CircuitPython. It features: – a port to the Nordic nRF52840 microcontroller, including support as a BLE beacon or peripheral (
bleio) – extensive new support for pixel-based displays (
displayio) – USB MIDI support – messages translated into multiple languages
Try the latest version of the Mu editor for creating and editing your CircuitPython programs and for easy access to the CircuitPython serial connection (the REPL).
Most builds are available as both UF2 and bin files here along with test builds.
New Features, Updates, and Fixes since Beta 2
- Check for length too long on Python sequence multiply, thanks to @tannewt.
rotaryioadded to nrf port, thanks to @nickzoic.
ENOSPCerror now has numan-readable text, thanks to @cpforbes.
- USB MIDI fixes, thanks to @cpforbes.
__file__for main source code file, thanks to @cpforbes.
- Space-saving and build fixes, thanks to @debrouxl, for use with a specialized build for a TI calculator accessory.
- German translation improvements, thanks to @Tasm-Devil.
- Rework of translation builds and output, to reduce merge difficulties, thanks to @tannewt.
displayioadditions, improvements, and fixes, thanks to @tannewt.
displayioand PyPortal board fixes and improvements, thanks to @TG-Techie.
atmel-samdUART implementation, thanks to @dhalbert.
ure) functionality, thanks to @notro.
- Entering safe mode via slow double click fixed on SAMD51, thanks to @tannewt.
- The long list of links to CircuitPython driver documentation is now a part of the CircuitPython Bundle instead of being part of the circuitpython repo. Thanks to @sommersoft.
- Build options were extensively refactored, allowing features to be turned on and off more easily. The
nrfports were also made much more similar, and share more common settings now. Thanks to @dhalbert.
print(..., flush=True), thanks to @tannewt.
- Add support for 1-bit (monochrome), 8-bit (indexed and grayscale), 16-bit (565), and 32-bit (ARGB) pixel sizes in
displayio.OnDiskBitmap, thanks to @siddacious.
bleiobug fixes, thanks to @dhalbert.
- Ability to allow filesystem writes from both USB and internal CircuitPython (dangerous!), thanks to @tannewt, with inspiration from @ladyada.
- Refactoring of timer code into `samd-peripherals, thanks to @sommersoft.
Display, thanks to @penguindustin.
- ‘displayio` refresh fixes, thanks to @dhalbert.
PWMOutfixes on atmel-samd, thanks to @dhalbert, and thanks to @kevinjwalters for discovering the problem and testing the fix.
frequencyio.FrequencyInfrequency measurement capability on atmel-samd ports, thanks to @sommersoft.
- SAM32. Thanks to @maholli.
Breaking Changes from 3.x!
errnoto reflect that they are subsets of the CPython library modules. Thanks to @dhalbert.
- busio.UART breaking changes to match PySerial. Thanks to @dhalbert
- busio.UART constructor timeout parameter is now in seconds instead of milliseconds.
- UART.readinto(buf) now does not allow an optional length parameter
- UART.write(…) no longer allows strings to be written. The bytes written must be bytes or bytearray or an array.array.
framebufhas been removed.
displayiois its replacement, and will be enhanced after 4.0 to include
framebuf‘s functionality. Thanks to @tannewt.
structcompatibility with CPython by enforcing stricter types. This may break your code! Thanks to @dhalbert.
Thank you to all who used, tested, contributed, helped out, and participated on GitHub and/or Discord: @adafruit, @anecdata, @arofarn, @arturo182, @ATMakersBill, @brennen, @brentru, @bwshockley, @C47D, @CarlFK, @carlosperate, @caternuson, @CedarGroveStudios, @chalei, @charlesbunaford, @cpforbes, @dastels, @deshipu, @dhalbert, @dsiee, @edspark, @eighthree, @furlaneto, @gcvasconcelos, @glennrub, @gpshead, @hathach, @iraytrace, @Jahor, @jasonp, @jepler, @Jay Doscher, @jerryneedell, @jimblom, @JohnPark, @JoshuaLowe1002, @uanita, @kattni, @kevinjwalters, @klardotsh, @Klowner, @ladyada, @larsks, @madbodger, @maholli, @Makdaam, @MakerMelissa, @MattyT, @mchobby, @microbuilder, @MikeBarela, @Mr. Certainly, @mrmcwethy, @nickzoic, @notro, @oldcrow, @penguindustin, @PhredFL, @platipo, @Retoc, @rhooper, @sabas1080, @sajattack, @sajattack, @saspa, @schmarty, @Senuros, @ShawnHymel, @siddacious, @sommersoft, @SouthernDragon, @TangoJuliett, @tannewt, @Tasm-Devil, @TG-Techie, @uhrheber, @urish, @vgoodwinv, @xpecex, @yeyeto2788, and surely more we have missed. Join us on the Discord chat to collaborate.
Documentation is available in readthedocs.io.
This release is based on [MicroPython 1.9.4 @25ae98f](https://github.com/micropython/micropython/commit/25ae98f07cb3c4488cb955403dfe56b8bb8db6f0). Support upstream MicroPython by purchasing a PyBoard (from Adafruit here).