CircuitPython 6.2.0 Released!
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

CircuitPython 6.2.0 Released!

by danhalbert on Mon Apr 05, 2021 5:41 pm

This is CircuitPython 6.2.0, the latest minor revision of CircuitPython, and is a new stable release. See Port status below for details on port stability, and Known Issues for known problems. If you find any issues with this release, please file an issue.

Download from circuitpython.org
Firmware downloads are available from the downloads page on circuitpython.org. The site makes it easy to select the correct file and language for your board.

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).

Port status
CircuitPython has a number of "ports" that are the core implementation for a variety of microcontroller families. Stability varies on a per-port basis. As of this release, atmel-samd, cxd56 (Spresense), nrf, and stm for the F4 family are stable. esp32s2, raspberrypi, and stm for other STM chip families are being actively improved but may be missing functionality and have bugs. litex and mimxrt10xx are in an alpha state and will have bugs and missing functionality.

Changes since 6.2.-rc.0
  • Fix regression of HID Mouse support on MacOS. #4558. Thanks @dhalbert.
Change since 6.1.0
The changes are too extensive to list here. Please see these releases for details:

Breaking changes since 5.x
  • i2cslave is now i2cperipheral and the class in it is changed as well.
  • The stop kwarg has been removed from I2C.writeto(). If no stop is desired, then use writeto_then_readfrom.
  • The default speed of busio.I2C and board.I2C is now 100khz, not 400khz as before. Use busio.I2C to set the speed explicitly. #3471 Thanks @caternuson, @ladyada, @hierophect and @tannewt
  • _bleio.ConnectionError has be removed. Code will now raise the native ConnectionError instead.
Known issues
Thank you to all who used, tested, and contributed since 6.1.0. Join us on the Discord chat to collaborate.

Documentation is available in readthedocs.io.

This release is based on MicroPython 1.9.4 @25ae98f. Support upstream MicroPython by purchasing a PyBoard (from Adafruit here) or sponsoring MicroPython on GitHub.

One important feature of CircuitPython is translated control and error messages. With the help of fellow open source project Weblate, we're making it even easier to add or improve translations. Sign in with an existing account such as Github, Google or Facebook and start contributing through a simple web interface. No forks or pull requests needed!

Check out this guide for info on common problems with CircuitPython. If you are still having issues, then post to the Adafruit Support Forums and join Discord.

Posts: 2430
Joined: Tue Aug 08, 2017 12:37 pm

Re: CircuitPython 6.2.0 Released!

by Lolyn on Sat May 15, 2021 1:47 pm

I can't find where to download Circuit Python. The Adafruit download page takes me to the Microsoft Store and it is not shown there. I am current using Arduino on my Playground Circuit Express but want to try Circuit Python.

Posts: 2
Joined: Sat May 15, 2021 1:43 pm

Re: CircuitPython 6.2.0 Released!

by tannewt on Mon May 17, 2021 1:36 pm

CircuitPython is here for the CircuitPlayground Express: https://circuitpython.org/board/circuit ... d_express/

Posts: 2438
Joined: Thu Oct 06, 2016 8:48 pm

Re: CircuitPython 6.2.0 Released!

by RufusVS2020 on Sat May 22, 2021 12:22 pm

I'm not sure if this is a good place for suggestions about the CircuitPython ecosystem, but here goes:

I want to preface this by saying CircuitPython and Adafruit boards are
a delight in ease of use and hacking up simple circuits. But as a professional
programmer, I feel hobbled by some of the conveniences (that currently
have no "workarounds")

My main sore spot is the fact that CircuitPython only runs the program named
"code.py" (or "main.py").

I would like to see a modification to the Circuit Python reload function to
would be to look for a file "start.txt" (or some other name) that contains
the name of the python file to run. This would have multiple advantages:

1) You could put multiple programs on a given device, and switch between
them by simply rewriting the "start.txt" file with the new name.

2) As you are editing and running your program in Mu, it can have a "real" file
name that describes the program and can be saved to your list of programs
you are writing, without conflict. Every time your edits are saved to the device
the file is run because "start.txt" is already pointing to it.

This change would not hurt current users, because the reload could still
run "code.py" if there is no "start.txt" file present.

A side note: It would be nice if Mu also had a "load from" and "save as" feature
to save and load your programs from the host computer instead of back and forth
to the device only (and have the ability to change the filenames).

Posts: 14
Joined: Thu Nov 19, 2020 6:31 pm

Re: CircuitPython 6.2.0 Released!

by danhalbert on Sat May 22, 2021 12:42 pm

You can achieve the same effect by using a import statement in code.py. An import can import any piece of code, not just a library. For instance, if you had program1.py and program2.py, you can edit code.py to import one or the other:
Code: Select all | TOGGLE FULL SIZE
# Run program1
import program1

Code: Select all | TOGGLE FULL SIZE
#Run program2
import program2

So code.py specifies which program to run, just as start.txt would.

Posts: 2430
Joined: Tue Aug 08, 2017 12:37 pm

Re: CircuitPython 6.2.0 Released!

by RufusVS2020 on Sat May 22, 2021 11:31 pm

Thanks Dan! I will certainly try that approach!

So when I am working on a program (e.g. my current program is a password typer), I could just save a
code.py file that is simply:

import password_typer

and in my mu editor, I can be editing and saving a file called password_typer.py, and every time I save it
to my device, it will run?

That is a big step forward! Now all I need is a way to save the program to my host at the same time as I save
it to my device. One approach is to write a separate program that runs in the background looking for file
updates on my device, and copying them to my main computer....

Posts: 14
Joined: Thu Nov 19, 2020 6:31 pm

Please be positive and constructive with your questions and comments.