We are nearing the end of the betas of 4.0.0, and hope to be issuing a release candidate soon. 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 (available from the new website!) 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 (
- extensive new support for pixel-based displays (
- 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).
New Features, Updates, and Fixes since Beta 4
- Fix filesystem problem which caused soft reboots to corrupt the filesystem. Thanks to @dhalbert for the fix and @jerryneedell and @makermelissa for testing.
- There is filesystem corruption on the PCA10059 when BLE is used, perhaps due to its use of an internal flash filesystem, and interactions with the SoftDevice. Thanks to @uhreber for testing.
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, @jreese and surely more we have missed. Join us on the Discord chat to collaborate.
Documentation is available in readthedocs.io.