Skip to content

Releases: adafruit/circuitpython

CircuitPython 4.0.0 Release Candidate 0!

23 Apr 21:14
b87ce5b
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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.

CircuitPython 4.0.0 Beta 0!

23 Jan 19:29
07a4cc0
Compare
Choose a tag to compare
Pre-release

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:

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

  • 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

07 Jan 02:52
7d17414
Compare
Choose a tag to compare

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. Returns True 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.