Releases: adafruit/circuitpython
CircuitPython 4.0.0 Release Candidate 0!
Please use 4.0.0 Release Candidate 1. It has a fix for pybadge.
CircuitPython 4.0.0 Beta 7
We are nearing the end of the betas of 4.0.0, and hope this will be the last beta. There are still a few issues to fix before stable. We think the API's are now stable. Please use the latest 3.x stable release (available from the new website!) when first starting with CircuitPython. It is stable.
When you find a bug please check the current known issues and file an issue if something isn't already known.
circuitpython.org
Downloads are now available from circuitpython.org! This site makes it much easier to select the correct file and language for your board. The downloads page is here.
4.0.0
4.0.0 is the latest major revision of CircuitPython. It features:
- extensive new support for pixel-based displays (
displayio
) - a port to the Nordic nRF52840 microcontroller, including support as a BLE beacon or peripheral (
bleio
) - USB MIDI support
- messages translated into multiple languages
Installation
To install follow the instructions in our new Welcome to CircuitPython! guide. To install the latest libraries, see this page in that guide.
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 6
- Fixed missing
rotaryio
. Thanks @dhalbert - nrf52840: Support
rtc
. Thanks @nickzoic and @dhalbert - Fixed
displayio.Group
insert bug. Thanks @caternuson - Fixed USB issues after disconnect. Thanks @hathach and @dhalbert
- Add data as command support to
displayio
. Thanks @makermelissa - Add support for CS toggle every display command. Thanks @makermelissa
- Add input validation in
displayio
which fixes some crashes. Thanks @tannewt - Add access do display bus on Display. Thanks @deshipu
- Fix crash when releasing displays multiple times. Thanks @tannewt
- Fix recursive background calls. Thanks @dhalbert
- Add support for board aliases (same bin, separate download). Thanks @tannewt
New and Updated Translations
- Added Chinese (Pinyin) as a new translation. Many thanks to @hexthat
New Boards
- Electronic Cats Bast Pro Mini M0. Thanks @sabas1080
- Adafruit Metro M4 Airlift Lite. Thanks @ladyada
- Kicksat sprite. Thanks @maholli
- CircuitPlayground Express 4H Edition (alias) Thanks @tannewt
- CircuitPlayground Express Digikey PyCon 2019 (alias) Thanks @tannewt
- Gemma M0 PyCon 2018 (alias) Thanks @tannewt
- PewPew 10.3 (alias) Thanks @tannewt
Breaking Changes from 3.x!
ure
,ujson
, anduerrno
renamed tore
,json
, anderrno
to 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.readinto(buf, len)
. - UART.write(...) no longer allows strings to be written. The bytes written must be bytes or bytearray or an array.array.
framebuf
has been removed.displayio
is its replacement, and will be enhanced after 4.0 to includeframebuf
's functionality. Thanks to @tannewt.- Improve
struct
compatibility with CPython by enforcing stricter types. This may break your code! Thanks to @dhalbert.
Thanks
Thank you to all who used, tested, contributed, helped out, and participated on GitHub and/or Discord:
@adafruit, @anecdata, @arofarn, @arturo182, @ATMakersBill, @barbudor, @brennen, @brentru, @bwshockley, @C47D, @CarlFK, @carlosperate, @caternuson, @CedarGroveStudios, @chalei, @charlesbunaford, @cpforbes, @craigf, @dastels, @deshipu, @dhalbert, @dsiee, @edspark, @eighthree, @emteeoh, @furlaneto, @gcvasconcelos, @glennrub, @gpshead, @hathach, @iraytrace, @Jahor, @jasonp, @jepler, @jay Doscher, @jerryneedell, @jimblom, @johnpark, @JoshuaLowe1002, @Juanita, @KacperLa, @kattni, @kevinjwalters, @klardotsh, @Klowner, @ladyada, @larsks, @madbodger, @maholli, @Makdaam, @makermelissa, @mattyt, @mchobby, @microbuilder, @Mikebarela, @mr. Certainly, @mrmcwethy, @nickzoic, @notro, @OldCrow, @penguindustin, @PhredFL, @platipo, @Rathmore, @Retoc, @rhooper, @sabas1080, @sajattack, @sajattack, @saspa, @schmarty, @Senuros, @ShawnHymel, @siddacious, @sommersoft, @SouthernDragon, @TangoJuliett, @tannewt, @Tasm-Devil, @TG-Techie, @uhrheber, @urish, @vgoodwinv, @xpecex, @yeyeto2788, @jreese, @hexthat and surely more we have missed. Join us on the Discord chat to collaborate.
Documentation
Documentation is available in readthedocs.io.
Here are all the changes since 4.0.0-beta.6.
Here are all the changes since 3.1.2.
This release is based on MicroPython 1.9.4 @25ae98f. Support upstream MicroPython by purchasing a PyBoard (from Adafruit here).
Troubleshooting
Check out this guide for info on common problems with CircuitPython. If you are still having, then post to the Adafruit Support Forums and join Discord.
CircuitPython 4.0.0 Beta 6!
We are nearing the end of the betas of 4.0.0, and hope to be issuing a release candidate soon. There are still a few issues to fix before stable. We think the API's are now stable. Please use the latest 3.x stable release (available from the new website!) when first starting with CircuitPython. It is stable.
When you find a bug please check the current known issues and file an issue if something isn't already known.
circuitpython.org
Downloads are now available from circuitpython.org! This site makes it much easier to select the correct file and language for your board. The downloads page is here.
4.0.0
4.0.0 is the latest major revision of CircuitPython. It features:
- extensive new support for pixel-based displays (
displayio
) - a port to the Nordic nRF52840 microcontroller, including support as a BLE beacon or peripheral (
bleio
) - USB MIDI support
- messages translated into multiple languages
Installation
To install follow the instructions in our new Welcome to CircuitPython! guide. To install the latest libraries, see this page in that guide.
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 5
- Fixed USB HID bug which caused memory corruption that caused a wide variety of issues, including connection issues on certain platforms. Thanks to @tannewt for the fix and @jerryneedell, @mgithubreq, @uhrheber, @tboie, and @emteeoh for a number of different issues that pointed to it.
- Prevent filesystem corruption by flushing data to flash filesystem before soft reboots and regularly during normal operation. Thanks to @dhalbert for the fixes and @kevinjwalters for the issue.
- Fixed a bug in
TileGrid
that caused memory corruption whenpixel_shader
was aColorConverter
, causing backgrounds to disappear and crashes. Thanks to @dhalbert for the fix and @jerryneedell for a good test case. - Fixed USB CDC out buffering. Thanks to @tannewt and @hathach.
- Add
reversed()
to all builds. Thanks @dhalbert; thanks @ladyada for the suggestion. frequencyio
is enabled only on SAMD51 for now; not tested yet on SAMD21. Thanks @dhalbert, @sommersoft.- On nRF boards, allow NFC pins to be used for other purposes; thanks @dhalbert; thanks @uhrheber for the issue.
- Enable
nvm
for all SAMD boards. Thanks @jrcutler. - New
fontio
builtin module forGlyph
andBuiltinFont
. Thanks @tannewt. - Improve SPI display initialization. Thanks @makermelissa.
- Add
socket.recv_into
. Thanks @rhwlo. - Allow
display.Palette
to support more than 255 colors. Thanks @deshipu. - Calculate bpp properly for
displayio.Bitmap
. Thanks @deshipu. - Work on
ugame10
andpewpew
boards. Thanks @deshipu. - Build infrastructure improvements thanks to @tannewt.
- Fix nRF internal flash write logic. Thanks @dhalbert.
- Added better CPython compatibility to more builds. Thanks @dhalbert; thanks to @Singein for the issue.
- Updated frozen libraries. Thanks @dhalbert.
- Update status RGB LED more promptly. Thanks @tannewt.
New and Updated Translations
- Added Polish as a new translation. Many thanks to @deshipu.
- Updated Spanish translations. Thanks @yeyeto2788.
- Message cleanup thanks to @deshipu.
New Boards
- uChip SAMD21 board; thanks @ITACAInnovation.
Breaking Changes from 3.x!
ure
,ujson
, anduerrno
renamed tore
,json
, anderrno
to 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.readinto(buf, len)
. - UART.write(...) no longer allows strings to be written. The bytes written must be bytes or bytearray or an array.array.
framebuf
has been removed.displayio
is its replacement, and will be enhanced after 4.0 to includeframebuf
's functionality. Thanks to @tannewt.- Improve
struct
compatibility with CPython by enforcing stricter types. This may break your code! Thanks to @dhalbert.
Thanks
Thank you to all who used, tested, contributed, helped out, and participated on GitHub and/or Discord:
@adafruit, @anecdata, @arofarn, @arturo182, @ATMakersBill, @barbudor, @brennen, @brentru, @bwshockley, @C47D, @CarlFK, @carlosperate, @caternuson, @CedarGroveStudios, @chalei, @charlesbunaford, @cpforbes, @craigf, @dastels, @deshipu, @dhalbert, @dsiee, @edspark, @eighthree, @emteeoh, @furlaneto, @gcvasconcelos, @glennrub, @gpshead, @hathach, @iraytrace, @Jahor, @jasonp, @jepler, @jay Doscher, @jerryneedell, @jimblom, @johnpark, @JoshuaLowe1002, @Juanita, @KacperLa, @kattni, @kevinjwalters, @klardotsh, @Klowner, @ladyada, @larsks, @madbodger, @maholli, @Makdaam, @makermelissa, @mattyt, @mchobby, @microbuilder, @Mikebarela, @mr. Certainly, @mrmcwethy, @nickzoic, @notro, @OldCrow, @penguindustin, @PhredFL, @platipo, @Rathmore, @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
Documentation is available in readthedocs.io.
Here are all the changes since 4.0.0-beta.5.
Here are all the changes since 3.1.2.
This release is based on MicroPython 1.9.4 @25ae98f. Support upstream MicroPython by purchasing a PyBoard (from Adafruit here).
Troubleshooting
Check out this guide for info on common problems with CircuitPython. If you are still having, then post to the Adafruit Support Forums and join Discord.
CircuitPython 4.0.0 Beta 5!
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.
When you find a bug please check the current known issues and file an issue if something isn't already known.
circuitpython.org
Downloads are now available from circuitpython.org! This site makes it much easier to select the correct file and language for your board. The downloads page is here.
4.0.0
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
Installation
To install follow the instructions in our new Welcome to CircuitPython! guide. To install the latest libraries, see this page in that guide.
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.
Known Issues
- 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 @uhrheber for testing.
Breaking Changes from 3.x!
ure
,ujson
, anduerrno
renamed tore
,json
, anderrno
to 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.readinto(buf, len)
. - UART.write(...) no longer allows strings to be written. The bytes written must be bytes or bytearray or an array.array.
framebuf
has been removed.displayio
is its replacement, and will be enhanced after 4.0 to includeframebuf
's functionality. Thanks to @tannewt.- Improve
struct
compatibility with CPython by enforcing stricter types. This may break your code! Thanks to @dhalbert.
Thanks
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
Documentation is available in readthedocs.io.
Here are all the changes since 4.0.0-beta.4.
Here are all the changes since 3.1.2.
This release is based on MicroPython 1.9.4 @25ae98f. Support upstream MicroPython by purchasing a PyBoard (from Adafruit here).
Troubleshooting
Check out this guide for info on common problems with CircuitPython. If you are still having, then post to the Adafruit Support Forums and join Discord.
CircuitPython 4.0.0 Beta 4!
This is hopefully the last beta build of 4.0.0 before release candidate. 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.
When you find a bug please check the current known issues and file an issue if something isn't already known.
circuitpython.org
Downloads are now available from circuitpython.org! This site makes it much easier to select the correct file and language for your board. The downloads page is here.
4.0.0
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
Installation
To install follow the instructions in our new Welcome to CircuitPython! guide. To install the latest libraries, see this page in that guide.
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 3
- Replace
position
in TileGrid with separatex
andy
to make it consistent with Group. This will require code and library updates. Thanks to @tannewt - Remove networking support from Feather M0 Express and Metro M0 Express. Thanks to @tannewt
- Add Pirate language support. Thanks to @sommersoft
- Updates to pewpew10 and ugame10. Thanks to @deshipu
- Group now takes
x
andy
keyword args for initial position. Thanks to @tannewt - Add support for changing tile indices in TileGrid using []. Thanks to @tannewt
- atmel-samd: PWM fix allowing for more outputs to work. Thanks to @dhalbert
- Add checks to prevent modifying the filesystem when read-only such as moving a file. Thanks to @tannewt
New Boards
Breaking Changes from 3.x!
ure
,ujson
, anduerrno
renamed tore
,json
, anderrno
to 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.readinto(buf, len)
. - UART.write(...) no longer allows strings to be written. The bytes written must be bytes or bytearray or an array.array.
framebuf
has been removed.displayio
is its replacement, and will be enhanced after 4.0 to includeframebuf
's functionality. Thanks to @tannewt.- Improve
struct
compatibility with CPython by enforcing stricter types. This may break your code! Thanks to @dhalbert.
Thanks
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
Documentation is available in readthedocs.io.
Here are all the changes since 4.0.0-beta.3.
Here are all the changes since 3.1.2.
This release is based on MicroPython 1.9.4 @25ae98f. Support upstream MicroPython by purchasing a PyBoard (from Adafruit here).
Troubleshooting
Check out this guide for info on common problems with CircuitPython. If you are still having, then post to the Adafruit Support Forums and join Discord.
CircuitPython 4.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.
When you find a bug please check the current known issues and file an issue if something isn't already known.
4.0.0
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
Installation
To install follow the instructions in our new Welcome to CircuitPython! guide. To install the latest libraries, see this page in that guide.
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.
rotaryio
added to nrf port, thanks to @nickzoic.ENOSPC
error now has numan-readable text, thanks to @cpforbes.- USB MIDI fixes, thanks to @cpforbes.
- Set
__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.
- Many
displayio
additions, improvements, and fixes, thanks to @tannewt. displayio
and PyPortal board fixes and improvements, thanks to @TG-Techie.- Fix
atmel-samd
UART implementation, thanks to @dhalbert. - Additional
re
(wasure
) 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
atmel-samd
andnrf
ports were also made much more similar, and share more common settings now. Thanks to @dhalbert. - Support
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. bleio
bug 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.
- Add
.height
and.width
properties toDisplay
, thanks to @penguindustin. - 'displayio` refresh fixes, thanks to @dhalbert.
PWMOut
fixes on atmel-samd, thanks to @dhalbert, and thanks to @kevinjwalters for discovering the problem and testing the fix.frequencyio.FrequencyIn
frequency measurement capability on atmel-samd ports, thanks to @sommersoft.
New Boards
Breaking Changes from 3.x!
ure
,ujson
, anduerrno
renamed tore
,json
, anderrno
to 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.readinto(buf, len)
. - UART.write(...) no longer allows strings to be written. The bytes written must be bytes or bytearray or an array.array.
framebuf
has been removed.displayio
is its replacement, and will be enhanced after 4.0 to includeframebuf
's functionality. Thanks to @tannewt.- Improve
struct
compatibility with CPython by enforcing stricter types. This may break your code! Thanks to @dhalbert.
Thanks
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
Documentation is available in readthedocs.io.
Here are all the changes since 4.0.0-beta.2.
Here are all the changes since 3.1.2.
This release is based on MicroPython 1.9.4 @25ae98f. Support upstream MicroPython by purchasing a PyBoard (from Adafruit here).
Troubleshooting
Check out this guide for info on common problems with CircuitPython. If you are still having, then post to the Adafruit Support Forums and join Discord.
CircuitPython 4.0.0 Beta 2!
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.
When you find a bug please check the current known issues and file an issue if something isn't already known.
4.0.0
4.0.0 is the latest major revision of CircuitPython and features support for the nRF52840 BLE chipset and translated messages.
Installation
To install follow the instructions in our new Welcome to CircuitPython! guide. To install the latest libraries, see this page in that guide.
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 1
- nrf: Add
touchio
support to nRF52840 using a 1mOhm drain resistor. Thanks to @nickzoic - nrf: Improve USB and BLE coexistence. Thanks to @hathach
displayio
changes. Thanks to @tannewt- Adds serial output to displays when they are available.
- Replaces Sprite with TileGrid which is more generic.
Display
now manages the backlight brightness. To change it manually dodisplay.auto_brightness = False
and then setdisplay.brightness
with a value 0 to 1.0.- Add support for display rotation.
- Enables FATFS fast seek to slightly improve file read times. Thanks to @tannewt
New Boards
- SparkFun LumiDrive. Thanks to @edspark
- SparkFun Redboard Turbo. Thanks to @edspark
Breaking Changes from 3.x!
- 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.readinto(buf, len)
- UART.write(...) no longer allows strings to be written. The bytes written must be bytes or bytearray or an array.array.
framebuf
has been removed.displayio
is its replacement, and will be enhanced after 4.0 to includeframebuf
's functionality.- Improve
struct
compatibility with CPython by enforcing stricter types. This may break your code! Thanks to @dhalbert
Known Issues
None
Thanks
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, @nickzoic, @sabas1080, @sajattack, @JoshuaLowe1002, @Senuros, @mchobby, @Retoc, @CedarGroveStudios, @bwshockley, @yeyeto2788, @jimblom, @rhooper, @ShawnHymel, @TG-Techie, @eighthree, @arofarn, @chalei, @vgoodwinv, @gpshead, @dsiee, @Tasm-Devil, @larsks, @CarlFK, @edspark and surely more we have missed. Join us on the Discord chat to collaborate.
Documentation
Documentation is available in readthedocs.io.
Here are all the changes since 4.0.0-beta.1.
Here are all the changes since 3.1.2.
This release is based on MicroPython 1.9.4 @25ae98f. Support upstream MicroPython by purchasing a PyBoard (from Adafruit here).
Troubleshooting
Check out this guide for info on common problems with CircuitPython. If you are still having, then post to the Adafruit Support Forums and join Discord.
CircuitPython 4.0.0 Beta 1
This release includes a number of bug fixes to bleio
and displayio
since Beta 0.
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.
When you find a bug please check the current known issues and file an issue if something isn't already known.
4.0.0
4.0.0 is the latest major revision of CircuitPython and features support for the nRF52840 BLE chipset and translated messages.
Installation
To install follow the instructions in our new Welcome to CircuitPython! guide. To install the latest libraries, see this page in that guide.
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 0
bleio
fixes that make it work with newer iOS devices and Android. Thanks to @dhalbert- Fix
bleio
docs. Thanks to @dhalbert - Fix time.struct_time() incorrect argument checking. Thanks to @jerryneedell
- Fix color computation in
displayio.Palette
and make init code more USB friendly. Thanks to @tannewt - Translation updates:
- German thanks to @Tasm-Devil
New Boards
- SparkFun SAMD21 Dev. Thanks to @ShawnHymel
Breaking Changes from 3.x!
- 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.readinto(buf, len)
- UART.write(...) no longer allows strings to be written. The bytes written must be bytes or bytearray or an array.array.
framebuf
has been removed.displayio
is its replacement, and will be enhanced after 4.0 to includeframebuf
's functionality.- Improve
struct
compatibility with CPython by enforcing stricter types. This may break your code! Thanks to @dhalbert
Known Issues
Thanks
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, @nickzoic, @sabas1080, @sajattack, @JoshuaLowe1002, @Senuros, @mchobby, @Retoc, @CedarGroveStudios, @bwshockley, @yeyeto2788, @jimblom, @rhooper, @ShawnHymel, @TG-Techie, @eighthree, @arofarn, @chalei, @vgoodwinv, @gpshead, @dsiee, @Tasm-Devil, @larsks, @CarlFK and surely more we have missed. Join us on the Discord chat to collaborate.
Documentation
Documentation is available in readthedocs.io.
Here are all the changes since 4.0.0-beta.0.
Here are all the changes since 3.1.2.
This release is based on MicroPython 1.9.4 @25ae98f. Support upstream MicroPython by purchasing a PyBoard (from Adafruit here).
Troubleshooting
Check out this guide for info on common problems with CircuitPython. If you are still having, then post to the Adafruit Support Forums and join Discord.
CircuitPython 4.0.0 Beta 0!
This release includes a number of excellent enhancements since Alpha 5 including many bleio
and displayio
improvements.
This is the first 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.
When you find a bug please check the current known issues and file an issue if something isn't already known.
4.0.0
4.0.0 is the latest major revision of CircuitPython and features support for the nRF52840 BLE chipset and translated messages.
Installation
To install follow the instructions in our new Welcome to CircuitPython! guide. To install the latest libraries, see this page in that guide.
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 Alpha 5
displayio
improvements. Thanks to @tannewt- Dynamic displays are now supported.
- 8 bit parallel display bus is now supported.
- Shapes are now supported with
displayio.Shape
. (Meant to be subclassed.) - Hallowing display now uses
board.SPI()
so user can use it as well.
bleio
has been rewritten to work in conjunction with Adafruit_CircuitPython_BLE. Together they now support the standard Nordic BLE UART Service. Various kinds of advertising beacons are supported as well. Also see the new library Adafruit_CircuitPython_Bluefruit, which supports communication using the Adafruit Bluefruit LE Connect app. Thanks to @dhalbert- Add USB Midi support. Thanks to @tannewt
- Add
_pixelbuf
module to speed up RGBW pixels like NeoPixel and DotStar. Thanks to @rhooper - nrf: Add PulseIn support. Thanks to @hathach
- nrf: Remove framebuf.
displayio
is supported. Thanks to @jerryneedell - atmel-samd: Fix the I2C on Grand Central M4 Express
- Improve
struct
compatibility with CPython by enforcing stricter types. This may break your code! Thanks to @dhalbert - Add
x
support to struct unpack. Thanks to @dhalbert. - Add
.height
and.width
to OnDiskBitmap. Thanks to @siddacious - Add support for subclassing native classes that take kwargs into
__init__
. Thanks to @tannewt - README improvements. Thanks to @kattni
- New Bahasa Indonesia (ID) translation thanks to @chalei
- Translation updates:
- German thanks to @Tasm-Devil
- Spanish thanks to @yeyeto2788,
- French thanks to @arofarn
- Tagalog thanks to @eighthree
New Boards
- SparkFun nRF52840 Mini. Thanks to @jimblom.
- Arduino MKR Zero. Thanks to @ShawnHymel
- SparkFun SAMD21 Mini. Thanks to @ShawnHymel
- Datalore IP M4. Thanks to @TG-Techie.
- MakerDiary nRF52840 MDK USB Dongle. Thanks to @gpshead.
Breaking Changes from 3.x!
- 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.readinto(buf, len)
- UART.write(...) no longer allows strings to be written. The bytes written must be bytes or bytearray or an array.array.
framebuf
has been removed.displayio
is its replacement, and will be enhanced after 4.0 to includeframebuf
's functionality.- Improve
struct
compatibility with CPython by enforcing stricter types. This may break your code! Thanks to @dhalbert
Known Issues
- Some documentation in the
bleio
module is outdated and incorrect. bleio
services don't seem to work properly on some newer models of iOS devices, and perhaps on some Android devices as well. iPhones 6s and before seem to work, but we have had trouble with iPhone 7. A 2018 iPad also does not work. The problems seem to be due to hardware rather than iOS versions.
Thanks
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, @nickzoic, @sabas1080, @sajattack, @JoshuaLowe1002, @Senuros, @mchobby, @Retoc, @CedarGroveStudios, @bwshockley, @yeyeto2788, @jimblom, @rhooper, @ShawnHymel, @TG-Techie, @eighthree, @arofarn, @chalei, @vgoodwinv, @gpshead, @dsiee, @Tasm-Devil, @larsks, @CarlFK and surely more we have missed. Join us on the Discord chat to collaborate.
Documentation
Documentation is available in readthedocs.io.
Here are all the changes since 4.0.0-alpha.5.
Here are all the changes since 3.1.2.
This release is based on MicroPython 1.9.4 @25ae98f. Support upstream MicroPython by purchasing a PyBoard (from Adafruit here).
Troubleshooting
Check out this guide for info on common problems with CircuitPython. If you are still having, then post to the Adafruit Support Forums and join Discord.
CircuitPython 3.1.2
Changes since 3.1.1
- All frozen libraries have been updated to their latest versions as of 2019-01-05.
- Added
runtime.serial_bytes_available
. ReturnsTrue
if any bytes are available to read on the USB serial input. Allows for polling to see whether to call the built-in input() or wait. (read-only). Thanks to @ATMakersBill. - nRF52840-related builds were removed from 3.x as of 3.1.2 because certain software downloads that 3.x depends on were removed from Nordic's website. It is no longer possible to build these on the 3.x branch. But see the 4.0 (
master
) branch for viable and better support for nRF52840. Note also that nRF52832 builds from commits before 3.1.2 will no longer build due to changed download locations on the Nordic website. Thanks to @dhalbert.
Installation
To install follow the instructions in our new Welcome to CircuitPython! guide. To install the latest libraries, see this page in that guide.
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).
All builds are available as both UF2 and bin files here along with test builds.
Documentation
Documentation is available on readthedocs.io.
Here are all the changes since 3.1.1.
This release is based on MicroPython 1.9.3. Support upstream MicroPython by purchasing a PyBoard (from Adafruit here).
mpy-cross
Pre-built mpy-cross
executables are available above for MacOS, Windows, Ubuntu, and Raspbian. For MacOS, Ubuntu, and Raspbian, you must make the mpy-cross
download executable by doing. Then you can compile a .py
file to .mpy
:
$ chmod +x mpy-cross-whatever-you-downloaded # you only need to do this once
$ ./mpy-cross-whatever-you-downloaded yourfile.py # this will generate yourfile.mpy
Troubleshooting
Check out this guide for info on common problems with CircuitPython. If you are still having trouble, then post to the Adafruit Support Forums and join Discord.