If you missed this week’s Python on Microcontrollers Newsletter, here is the ICYMI (in case you missed it) version.
To never miss another issue, subscribe now! – You’ll get one terrific newsletter each Monday (which is out before this post). 10,540 subscribers worldwide.
The next newsletter goes out in a week and subscribing is the best way to keep up with all things Python for hardware. No spam, no selling lists, leave any time.
Welcome to the latest Python on Microcontrollers newsletter! Big news this week with a Silabs CircuitPython support announcement and a CircuitPython Hack Chat! Read on for details on those, as well as all the great news and projects from the web. This is your final issue with guest editors Kattni and Paul! Thanks for bearing with us and doing all the amazing things we were able to put into our newsletters. Next week, we’re happy to welcome back Anne, and we hope you are too! – Eds.
Silicon Labs introduces support for CircuitPython
Silicon Labs announced CircuitPython support for their xG24 boards.
Silabs, a leading provider of silicon, software, and solutions for a smarter, more connected world, is proud to introduce CircuitPython support for our xG24 boards.
This exciting development expands the capabilities of the xG24 explorer kit, xG24 dev kit, and the Sparkfun Thingplus Matter – MGM240P, allowing users to leverage the power of CircuitPython’s simplicity and flexibility while harnessing the advanced features of Silabs’ boards.
The announcement includes details on getting started with CircuitPython on these boards. – Silicon Labs Technical Blog
CircuitPython Hack Chat with Adafruit
Hackaday is hosting a CircuitPython Happenings Hack Chat with Scott, PT, and Ladyada from Adafruit on Wednesday, July 26th at 3 p.m. EDT / 12 p.m. PDT. – Hackaday
Our own Maker Melissa went to Open Sauce in San Francisco, California. There were a number of interesting talks by some of the most popular YouTube makers. There were also exhibits that ranged from PCB manufacturers to BattleBots, which had some of the robots that had been featured on the television show. – Open Sauce.
smolOS – a Tiny Operating System for Tiny Devices
Tod Kurt’s CircuitPython
CircuitPython only recently added music synthesis using the new
synthio module. Tod Kurt has been testing
synthio since early in its development and has written an extensive guide to using
It covers what is
synthio, which boards work with it, building audio circuits, playing chords, and both basic and advanced techniques. He includes wiring diagrams and code samples to help you learn
synthio. – GitHub.
MicroPython is a first class programming language for Arduino
Arduino has launched a MicroPython 101 course for learning MicroPython with the Arduino Nano ESP32. It features a number of chapters including a MicroPython installation guide, using digital input/output, IoT, and more. – Arduino.
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 various library PRs.
You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.
John Park’s CircuitPython Parsec will return next week!
Catch all the episodes in the YouTube playlist.
Project of the Week: CircuitPython powered Typewriter
Max Lupo created a custom PCB that connects to a KB2040 running CircuitPython to control a Swintec 1146 typewriter.
The CircuitPython code on the KB2040 blips out a sequence of binary data into the typewriter’s parallel port, one character at a time. When the typewriter receives a newline, it tells the code it’s busy and taps out its text buffer. – Mastodon and GitHub.
News from around the web!
Arduino Lab Editor version 0.8 with MicroPython support has been released by Arduino Labs. It features an improved user interface, better file management support, and easier ways to manage library files. – Arduino Blog.
Raspberry Pi open sourced its online text-based Code Editor. Built for ages 7 and older to learn to write code, it is now easier to contribute to it. – Raspberry Pi.
Mariatta used Python, Flickr, and a Raspberry Pi to remotely monitor an aquarium – Mastodon.
Project M.I.S.C.H.I.E.F is an AI powered smart home system using a Raspberry Pi 3B, an ESP32 microcontroller, and Python. – Raspberry Pi.
Weatherstation uses MicroPython, a Raspberry Pi Pico W, a display, and temperature sensor to measure the current indoor and outdoor temperatures. Built by Mark Gladding, the temperature is then displayed in a Grafana dashboard. – GitHub.
Nathan used a Raspberry Pi 3, camera, motors, Fresnel lens, and photoresistors to build a robot that detects and kills weeds. The Raspberry Pi is mounted underneath and when it detects a weed the motors flip out the giant lens and positions it to kill the weed. The photoresistors track the direction the light is coming and help focus the sun’s beam through the lens. It knows what a weed is based on the TensorFlow image classification model that was used to teach the robot. – Raspberry Pi.
Last week at CyberCat Academy, middle school students were introduced to CircuitPython as the kids learned about ethical hacking. – Twitter.
Moving Electrons has a detailed post showing how to build a HomeKit compatible freezer temperature monitoring system. Using CircuitPython, an Unexpected Maker Feather S2 board, temperature sensor, and a 3D printed case, a notification is sent every time the freezer door opens. – Moving Electrons.
Phil shows working with polygons using a CircuitPython board and a Pimoroni PicoDisplay. – Twitter.
In this academic paper, Jesse Roberts writes about LungElast, an open source MicroPython powered instrument that can measure lung elasticity and volumes in immature mice. – Nature.
PyDev of the Week: Sophia Yang on Mouse vs Python
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 no new boards 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:
- 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!
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 446!
Here’s this week’s updated CircuitPython libraries:
Library PyPI Weekly Download Stats
- Total Library Stats
- 91318 PyPI downloads over 311 libraries
- Top 10 Libraries by PyPI Downloads
- Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 7005
- Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 6354
- Adafruit CircuitPython Register (adafruit-circuitpython-register): 1775
- Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1039
- Adafruit CircuitPython PCA9685 (adafruit-circuitpython-pca9685): 960
- Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 891
- Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 853
- Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 837
- Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 682
- Adafruit CircuitPython SSD1306 (adafruit-circuitpython-ssd1306): 653
What’s the CircuitPython team up to this week?
What is the team up to this week? Let’s check in!
I’m still working on the MicroPython v1.19.1 merge to CircuitPython. I made one pass through the merge and am now revisiting the changes, now that I have the context for everything.
It looks like we’ll be doing a CircuitPython 8.2.1 with some necessary fixes soon.
I visited the Center for Engineering Education and Outreach at Tufts University today, on the invitation of Prof. Chris Rogers, to let the summer student interns play with some CircuitPython boards. I’ve been there several times. They are using MicroPython, CircuitPython, AdafruitIO, LEGO robotics, and similar technologies to improve engineering education from kindergarten up through college. It’s always fun to visit and see what they’re up to.
This week I continued to work through guide feedback, and kept up with making sure this newsletter was ready to go. Turns out when I’m down to the most difficult feedback to resolve, it can literally be a full-time job!
This past week I finished writing a learn guide for the MatrixPortal S3. The guide is currently in moderation, so keep an eye out for it to be published soon.
I also attended Open Sauce in San Francisco. If you were there, I hope I had a chance to meet you.
I didn’t get as much CircuitPython activity as usual due to a power outage at my home over a chunk of time where I normally work and stream CircuitPython related things. The work I did get into after the power returned was following up on Library PR Reviews, and learning the ropes on how to prepare the data to submit to OSHWA for certification of open source hardware.
I’ve worked on supporting SD card interfacing using the faster SDIO protocol on the RP2040 microcontroller. This would be handy on an upcoming board from Adafruit, as well some other boards like the Pimoroni Pico DV Base.
Raspberry Pi has provided some code in their repository called “pico-extras”; I’ve cleaned it up and made it suitable for inclusion in CircuitPython. However, it’s not super stable (frequently corrupts the SD card when writing files) and is unable to determine the capacity of the SD card, so it’s not going to be immediately added into CircuitPython.
The code is on my github if you want to check it out, but don’t expect it to work properly yet!
For the moment, our goal of verifying that this RP2040 Metro board design is correct for 4-bit SDIO is satisfied.
This last week has been overwhelmed by “just started daycare” sickness. So, I haven’t done a bunch. I was a bit distracted by Jeff finding color bitmap emoji from the Serenity OS project. My PR to fix the usb_host.Port initialization was merged. I’ve found a caching issue on the iMX and will have fix for that shortly too. These issues were found as I try to add support for usb mass storage device (aka usb thumb drives) on the iMX.
This week I wrote a guide for the new Audio BFF breakout. This breakout has an I2S amp and micro SD card slot that can attach directly to a QT Py board. I think it could make for a really great tiny music player.
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.
PyCon UK will be returning to Cardiff City Hall from Friday 22nd September to Monday 25th September 2023 – PyCon UK.
Maker Faire Bay Area will be held this October at Mare Island over two consecutive weekends, October 13-15 and October 20-22. – Make
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.
20230718 is the latest Adafruit CircuitPython library bundle.
20230720 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,952 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.