View this email in your browser. Warning: Flashing Imagery
Welcome to the latest Python on Microcontrollers newsletter! No sooner than PyCon US wrapped up, there was a flood of MicroPython news. On its tenth anniversary, MicroPython version 1.20.0 was released with many exciting features. CircuitPython 8.1.0-beta.2 is close to the final 8.1.0 release and has DVI video baked in! It’s never been a better time to try or work with Python to program microcontrollers and single board computers. I’m looking forward to everyone flying home and putting some of their Python knowledge to good use – whether commercially or as open source. What are you working on? Be sure to let us know at cpnews(at)adafruit(dot)com. – Ed.
We’re on Discord, Twitter, and for past newsletters – view them all here. If you’re reading this on the web, subscribe here. Here’s the news this week:
MicroPython v1.20.0 Released
MicroPython v1.20.0 has been released and it contains a wide array of improvements and fixes. Of particular note, it has a new lightweight package manager called mip, which uses a custom protocol to query and install packages that is optimised for embedded systems. It is intended to take over the role of upip and supports installing packages from micropython-lib as well as any URL. The Raspberry Pi Pico W is now supported with WiFi. See all the changes – GitHub. Download and GitHub Discussions.
“…there is a lot more coming in the pipeline. MicroPython is part of Google’s Season of Docs for the third time so there will be even more improvements to the documentation in the coming 6 months. There is work on some new hardware targets, and we intend to put more effort into the zephyr port. We would also like to make progress this year towards MicroPython v2.
Damien George discusses the MicroPython v1.20.0 release at the MicroPython Meetup – YouTube.
A review from hackster.io – hackster.io.
Pimoroni has updated their version of MicroPython with the goodness of the recent release – GitHub.
Celebrating Ten Years of MicroPython
MicroPython is celebrating its tenth year! Have a closer look at the evolution – Poster and Video, via Twitter.
CircuitPython 8.1.0 Beta 2 Released
CircuitPython 8.1.0-beta.2, a beta release for CircuitPython 8.1.0, is now out and it is the latest unstable release – GitHub.
Notable changes since 8.0.0:
- Silicon Labs (SiLabs) MG24 microcontroller family port (
silabs
), contributed by Silicon Labs.
- Add animated GIF support, including palette support:
gifio.OnDiskGif
.
- Add
safemode.py
, for programmatic handling of safe mode.
- Add ESP-NOW support on Espressif.
synthio
improvements and new features. API may change before 8.1.0 final.
- Add
picodvi
on RP2040: DVI/HDMI framebuffer and displayio
support.
- Add 7-color e-ink display support.
- Add
bitmaptools.drawpolygon()
.
- Allow setting pystack size in
settings.toml
.
- Add dither support to
Palette
.
- Support
array.extend(iterable)
.
PyCon US 2023 Wraps Up After Sprints
The Adafruit Team at PyCon US 2023 was Captained by Kattni Rembor with able First Officer Jeff Epler.
The sprints lasted three days and drew a large crowd to look at furthering the CircuitPython project. Special thanks to Alec (tekktrik), Keith (KeithTheEE), Rose (krayola) and all the community members who turned out to assist and make the sessions successful.
Below is one of two special Adafruit lunch box kits, curated by Kattni and signed by Ladyada herself! It was stuffed with goodies, donated and auctioned off in support of PyLadies. One of the winners donated a kit to a PyCon staff member’s child. It’s a very special community.
PicoPins Updated
Phil Howard has released version 1.1.0 of his picopins command line Raspberry Pi Pico pinout tool with regex label search, refactoring and more – pico.pinout.xyz via Twitter.
Install: python3 -m pip install —upgrade picopins
This Week’s Python Streams
Python on Hardware is all about building a cooperative ecosphere which allows contributions to be valued and to grow knowledge. Below are the streams within the last week focusing on the community.
CircuitPython Deep Dive Stream
This week, Tim streamed work on testing and reviewing PRs.
You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.
CircuitPython Parsec
John Park’s CircuitPython Parsec this week is on Touchscreen Calibration – Adafruit Blog and YouTube.
Catch all the episodes in the YouTube playlist.
The CircuitPython Show
The CircuitPython Show is an independent podcast hosted by Paul Cutler, focusing on the people doing awesome things with CircuitPython. Each episode features Paul in conversation with a guest for a short interview – CircuitPythonShow.
The CircuitPython Show is now on the Fediverse. Follow the show from your favorite Mastodon client at @circuitpythonshow@www.circuitpythonshow.com. The latest episode was released on April 24th and features Seth Kerr. Seth and Paul talk all about FPGAs, including Seth’s IcyBlue FPGA Feather – Show List.
Project of the Week: A MicroPython Traffic Light Simulation
A teeny tiny traffic signal simulator using the Pimoroni Cosmic Unicorn LED display. There is one simulating the Red/Yellow/Green lights and one simulating an intersection – Twitter Thread and source – GitHub.
News from around the web!
A DIY Controller for M8 Tracker using a Raspberry Pi Pico and CircuitPython – Adafruit Blog.
How To Manage MicroPython Modules With mip on Raspberry Pi Pico – Tom’s Hardware.
Using the new package manager (mip) for MicroPython with Raspberry Pi Pico – YouTube.
Bass reactive LED lights for a car with ESP32 and MicroPython – Hackaday, Project and GitHub.
Bradán Lane (@bradanlane) writes” “Took a little time to update my RP2040 ‘kitchen sink’ to CircuitPython 8.0.5 and write some demo/test code.” – Twitter.
A brand new Pybricks MicroPython beta release is out. Highlights include reading the robot heading with a gyro and a GyroDriveBase class for increased precision in straights and turns – PyBricks Beta via Twitter.
Making a pet tracker with MicroPython – HackSpace Magazine pp34-39.
Using the Pimoroni DrumHAT with Raspberry Pi Pico using CircuitPython – Twitter.
Off label use for the TRS MIDI out port on the Music Thing Modular 8mu — controlling NeoPixels plugged into the 3.5mm port using CircuitPython – Twitter.
“What started with my needing a new CPU fan resulted in a new case with aRGB fans. My motherboard didn’t support aRGB, so rather then buy a controller for $20 I spent $100 making my own! nRF52840 for BLE with level shifting logic running CircuitPython” – Twitter.
A line following robot with MicroPython and Raspberry Pi Pico – YouTube via Twitter.
“Got an inky frame (e-ink display + 256kb Raspberry Pi Pico) made by Pimoroni… Time to begin my life as a local MicroPython shitposter on the edge” – Twitter.
Raspberry Pi PicoW WiFi communication, remote control and display, CircuitPython edition – Logikara Blog.
MicroPython for Kids: NeoPixels – MicroPython for Kids.
Raspberry Pi Pico TFT LCD Touch Screen Tutorial – MicroPython – DIY Project Lab.
“Sneak preview of the FNAF tabletop fan game. It’s running CircuitPython 8. The cheat mode is on to show where the enemy is. The majority of coding is more or less done. Now I got to install lights and controls and a movable door then decorate the room” – Twitter.
“Made a wireless button using a pair of Raspberry Pi Pico W to fire the annoying Zoom macro (Ctrl+Alt+Shift+H). Started following The Pi Hut’s tutorial, then realised MicroPython doesn’t support HID. CircuitPython saved the day, and my remote came in handy at our last seminar” – Twitter.
PyDev of the Week: Steven Diamond on Mouse vs Python
CircuitPython Weekly Meeting for May 1, 2023 (notes) on YouTube
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? How To Read Documentation For Beginners.
Coming Soon
CircuitPython support for DVI ‘Bell works with Wifi on Pico W. Adafruit is testing it with CircuitPython and WiFi support: so they’re able to connect over the internet with SSL to a site, get data, and then display it on a monitor. Since the Pico W requires a lot of memory for the wireless connectivity, they’re using monochrome DVI output which means there is about 50K remaining after the framebuffer is allocated for the DVI display. CircuitPython supports 1, 2 or 8 bit color, which you can configure based on your memory availability – Twitter.
New
If you have trouble keeping your calatheas and peperomias happy and not over watering them to root rot ruin, why not take a gander at the Plant Monitor from Ada-friend Monk Makes? It’s a super easy and friendly way to get started with sensing & gardening projects with no soldering required – Adafruit Blog, Guide and Order.
New Boards Supported by CircuitPython
The number of supported microcontrollers and Single Board Computers (SBC) grows every week. This section outlines which boards have been included in CircuitPython or added to CircuitPython.org.
This week, there was one new board added:
Note: For non-Adafruit boards, please use the support forums of the board manufacturer for assistance, as Adafruit does not have the hardware to assist in troubleshooting.
Looking to add a new board to CircuitPython? It’s highly encouraged! Adafruit has four guides to help you do so:
New Learn Guides!
Weather Wise Wifi Umbrella Stand from Erin St Blaine
The MonkMakes Plant Monitor and CircuitPython from Simon Monk
Feather RP2040 DVI Video Synth from Liz Clark
Updated Learn Guides!
MQTT in CircuitPython from Brent Rubell
CircuitPython Libraries!
CircuitPython support for hardware continues to grow. We are adding support for new sensors and breakouts all the time, as well as improving on the drivers we already have. As we add more libraries and update current ones, you can keep up with all the changes right here!
For the latest libraries, download the Adafruit CircuitPython Library Bundle. For the latest community contributed libraries, download the CircuitPython Community Bundle.
If you’d like to contribute, CircuitPython libraries are a great place to start. Have an idea for a new driver? File an issue on CircuitPython! Have you written a library you’d like to make available? Submit it to the CircuitPython Community Bundle. Interested in helping with current libraries? Check out the CircuitPython.org Contributing page. We’ve included open pull requests and issues from the libraries, and details about repo-level issues that need to be addressed. We have a guide on contributing to CircuitPython with Git and GitHub if you need help getting started. You can also find us in the #circuitpython channels on the Adafruit Discord.
You can check out this list of all the Adafruit CircuitPython libraries and drivers available.
The current number of CircuitPython libraries is 426!
New Libraries!
Here’s this week’s new CircuitPython libraries:
Updated Libraries!
Here’s this week’s updated CircuitPython libraries:
Total Library Stats
- 105845 PyPI downloads over 310 libraries
Top 10 Libraries by PyPI Downloads
- Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 9094
- Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 6419
- Adafruit CircuitPython Register (adafruit-circuitpython-register): 2020
- Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1303
- Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1231
- Adafruit CircuitPython HTTPServer (adafruit-circuitpython-httpserver): 1168
- Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1105
- Adafruit CircuitPython framebuf (adafruit-circuitpython-framebuf): 1058
- Adafruit CircuitPython RGB Display (adafruit-circuitpython-rgb-display): 995
- Adafruit CircuitPython PCA9685 (adafruit-circuitpython-pca9685): 939
What’s the CircuitPython team up to this week?
What is the team up to this week? Let’s check in!
Dan
I released CircuitPython 8.1.0-beta.2 on April 26, about four weeks after the previous beta release. We are making steady progress towards 8.1.0 final.
I was on Show and Tell on Wednesday, showing off a simple demo of the upcoming Adafruit Feather RP2040 Prop-Maker, which is another RP2040 “Bones” board. This Feather features a 5v level-shifted NeoPixel pin, an LIS3DH accelerometer, an I2S audio amplifier, a servo pin header, and an extra GPIO you can use to attach a button or switch, or whatever). The NeoPixel strip connections, the speaker, and extra GPIO are all screw terminals, so you don’t need to do any soldering. (Ed: makes for a nice lower cost lightsaber, etc.)
Tim
This week a few members of the team were off at PyCon and sprints were occurring with many new contributors picking up issues for the first time and submitting PRs. I’ve been spending time during the week reviewing the increased amount of submissions.
Scott
The PicoDVI support was merged in last week. It is in 8.1.0-beta.2. Beware that the API will change a little bit before 8.1.0 stable due to feedback from folks using it.
I also fixed an e-paper display issue due to incorrect byte order in addresses. This impacts SSD1675, SSD1680 and SSD1681 as far as I know. The fix is in CircuitPython core but the libraries also need to be updated.
Now I’m back to my i.MX RT work. I’m adding support for more versions of the chip. I’m also speeding up the flash chip speed and getting about a 20% performance boost on the benchmarks.
Upcoming events!
The next MicroPython Meetup in Melbourne will be on May 24th – Meetup. From the April 26th meeting – Notes and Video.
EuroPython 2023 will be July 17-23, 2023, in Prague, Czech Republic and Remote – EuroPython 2023.
PyCon UK will be returning to Cardiff City Hall from Friday 22nd September to Monday 25th September 2023 – PyCon UK.
Send Your Events In
If you know of virtual events or upcoming events, please let us know via email to cpnews(at)adafruit(dot)com.
Latest releases
CircuitPython’s stable release is 8.0.5 and its unstable release is 8.1.0-beta.2. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20230501 is the latest CircuitPython library bundle.
v1.20.0 is the latest MicroPython release. Documentation for it is here.
3.11.3 is the latest Python release. The latest pre-release version is 3.12.0a7.
3,513 Stars Like CircuitPython? Star it on GitHub!
Call for help – Translating CircuitPython is now easier than ever!
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! As always, if you run into trouble join us on Discord, we’re here to help.
37,254 thanks!
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 37,254 humans – thank you! Adafruit believes Discord offers a unique way for Python on hardware folks to connect. Join today at https://adafru.it/discord.
ICYMI – In case you missed it
Python on hardware is the Adafruit Python video-newsletter-podcast! The news comes from the Python community, Discord, Adafruit communities and more and is broadcast on ASK an ENGINEER Wednesdays. The complete Python on Hardware weekly videocast playlist is here. The video podcast is on iTunes, YouTube, IGTV (Instagram TV), and XML.
The weekly community chat on Adafruit Discord server CircuitPython channel – Audio / Podcast edition – Audio from the Discord chat space for CircuitPython, meetings are usually Mondays at 2pm ET, this is the audio version on iTunes, Pocket Casts, Spotify, and XML feed.
Contribute!
The CircuitPython Weekly Newsletter is a CircuitPython community-run newsletter emailed every Tuesday. The complete archives are here. It highlights the latest CircuitPython related news from around the web including Python and MicroPython developments. To contribute, edit next week’s draft on GitHub and submit a pull request with the changes. You may also tag your information on Twitter with #CircuitPython.
Join the Adafruit Discord or post to the forum if you have questions.