Skip to content

Releases: adafruit/circuitpython

CircuitPython 4.0.0 Release Candidate 2!

10 May 20:24
36e2faf

Choose a tag to compare

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

New and Updated Translations

New Boards

Breaking Changes from 3.x!

  • ure, ujson, and uerrno renamed to re, json, and errno 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 include framebuf'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, @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!

23 Apr 23:20
681bfcb

Choose a tag to compare

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 nvm support. Thanks to @nickzoic and @dhalbert
  • Add USER_C_MODULE support. Thanks to @dmazzella.
  • Added gamepadshift for 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

Breaking Changes from 3.x!

  • ure, ujson, and uerrno renamed to re, json, and errno 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 include framebuf'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, @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!

23 Apr 21:14
b87ce5b

Choose a tag to compare

Please use 4.0.0 Release Candidate 1. It has a fix for pybadge.

CircuitPython 4.0.0 Beta 7

13 Apr 02:08
f8473f4

Choose a tag to compare

Pre-release

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

Breaking Changes from 3.x!

  • ure, ujson, and uerrno renamed to re, json, and errno 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 include framebuf'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!

30 Mar 00:16
5cc52fb

Choose a tag to compare

Pre-release

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 when pixel_shader was a ColorConverter, 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 for Glyph and BuiltinFont. 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 and pewpew 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

Breaking Changes from 3.x!

  • ure, ujson, and uerrno renamed to re, json, and errno 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 include framebuf'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!

17 Mar 14:15
60f7694

Choose a tag to compare

Pre-release

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

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, and uerrno renamed to re, json, and errno 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 include framebuf'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!

15 Mar 21:04
0cdb5fc

Choose a tag to compare

Pre-release

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 separate x and y 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 and y 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, and uerrno renamed to re, json, and errno 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 include framebuf'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 !

07 Mar 18:14
2de8236

Choose a tag to compare

Pre-release

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 (was 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 atmel-samd and nrf 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 to Display, 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, and uerrno renamed to re, json, and errno 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 include framebuf'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!

04 Feb 23:59
9bcc38e

Choose a tag to compare

Pre-release

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 do display.auto_brightness = False and then set display.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

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 include framebuf'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

28 Jan 06:02
825c80a

Choose a tag to compare

Pre-release

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:

New Boards

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 include framebuf'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.