If you missed Tuesday’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 Tuesday (which is out before this post). 9,691 subscribers worldwide!
The next newsletter goes out in a week and being subscribed 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! We’re all coming down off the high that was CircuitPython Day at the end of last week. You can catch all the videos if you missed them. And hopefully you didn’t miss that the first beta of CircuitPython 8.0.0 is now out! The new ESP32 support (the original non-suffix ones) is making waves. And check out all the rest of the content in this issue.
CircuitPython 8.0.0 Beta 0 Released!
CircuitPython 8.0.0-beta.0, a beta release for 8.0.0, is now out, merging in over 140 pull requests. It is relatively stable, but there will be further additions and fixes before final release – Adafruit Blog and GitHub.
Notable changes to 8.0.0 since 7.3.0
- Added WiFi workflow with browser-based device discovery, filesystem browsing, upload, download, file editing, serial/REPL connection.
- Added a one-line status bar, which displays connection status, last exception, and version on a terminal window title or on the top line of an attached display. Support for status bar display is also being added to the Mu and Thonny editors.
.envfile in CIRCUITPY specifies WiFi connection parameters, BLE name, and other startup values.
- Revised Espressif camera support, now available on ESP32, ESP32-S2, and ESP32-S3.
AnalogInvalues are full range from 0 to 65535, instead of having zeros on low-order bits.
OneWireis only in
onewireio, and is no longer in busio or bitbangio.
gamepadshifthas been removed: use
os.getenv()values can be set in the
PulseOutno longer accepts a
PWMOut. Use a
i2ctarget.I2CTargetis the new name for
i2cperipheral.I2CPeripheral. Accept both for now.
I2CPeripheralwill be removed in 9.0.0.
- Auto-brightness support in
framebufferiohas been removed. It was never implemented completely.
onewireioto a number of boards.
- Print out whole-number floats exactly and correctly.
collections.dequeon most builds.
Download from circuitpython.org
CircuitPython Day a Success!
CircuitPython Day 2022 was last Friday, August 19th. In typical fashion, it did not disappoint, with many video streams with the community and folks showing their projects. Thank you to all who participated!
A playlist of all the Adafruit sponsored streams & videos – YouTube.
- CircuitPython Day Introduction
- Celebrating Code & Community: A CircuitPython Day Panel Discussion
- CircuitPython Development Sprint Intro Video
- CircuitPython Project Build with Maker Melissa
- Special Edition CircuitPython Themed Show & Tell
- CircuitPython 8 Preview
- CircuitPython Day Chat with Kattni, Jeff and Dan
- Foamyguy CircuitPython Day Game Jam Stream
Reimagining IoT Deployments with CircuitPython, sponsored by Blues Wireless – YouTube.
One of the more popular things this newsletter links to are cheat sheets – pages to help folks with some part of programming or operating systems. Here are several found over the last week:
SQL Cheat Sheet – Twitter.
UNIX/Linux Command Cheat Sheet – Twitter via fosswire.com.
Best of Linux Commands Cheat Sheet – Twitter.
CircuitPython Adds RP2040 I2C Target Support
I2C Target Support had been added to CircuitPython for the RP2040 microcontroller in a recent GitHub pull request – GitHub.
Python 3.11.0rc1 is Now Available
The first release candidate of Python 3.11 is now out for the community to review – Python Blog.
“This release, 3.11.0rc1, is the penultimate release preview. Entering the release candidate phase, only reviewed code changes which are clear bug fixes are allowed between this release candidate and the final release. The second candidate and the last planned release preview is currently planned for Monday, 2022-09-05 while the official release is planned for Monday, 2022-10-03.”
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 past week, Tim had a GameJam Stream for CircuitPython Day 2022.
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.
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 and Twitter.
The latest episode was released August 22nd and features Brent Rubell of Adafruit. He and Paul talk the Internet of Things, Wippersnapper firmware, and share a few of their favorite newsletters – Show List.
Projects of the Week: CircuitPython Day 2022
The following projects were posted during Friday August 19th for CircuitPython Day 2022.
Griddly is a design for Parkinson’s with a Grid and CircuitPython – hackaday.io.
I started with an 8×8 NeoTrellis grid with from Adafruit. The silicon rubber buttons have a great tactile feel and the RGB LEDs enable an interesting visual experience. In addition, the NeoTrellis is built for Adafruit’s Feather form factor, including the Feather M4 which is powerful and is compatible with CircuitPython. Great for quick development and iteration.
Here’s my animatronic Racacoonie. (H̶̵̶e̶̵̶ ̶̵̶c̶̵̶a̶̵̶n̶̵̶ ̶̵̶c̶̵̶o̶̵̶n̶̵̶t̶̵̶r̶̵̶o̶̵̶l̶̵̶ ̶̵̶m̶̵̶e̶̵̶ I can control him with an app, or by automatic gaze tracking if I’m in front of a camera). It’s a stuffed raccoon, 3 servo motors held together w/ 12 gauge floral wire, and the Seeedstudio XIAO nRF board for Bluetooth control. Also used the floral wire to build a li’l harness. Code is CircuitPython – Twitter.
Happy CircuitPythonDay2022!!! I want talk about Scientific CircuitPython. It’s going to be a weird path, but through CircuitPython, I have a sensor that identifies when a bedroom door is open or closed based on air pressure differential between two rooms – Twitter.
News from around the web!
- Raspberry Pi Zero W BCM2835 ARMv7 @ 1.00GHz (1 Core)
- Raspberry Pi Zero 2 W RP3A0-AU ARMv7 Cortex-A53 @ 1.00GHz (4 Cores)
- Radxa Zero S905Y2 ARMv8 Cortex-A55 @ 1.91GHz (4 Cores)
- BananaPi M2 Zero H3 ARMv7 Cortex-A7 @ 1.01GHz (4 Cores)
- MangoPi MQ Pro D1 RISCV64 @ 1.00GHz (1 Core)
- Orange Pi Zero LTS H2+ ARMv7 Cortex-A7 @ 1.20GHz (4 Cores)
- Orange Pi Zero 2 H616 ARMv8 Cortex-A53 @ 1.5GHz (4 Cores)
CircuitPython code was used to control a home theater receiver Zone2 using serial over WiFi. It uses an Adafruit QT Py ESP32-S2, 1×4 NeoKey to select inputs and a rotary encoder for volume – Twitter.
Tod Kurt has finished the 3D printed case for his Raspberry Pi Pico-based step sequencer, programmed in CircuitPython – Twitter.
A simple RP2040 hardware design – Twitter.
How to get started with MicroPython Machine Learning – Eloquent Arduino.
Simone Salerno posts “tinyml is coming to MicroPython and CircuitPython” – Twitter.
LoRa P2P with CircuitPython on MaPIE LoRa RP2040 – YouTube.
Your MicroPython board can be your tinkering peripheral – Hackaday.
Femto is a tiny 12x12mm Raspberry Pi RP2040 module – CNX Software.
KMK (keyboard firmware based on CircuitPython) Tips and Solutions – Zenn.
VL53L5CX Time of Flight (ToF) breakout and MicroPython – maker.io.
Is the Raspberry Pi High-Quality Camera worth it? & Build your own Camera – YouTube.
Write Python code to SD card with MicroPython and execute Python code on SD card – Qiita (Japanese).
A Raspberry Pi Pico W powered, Wibbly Wobbly Timey Wimey atomic clock with MicroPython – Twitter.
stitching – a Python package for fast and robust Image Stitching. Based on OpenCV’s stitching module and inspired by the stitching_detailed.py Python command line tool – GitHub.
Git Workflow chart – Twitter.
You Should Be Using Python’s Walrus Operator – Here’s Why – Martin Heinz.
PicoLisp is an open source Lisp dialect. It is based on LLVM and compiles and runs on any 64-bit POSIX system. Its most prominent features are simplicity and minimalism – GitHub.
Adafruit has been testing its new TCA8418 breakout board. This chip can do 8×10 keypad matrices and handles a queue of 10 events over I2C with an IRQ line. There will be CircuitPython and Arduino libraries – Twitter.
Testing out the GUVB-C31SM UV sensor. A summer afternoon in NYC is the best time to test a UV sensor. Thanks to the giant, free, UV lamp the sky, we can test out a new STEMMA QT breakout for the GUVB-C31SM – Twitter.
The Pimoroni Enviro enclosure – It can hold a Raspberry Pi Pico W, Adafruit Feather Huzzah, or an Enviro Indoor with a battery pack – Twitter.
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!
- Adafruit QT Py ESP32 Pico
- Adafruit Feather HUZZAH32
- ESP32-S3 Box Lite
- Adafruit ESP32 Feather V2
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!
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!
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 363!
Here’s this week’s updated CircuitPython libraries:
What’s the team up to this week?
What is the team up to this week? Let’s check in!
I fixed yet more issues for CircuitPython 8.0.0 this week, most notably getting touchio to work on ESP32. I also prepared for and released 8.0.0-beta.0. The last 8.0.0 release was 8.0.0-alpha.1 over two months ago. Since then there were about 146 pull requests, so the release notes were voluminous.
This week I published the ESP32-S3 TFT Feather guide. This massive guide is chock full of everything you need to get started with your new Feather. There’s still more in the works, so keep an eye out for that guide to be updated soon!
CircuitPython Day was amazing! It was great to see how many folks showed up for the livestreams, and to be able to answer community questions where we had the opportunity. The two streams I participated in, the panel discussion and the Chat with Kattni, Jeff, and Dan, went really well. I put a significant amount of effort into coordinating CircuitPython Day as a whole, and I’m really happy with how it turned out. Thank you to all of our hosts for making the livestreams so excellent. And most importantly, thank you to the community for making all of this possible!
This week I finished the remaining pages on the Octopus guide and submitted it for review. I worked on GitHub actions tasks that will measure the mpy file size and post comments on PRs to help us better understand the size of our libraries. The initially proposed actions are submitted now as a PR to the cookie cutter repo for review and discussion. I prepared for CircuitPython day panel and game jam streams. I tinkered with PIL and am beginning to figure out how to manipulate perspective for regions of images, this will ultimately lead to a way to make customizable flip clock sprites for use with displayio.
This was my last week before I take 12 weeks to care for my kiddo. (Yay paternity leave!) My main goal was to wrap up outstanding web workflow changes and work with Melissa on integrating the web workflow into code.circuitpython.org. Due to browser restrictions, we weren’t able to get code.circuitpython.org working. However, the devices themselves now have a http://circuitpython.local/code/ page that loads the full code.cp.org experience when online. Thanks to Melissa for her hard work getting that going.
The main thing I did was to add one final API piece for moving/renaming files through the REST API. RetiredWizard was super helpful in testing it. I also added the ability to upload a complete directory. I fixed an issue on the S2 where the code wouldn’t start up, it’d just crash. Thanks to everyone for testing and reviews. Thanks to Dan for releasing CircuitPython 8.0.0-beta.0!
Thanks to Kattni for orchestrating an awesome CircuitPython Day 2022.
Thank you all. I’ll be back to working on CP on November 14th.
I’ve been working on a third CircuitPython and Microsoft Azure project. This time I used IoT Hub with multiple ESP32-S2 devices running CircuitPython connected and sending telemetry. A Raspberry Pi is pulling the feeds from IoT Hub and displaying them on a monitor using the Blinka_Displayio_PyGameDisplay library.
Silicon Valley’s Premier Comic Con Returns! Featuring The Best In Pop Culture, Tech, Science, Makers, Artists, Cosplay, Gaming, Comic Creators, Authors & More! August 27-28, 2022 San Jose McEnery Convention Center – SiliCon.
Use code ADAFRUIT in step 2 of checkout online for 15% off a 2 day ticket.
PyCon UK will be returning to Cardiff City Hall from Friday 16th to Sunday 18th September 2022 – PyCon UK.
After two years in remote mode, Hackaday is very excited to announce that this year’s Hackaday Supercon will be coming back, live! Nov. 4th, 5th, and 6th in sunny Pasadena, CA for three days of hacks, talks, and socializing with the Hackaday community – Call for proposals and Hackaday.
PyCon US 2023 will be April 19-17, 2023, again in Salt Lake City, Utah US – PyCon US 2023.
Send Your Events In
As for other events, with the COVID pandemic, most in-person events are postponed or held online. If you know of virtual events or upcoming events, please let us know on Twitter with hashtag #CircuitPython or email to cpnews(at)adafruit(dot)com.
20220820 is the latest CircuitPython 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.
jobs.adafruit.com – Find a dream job, find great candidates!
jobs.adafruit.com has returned and folks are posting their skills (including CircuitPython) and companies are looking for talented makers to join their companies – from Digi-Key, to Hackaday, Micro Center, Raspberry Pi and more.
Job of the Week
GPS tracker with Pager – Personal Project – personal project – Adafruit Jobs Board.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 35,376 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.
Codecademy “Learn Hardware Programming with CircuitPython”
Codecademy, an online interactive learning platform used by more than 45 million people, has teamed up with Adafruit to create a coding course, “Learn Hardware Programming with CircuitPython”. The course is now available in the Codecademy catalog.
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.