Download the 4.0.0 Alpha 2 release here.
4.0.0 is the latest major revision of CircuitPython and features support for the nRF52840 BLE chipset, display support and translated messages.
This is alpha release number 2 of 4.0.0. Alpha releases do not have the complete API from 3.x on the nRF buildsand are only meant for testing. (Beta release will have the full existing API but still need work.) Please use the latest 3.x stable release when first starting with CircuitPython. It is stable.
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
- Add new
audioio.Mixerclass to provide multiple simultaneous sample playback. Thanks @tannewt.
pulse.PulseOutto nrf port. Thanks @dhalbert.
busio.UARTto nrf port. Thanks @hathach.
supervisor.runtime.serial_bytes_availableto see if input is available to read. Thanks @ATMakersBill.
- Add auto-reload for nrf port. Thanks @hathach.
framebufhas been removed.
displayiois its replacement, and will be enhanced as 4.0 progresses to include
storage.erase_filesystem()on nrf port. Thanks @jerryneedell.
- Enable optional support for inline assembly. Thanks @urish.
- Continued work on Spanish translation. Thanks @C47D and @carlosperate.
- Italian translation. Thanks @platipo.
- Brazilian Portuguese translation. Thanks @furlaneto, @xpecex, and @gcvasconcelos.
- Travis build improvements. Thanks @sajattack and @jepler.
- Fix bugs in nrf SPI and I2C. Thanks @dhalbert.
- Frozen libraries updated to latest released versions. Thanks @dhalbert.
- Merge latest fixes from 3.x. Thanks @tannewt.
- None so far, but expect some later!
On nRF52840, using
ubluepywith first allocated
busio.SPIobject will cause a reset. The first
SPIobject created is always be the high speed 32MHz
SPIM3peripheral. To avoid this, if you need SPI, create but do not use the first
SPIobject, and create subsequent
SPIobjects to use. The second and later objects will run at a maximum of 8MHz.
- Due to a bug, the
SPIM3peripheral is not allocated. Only one SPI peripheral, running at 8MHz, is available. This accidentally works around the problem above.
Thank you to all who used, tested, contributed, helped out, and participated on GitHub and/or Discord:
@ladyada, @dhalbert, @tannewt, @kattni, @microbuilder, @hathach, @arturo182, @nickzoic, @glennrub, @siddacious, @deshipu, @sommersoft, @jerryneedell, @brentru, @caternuson, @jepler, @urish, @sajattack,, @notro, @Jahor, @Makdaam, @mrmcwethy, @jepler, @notro, @mattyt, @furlaneto, @ATMakersBill, @Klowner, @klardotsh, @C47D, @carlosperate, @platipo, @xpecex, @gcvasconcelos, @saspa, @uhrheber, and surely more we have missed. Join us on the Discord chat to collaborate.
Documentation is available in readthedocs.io.