Releases: adafruit/circuitpython
CircuitPython 4.0.0 Release Candidate 2!
This is it (again)! We added a number of last minute fixes and improvements due to PyCon 2019 sprints. We think this is stable but want you to test it out to be sure. If we don't find anything major, then this will be the 4.0.0 release. If there are any fixes to make we'll follow up with another release candidate.
If 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 Release Candidate 1
- Auto-complete now omits private variables until an
_has been typed. Thanks to @katlings and @deshipu - Auto-complete inserts spaces when no matches are found. Thanks to @scottbelden
- Reduce M0 Express build size by removing double float math. Thanks to @dhalbert
- Status LED is blue on MPY version mismatch. Thanks to @terriko
- ReloadExceptions no longer show a traceback. Thanks to @tannewt
on_next_resetnow works with safe mode again. Thanks to @tannewt and @hexthat- Fix crash on nRF boards with internal flash. Thanks to @tannewt and @jerryneedell
- Check int packing into bytes. Thanks to @godlygeek
- Fix
displayio.Groupscaling. Thanks to @tannewt and @caternuson - Network fixes thanks to @nickzoic and @gvcp
- Doc updates thanks to @saxenanurag and @mchua
New and Updated Translations
- More Italian translations. Thanks to @FezTheDev
- Spanish translation improvements. Thanks to @rafa-gould, @erikriver, and @sabas1080
New Boards
- Electronic Cats Escornabot Makech. Thanks @sabas1080
- Adafruit PyGamer. Thanks to @ladyada
- Robotics Masters Robo HAT MM1. Thanks to @wallarug
Breaking Changes from 3.x!
ure,ujson, anduerrnorenamed tore,json, anderrnoto 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.
framebufhas been removed.displayiois its replacement, and will be enhanced after 4.0 to includeframebuf's functionality. Thanks to @tannewt.- Improve
structcompatibility 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, @alwayslinux2, @anecdata, @arofarn, @arturo182, @ATMakersBill, @barbudor, @brennen, @brentru, @bwshockley, @C47D, @CarlFK, @carlosperate, @caternuson, @CedarGroveStudios, @chalei, @charlesbunaford, @cpforbes, @craigf, @dastels, @deshipu, @dhalbert, @dsiee, @dmazzella, @edspark, @eighthree, @emteeoh, @erikriver, @FezTheDev, @furlaneto, @gcvasconcelos, @glennrub, @godlygeek, @gpshead, @gvcp, @hathach, @hexthat, @iraytrace, @ITACAInnovation, @Jahor, @jasonp, @jepler, @jay Doscher, @jerryneedell, @jimblom, @johnpark, @JoshuaLowe1002, @jreese, @Juanita, @KacperLa, @katlings, @kattni, @kdb424, @kevinjwalters, @klardotsh, @Klowner, @ladyada, @larsks, @madbodger, @maholli, @Makdaam, @makermelissa, @mattyt, @mchobby, @mchua, @mgithubreq, @microbuilder, @Mikebarela, @mr. Certainly, @mrmcwethy, @nickzoic, @notro, @ntavish, @OldCrow, @penguindustin, @PhredFL, @platipo, @ptorrone, @rafa-gould, @Rathmore, @rdagger, @Retoc, @rhooper, @sabas1080, @sajattack, @sajattack, @saspa, @saxenanurag, @schmarty, @scottbelden, @Senuros, @ShawnHymel, @siddacious, @sommersoft, @SouthernDragon, @TangoJuliett, @tannewt, @Tasm-Devil, @terriko, @TG-Techie, @ThomasRKirkland, @uhrheber, @urish, @vgoodwinv, @xpecex, @yeyeto2788, @wallarug, @wawachief, 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-rc.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 Release Candidate 1!
This is it! We think this is stable but want you to test it out to be sure. If we don't find anything major, then this will be the 4.0.0 release. If there are any fixes to make we'll follow up with another release candidate.
If 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 7
- nrf: Added
nvmsupport. Thanks to @nickzoic and @dhalbert - Add USER_C_MODULE support. Thanks to @dmazzella.
- Added
gamepadshiftfor buttons connected to a shift register. Thanks to @deshipu and @tannewt - Refreshed the README and fixed PDF build. Thanks to @tannewt
- Clarified I2SOut error messages. Thanks to @C47D and @tannewt
- Fixed backlight flickering. Thanks to @dhalbert
- Update pybadge pinout for production revision. Thanks to @ladyada
- Numerous crash fixes. Thanks to @tannewt
New and Updated Translations
- Tweaks to Polish translation. Thanks to @deshipu
- Additional Chinese (Pinyin) translations. Thanks to @hexthat
- Tweaks to French translation. Thanks to @arofarn
New Boards
- Electronut Labs Papyr. Thanks @ntavish and @ITACAInnovation
Breaking Changes from 3.x!
ure,ujson, anduerrnorenamed tore,json, anderrnoto 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.
framebufhas been removed.displayiois its replacement, and will be enhanced after 4.0 to includeframebuf's functionality. Thanks to @tannewt.- Improve
structcompatibility 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, @alwayslinux2, @anecdata, @arofarn, @arturo182, @ATMakersBill, @barbudor, @brennen, @brentru, @bwshockley, @C47D, @CarlFK, @carlosperate, @caternuson, @CedarGroveStudios, @chalei, @charlesbunaford, @cpforbes, @craigf, @dastels, @deshipu, @dhalbert, @dsiee, @dmazzella, @edspark, @eighthree, @emteeoh, @furlaneto, @gcvasconcelos, @glennrub, @gpshead, @gvcp, @hathach, @hexthat, @iraytrace, @ITACAInnovation, @Jahor, @jasonp, @jepler, @jay Doscher, @jerryneedell, @jimblom, @johnpark, @JoshuaLowe1002, @jreese, @Juanita, @KacperLa, @kattni, @kdb424, @kevinjwalters, @klardotsh, @Klowner, @ladyada, @larsks, @madbodger, @maholli, @Makdaam, @makermelissa, @mattyt, @mchobby, @mgithubreq, @microbuilder, @Mikebarela, @mr. Certainly, @mrmcwethy, @nickzoic, @notro, @ntavish, @OldCrow, @penguindustin, @PhredFL, @platipo, @ptorrone, @Rathmore, @rdagger, @Retoc, @rhooper, @sabas1080, @sajattack, @sajattack, @saspa, @schmarty, @Senuros, @ShawnHymel, @siddacious, @sommersoft, @SouthernDragon, @TangoJuliett, @tannewt, @Tasm-Devil, @TG-Techie, @ThomasRKirkland, @uhrheber, @urish, @vgoodwinv, @xpecex, @yeyeto2788, @wawachief, 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.7.
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.
Note: 4.0.0-rc.0 was tagged but not really released. We wanted to get pybadge changes into the RC that make it work with the production board.
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.Groupinsert 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
displayiowhich 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, anduerrnorenamed tore,json, anderrnoto 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.
framebufhas been removed.displayiois its replacement, and will be enhanced after 4.0 to includeframebuf's functionality. Thanks to @tannewt.- Improve
structcompatibility 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
TileGridthat caused memory corruption whenpixel_shaderwas 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. frequencyiois 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
nvmfor all SAMD boards. Thanks @jrcutler. - New
fontiobuiltin module forGlyphandBuiltinFont. Thanks @tannewt. - Improve SPI display initialization. Thanks @makermelissa.
- Add
socket.recv_into. Thanks @rhwlo. - Allow
display.Paletteto support more than 255 colors. Thanks @deshipu. - Calculate bpp properly for
displayio.Bitmap. Thanks @deshipu. - Work on
ugame10andpewpewboards. 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, anduerrnorenamed tore,json, anderrnoto 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.
framebufhas been removed.displayiois its replacement, and will be enhanced after 4.0 to includeframebuf's functionality. Thanks to @tannewt.- Improve
structcompatibility 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, anduerrnorenamed tore,json, anderrnoto 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.
framebufhas been removed.displayiois its replacement, and will be enhanced after 4.0 to includeframebuf's functionality. Thanks to @tannewt.- Improve
structcompatibility 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
positionin TileGrid with separatexandyto 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
xandykeyword 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, anduerrnorenamed tore,json, anderrnoto 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.
framebufhas been removed.displayiois its replacement, and will be enhanced after 4.0 to includeframebuf's functionality. Thanks to @tannewt.- Improve
structcompatibility 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.
rotaryioadded to nrf port, thanks to @nickzoic.ENOSPCerror 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
displayioadditions, improvements, and fixes, thanks to @tannewt. displayioand PyPortal board fixes and improvements, thanks to @TG-Techie.- Fix
atmel-samdUART 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-samdandnrfports 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. 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.
- Add
.heightand.widthproperties toDisplay, 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.
New Boards
Breaking Changes from 3.x!
ure,ujson, anduerrnorenamed tore,json, anderrnoto 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.
framebufhas been removed.displayiois its replacement, and will be enhanced after 4.0 to includeframebuf's functionality. Thanks to @tannewt.- Improve
structcompatibility 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
touchiosupport to nRF52840 using a 1mOhm drain resistor. Thanks to @nickzoic - nrf: Improve USB and BLE coexistence. Thanks to @hathach
displayiochanges. Thanks to @tannewt- Adds serial output to displays when they are available.
- Replaces Sprite with TileGrid which is more generic.
Displaynow manages the backlight brightness. To change it manually dodisplay.auto_brightness = Falseand then setdisplay.brightnesswith 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.
framebufhas been removed.displayiois its replacement, and will be enhanced after 4.0 to includeframebuf's functionality.- Improve
structcompatibility 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
bleiofixes that make it work with newer iOS devices and Android. Thanks to @dhalbert- Fix
bleiodocs. Thanks to @dhalbert - Fix time.struct_time() incorrect argument checking. Thanks to @jerryneedell
- Fix color computation in
displayio.Paletteand 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.
framebufhas been removed.displayiois its replacement, and will be enhanced after 4.0 to includeframebuf's functionality.- Improve
structcompatibility 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.