View this email in your browser. Warning: Flashing Imagery
Welcome to the latest Python on Microcontrollers newsletter! Wow, CircuitPython Day was full of broadcasts celebrating Python on microcontrollers and single-board computers! Thanks to all who participated this year! A new bump up CircuitPython version was released. CircuitPython 8.x builds will start to get rare as the team is working on version 9.0 with some additions from MicroPython, adding USB Host support and more. But can it blend? The ESP32-S3 has been demonstrated running real Linux! A huge worldwide effort is underway to get this perfected. And catch all the latest happenings below – Anne Barela, Editor
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:
CircuitPython Day 2023 Wrap-Up
CircuitPython Day 2023 last Friday was a fantastic success! The community rallied to participate in all the activities. If you missed anything, it’s all recorded and available below – Adafruit Blog.
Talks now on YouTube:
CircuitPython 8.2.3 Released!
CircuitPython 8.2.3, the latest bugfix revision of CircuitPython, and is a new stable release – Adafruit Blog and Release Notes.
Notable changes to 8.2.3 since 8.2.2
Improve RGBMatrix timing on SAMx5x.
Getting Linux running on an ESP32-S3
Ladyada at Adafruit has been hacking on a community project to get a version of Linux running on ESP32-S3 microcontrollers. She’s had success using Docker to run Linux builds when other methods have had issues. Now WiFi and a number of other features work under Linux! – YouTube.
The Dockerfile was fun to put together, a little like a text adventure where you have to figure out the exact order of commands to get the babel fish but now when run, it will automagically pop out the right files AND you can always terminal into the docker image at the end to customize and re-compile quickly. You can check out the Dockerfile here and if you want to just download the container image post-compilation check it out here (Docker login needed).
Big European Companies form RISC-V Venture
The RISC-V open instruction set architecture got a boost today after it emerged that five chip giants are coming together to jointly invest in a company to develop reference architectures based on the standard. The new entity will be formed in Germany with investment from Infineon Technologies, Qualcomm, NXP Semiconductors, Bosch, and Nordic Semiconductor, with the aim of speeding up “the commercialization of future products based on the open-source RISC-V architecture.” – The Register.
Project of the Week: Recreating the TARS Robot from Interstellar
Charlie Diaz describes making a miniature version of the robot TARS from the movie Interstellar – hackster.io.
“I’ve been working to create my own miniature replica of the robot TARS from the movie Interstellar. The goal was always to make a reasonably faithful representation of TARS walk like it did in the movie. I’ve made three versions so far and have gone from a functional but unreliable proof-of-concept to a more refined and highly reliable prototype capable of walking continuously for hours.”
Under the hood, TARS uses Python code running on a Raspberry Pi 3B+. Controlling servos is an Adafruit PCA9685 Servo Driver. The chassis is 3D printed over an aluminum extrusion chassis.
News from around the web!
Kevin McAleer makes his first PCB, a Bluetooth controller. A Raspberry Pi Pico W is used and it’s programmed in MicroPython – Twitter/X.
Communicating between devices with the MQTT Protocol – Woolsey Workshop.
Googly eyes which Google what they see. The project uses a Raspberry Pi Zero 2 W, Pi Camera, OpenAI image capture and captioning software and Python – Raspberry Pi and YouTube.
Pimoroni is working on a vector graphics library (based on Pretty Poly) for MicroPython and their products. The demo is a clock graphic on an as-yet-named graphics board. The work in progress is on GitHub – Twitter/X Thread.
Chrissy Roberts provides detailed weather information on a Pimoroni Badger 2040 W using MicroPython – Twitter/X and GitHub.
The Memphis Python group is meeting Monday Aug. 21 at 6:00PM. There will be talk about IoT development using MicroPython and also some cool toys to look at – Twitter/X.
Teensy 3.5 and 3.6 development boards, manufactured by PJRC, have been announced as “end of life” with only small limted stock left. No further boards will be available due to chip manufacturer discontinuance – Twitter/X.
Moon-Pi displays today’s moon phase and a random moon-related quotation on an e-paper display. A Raspberry Pi Zero W hidden in the frame runs the show via Python – Raspberry Pi and GitHub.
Hacking the Hidden Agenda pedal to be a MIDI Controller with CircuitPython – GitHub via Twitter/X.
Controlling a train, to include MP3 sounds, wirelessly, with a Raspberry Pi Pico W and CircuitPython – Twitter/X (Japanese).
After a little soldering, and some typo-hunting, I was able to get my
displayio compatible library working for the GC9D01 0.99” LCD screen in CircuitPython! The library needs a little clean-up and then will hopefully be published to the CircuitPython Community Bundle – Twitter/X.
How to use analog to digital conversion (ADC) on a Raspberry Pi Pico using MicroPython – electromaker.io.
Making a simple Raspberry Pi Pico W weather station with BME280 – electromaker.io.
Colorful circuit board artwork with an ESP32-S3 programmed in MicroPython – Hackster.io.
A battery-powered IoT silo level meter that measures and sends real-time data to AWS IoT with MicroPython – hackster.io.
Socket Programming in Python: Handling Connections – Real Python.
PyDev of the Week: Zac Hatfield Dodds on Mouse vs Python.
CircuitPython Weekly Meeting for August 14, 2023 (notes) on YouTube
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? GIT Microbook.
The CM4 Ether Board is a tiny (40*100mm) Raspberry Pi CM4 carrier board focused on network applications, like setting up a Raspberry Pi server. It’s main feature is an onboard M.2 connector for NVMe SSD solid state storage – Tindie via Twitter/X.
RP20-Footie is a capacitive pedal using a Raspberry Pi Pico – Tindie via Twitter/X.
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, but several are in development!
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!
Ambient Sound Machine from John Park
Adafruit Metro RP2040 from Kattni
Adafruit PC Joystick to seesaw I2C Adapter from Liz Clark
The CircuitPython library numbers are continually increasing, while existing ones continue to be updated. Here we provide library numbers and updates!
To get the latest Adafruit libraries, download the Adafruit CircuitPython Library Bundle. To get the latest community contributed libraries, download the CircuitPython Community Bundle.
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 447!
Here’s this week’s new CircuitPython libraries:
Here’s this week’s updated CircuitPython libraries:
Library PyPI Weekly Download Stats
Total Library Stats
- 130,530 PyPI downloads over 312 libraries
Top 10 Libraries by PyPI Downloads
- Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 6551
- Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 5997
- Adafruit CircuitPython Register (adafruit-circuitpython-register): 1792
- Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1489
- Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1244
- Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1184
- Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1099
- Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1088
- Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1034
- Adafruit CircuitPython Seesaw (adafruit-circuitpython-seesaw): 976
What’s the CircuitPython team up to this week?
What is the team up to this week? Let’s check in!
I finished code merging for the merge of MicroPython V1.19.1 into CircuitPython, and made a draft pull request. Jeff and I are now cleaning up the remaining build and test issues. When those are all resolved, I’ll remove it as a draft and then it will be reviewed.
I tried to reduce the number of changes that had existed between CircuitPython and MicroPython in the core interpreter, to make the next merge easier. Necessary changes were also marked, in many cases, with an indication that the change was deliberately made for CircuitPython. This will save time during later merges because the origin of the changes will be more obvious.
This week I’ve been working on the Metro ESP32-S3 guide. It’s coming soon in the Adafruit shop. The guide should be ready by the time it’s available to purchase. It’ll have everything you need to get started with your new Metro. Keep an eye out for that.
I participated in a CircuitPython Day panel discussion about
synthio, and a CircuitPython Day Chat with Jeff and Dan. As this was written before CircuitPython Day, I will include any fun details and links to the videos in next week’s newsletter.
This week I worked on getting ready for my CircuitPython Day Livestream. This included finishing up writing the software that runs on the project as well as 3D printing and designing all of the parts for the build.
This week I wrote Python scripts to compare data from the OSHWA API with a full list of Adafruit PIDs to find any remaining that haven’t been submitted. The resulting list was narrowed a bit further and I’ve begun submitting requests for the ones that need it. I’ve also done some testing on new features for
ImageLoad that add support for additional types of BMP images that can be exported from GIMP and other editing software.
My main accomplishment for the week has been to help out Dan with the MicroPython merge. MicroPython and CircuitPython share a large number of tests that are run automatically with each change. Most of these test the behavior of the language itself, not hardware, but they are extremely valuable because they can find the tiniest flaws in the core code.
We started with a large number of test failures, and have shared in fixing them. Frequently, a cluster of failures is fixed by a single change. As I write this, we’ve gone from over 100 tests to check to only about a dozen left to understand and (hopefully) fix.
This week I’ve been bouncing between USB host work and the PR to update the ESP-IDF to version 5. The IDF 5 update supports newer chips from Espressif but also changes some APIs and increases code size. microdev did the necessary API updates and increased the build size of CircuitPython. This will break folks’ CIRCUITPY drive so I’m looking at the cause for the size increase before deciding to do this breakage.
This week I worked on a guide for the PC joystick to seesaw adapter. There are pages for pinouts, CircuitPython and Python, Arduino and downloadable resources. I had actually never used a PC joystick before, so I had to procure one on eBay for testing but luckily it worked really well. I’m hoping to maybe do a project with it at some point.
The next MicroPython Meetup in Melbourne will be on August 23rd – Meetup.
The supplier of popular ESP32 and ESP8266 microcontrollers, Espressif, announced their yearly Developers Conference. During the two-day online event, there will be nearly 30 talks created by Espressif technical experts and its partners, covering a wide range of topics, including Thread, the low-power features of ESP32-C6 and Wi-Fi 6, ESP-Mesh-Lite + ESP RainMaker Cloud solution, ESP-IDF, RUST, SquareLine Studio, AWS IoT, and more. September 12-13, 10:00-19:00 CEST – devcon.espressif.com.
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 October 13-15 & October 20-22, 2023 – Eventbrite.
Hackaday has announced that the Hackaday Supercon is on for 2023, and will be taking place November 3 – 5 in Pasadena, California, USA – 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.
CircuitPython’s stable release is 8.2.3. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20230815 is the latest Adafruit CircuitPython library bundle.
20230724 is the latest CircuitPython Community library bundle.
v1.20.0 is the latest MicroPython release. Documentation for it is here.
3.11.4 is the latest Python release. The latest pre-release version is 3.12.0rc1.
3,632 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.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 37,718 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.
Join the Adafruit Discord or post to the forum if you have questions.