Welcome to the latest Python on Microcontrollers newsletter! Your editor is back and extends thanks to Kattni & Paul for their hard work covering in my stead. CircuitPython Day 2023 is on for August 18th, keep an eye out for scheduled activities. CircuitPython 8.2.1 is out with more functionality. Finally, I’m looking to keep newsletters being published on Monday mornings (US time), so keep an eye on your inboxes every Monday instead of Tuesday – Anne Barela, Ed.
CircuitPython 8.2.1 Released
Notable changes to 8.2.1 since 8.1.0
- Continued enhancement of
Note for nRF52 boards only: If your board has an nRF52 UF2 bootloader whose version is before 0.6.1, you will not be able to load CircuitPython 8.2.0 and later. The 8.2.0 firmware is larger than what the bootloader can handle. See these instructions for updating your bootloader.
CircuitPython Hack Chat
Hackaday.io and Adafruit cosponsored a Hack Chat with key Adafruit folks about CircuitPython. If you missed the live broadcast last week, you can see it now – YouTube.
Adafruit IO WipperSnapper Now Supports 20 Boards
Wippersnapper is the no-code firmware for building internet-connected electronics projects. It now supports twenty (20) development boards with more to come – Adafruit Blog.
CircuitPython Day: August 18, 2023
The annual CircuitPython Day celebrations have been scheduled for August 18, 2023. Keep an eye on the Adafruit Blog for announcements as well as next week’s newsletter.
MicroPython Adds LoRa Support
Tom’s Hardware Interviews Edublocks Founder Josh Lowe
The Tom’s Hardware Pi Cast (July 25th) features Edublocks with Josh Lowe. “Learning to code with Python is fun, but it can also be difficult. So how can we help learners moving from blocks to Python?” – YouTube.
A Comprehensive Python Cheatsheet
One of the most popular items in our newsletters are when new cheat sheets are published in the community. Here is a newly published sheet by Jure Šorn – github.io.
hackster.io Reviews the Adafruit Matrix Portal S3
Adafruit Matrix Portal S3 Controls Large LED Matrices with CircuitPython. The update to the previous board improves performance and adds BLE support – hackster.io.
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
On Friday, Scott (the CircuitPython lead developer) returned and streamed work on USB Host.
You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.
Catch all the episodes in the YouTube playlist.
Project of the Week: Placing a Raspberry Pi in a Sony Playstation Portable
News from around the web!
Alasdair Allan documents his work hacking the Ikea Vindriktning air quality sensor. The project is in MicroPython and adds an Adafruit BMP280 barometric pressure sensor. The work borrows from Liz Clark’s tutorial which used CircuitPython and Adafruit IO – Raspberry Pi and GitHub.
Build a Raspberry Pi Pico Robot with Mecanum Wheels, programmed in MicroPython – The PiHut.
“A stacking watch stand for my daughter is mostly complete. Each section is adjustable for different sizes of watches/wrists. A simple CircuitPython program for the lights” – Twitter.
Drawing a 3D cube with CircuitPython and a Pimoroni PicoDisplay – Twitter.
“It was a lot of work the past months and a huge team effort but I’m extremely happy how the #flow3r Badge for #cccamp23 turned out! I hope it will bring a lot of fun to people long after the event. It is a small hand held touch music instrument that runs Micropython” – Twitter.
Arduino Nano ESP32 – A Short Tutorial to Setup and IoT Usage – YouTube.
Redis MicroPython Workshop with Raspberry Pi Pico W and Pimoroni GFX Pack – GitHub.
Textual Paint is a TUI (Text User Interface) image editor for a terminal. Inspired by MS Paint, it is built with Textual – GitHub.
PySimpleGUI is a Python package that enables Python programmers of all levels to create GUIs – GitHub.
PyDracula, a modern GUI using PySide6 / PyQt6 – GitHub.
Cerebrum is a system building modular firmware images for embedded microcontrollers that can be controlled from a host application connected via an RPC-like protocol on any serial bus, written in Python – GitHub.
PyDev of the Week: Sanskar Jethi on Mouse vs Python.
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Introducing CircuitPython Support for Silabs’ xG24 Boards.
RP2 Nano is an inexpensive Raspberry Pi RP2040 board with an Arduino Nano form factor – CNX Software.
UP 7000 is a powerful x86 alternative to the Raspberry Pi 4 SBC with an Intel Processor N50/N97/N100 CPU. The new fanless board also comes with up to 8GB LPDDR5, 64GB eMMC flash, and an onboard TPM 2.0 – CNX Software.
Robo Pico: Simplifying Robotics for Raspberry Pi Pico / Pico W, the board works with CircuitPython and MicroPython – Cytron.
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 were six new boards added!
- Pajenicko Picopad
- nRF52840 Connect Kit
- PicoADK – Audio Development Kit
- Adafruit Metro RP2040
- Adafruit Metro ESP32-S3
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:
- How to Add a New Board to CircuitPython
- How to add a New Board to the circuitpython.org website
- Adding a Single Board Computer to PlatformDetect for Blinka
- Adding a Single Board Computer to Blinka
New Learn Guides!
Updated Learn Guides!
The CircuitPython library numbers are continually increasing, while existing ones continue to be updated. Here we provide library numbers and updates!
If you’d like to contribute to the CircuitPython project on the Python side of things, the libraries are a great place to start. Check out the CircuitPython.org Contributing page. If you’re interested in reviewing, check out Open Pull Requests. If you’d like to contribute code or documentation, check out Open Issues. We have a guide on contributing to CircuitPython with Git and GitHub, and you can find us in the #help-with-circuitpython and #circuitpython-dev 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 445!
Here’s this week’s updated CircuitPython libraries:
Library PyPI Weekly Download Stats
Total Library Stats
- 117554 PyPI downloads over 311 libraries
Top 10 Libraries by PyPI Downloads
- Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 7288
- Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 6937
- Adafruit CircuitPython Register (adafruit-circuitpython-register): 1839
- Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1351
- Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1284
- Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1197
- Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 1112
- Adafruit CircuitPython ESP32SPI (adafruit-circuitpython-esp32spi): 1045
- Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1036
- Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1014
What’s the CircuitPython team up to this week?
What is the team up to this week? Let’s check in!
I released CircuitPython 8.2.1 last Tuesday. It has a fix for the newly released MatrixPortal S3, and there are about 15 other changes and fixes, including some new boards.
I’m getting close to actually trying to compile the MicroPython v1.19.1 merge to CircuitPython.
This week I wrapped up the final newsletter of my editing run. Thanks again to Paul for all the help there. We both greatly appreciate all of you bearing with us and doing amazing things for us to include in our newsletters.
I also worked on various guide fixes and updates. The biggest update was to the Contribute to CircuitPython Using Git and GitHub guide. This guide is a first stop for many folks who are new to contributing to CircuitPython or open source projects in general, as well as for experienced folks who are new to contributing to CircuitPython specifically, or are simply interested in how we do things.
GitHub updated their user interface in the last couple of years, and we changed how we do our code testing since the guide was written. And, while the info overall was still solid, there were parts of it that were woefully out of date. Not anymore! Everything is now up to date and covers our current testing methods. There’s new info on using GitHub Actions, and accepting suggested changes on a pull request through the GitHub interface. Even if you’re familiar with this guide, it’s worth checking out!
This past week I added my first CircuitPython board definitions from scratch. I had modified mostly complete ones previously. They’re still in the process of being merged at this time. The guide I wrote for the Adafruit MatrixPortal S3 was also published this last week, and you can go check it out.
I’ve continued learning the ropes for OSHWA certification requests, and have gotten more experience collecting the information and submitting requests. I did testing and reviews for several PRs in the Wiznet5k Ethernet, and Requests libraries. I also started submitting changes related to recent updates to
bitmaptools from the core.
This week Ladyada sent me a prototype of the long awaited PyCamera board, which integrates a WiFi microcontroller, 5-megapixel camera and SD card reader, among other goodies. I’ve been putting it through its paces and fixing bugs that came up along the way.
I also added a small feature to
synthio to get information about currently playing notes.
I’ve been working on mass storage support from CircuitPython. It works on iMX RT with another CircuitPython device connected. My usb flash drive doesn’t work yet. RP2040 doesn’t work with CircuitPython now either. So, I’m still in the USB host debugging weeds.
I’m starting to host Deep Dives again (when not on dad duty.) They are streamed at 2pm Pacific on Fridays. Thanks to Tim (aka FoamyGuy) for deep diving this past year and filling in for me in the future too.
This week I published a guide for my 4×4 Rotary Encoder MIDI Messenger project. This project uses four of the quad rotary encoder breakouts. The code is written in CircuitPython and uses
asyncio along with the interrupt pins on the breakouts to make reading the data from the encoders super responsive. It was my first time using
asyncio and it definitely won’t be the last. I’m looking forward to using it for more complicated projects in the future.
PyCon AU will be held August 18th – 22nd in Adelaide, Australia. The conference schedule was recently published and notable talks include You can’t do that in MicroPython by Matt Trentini and 10 Years of MicroPython by Damien George – PyCon AU.
The next MicroPython Meetup in Melbourne, Australia will be on August 23rd – Meetup.
PyCon UK will be returning to Cardiff City Hall from Friday 22nd September to Monday 25th September 2023 – PyCon UK.
Hackaday has announced that the Hackaday Supercon is on for 2023, and will be taking place November 3 – 5 in Pasadena, California, USA. They’d like to hear your proposals for talks and workshops! The Call for Speakers and Call for Workshops forms are online now, and you have until July 18th to sign up – Adafruit Blog and Hackaday.
The Pyjamas Conference, the 24-hour online Python conference, will be returning for a fifth year. The Call for Papers will begin on September 2nd – Twitter.
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.
20230725 is the latest Adafruit CircuitPython library bundle.
20230724 is the latest CircuitPython Community library bundle.
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.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 37,641 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.
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.