View this email in your browser. Warning: Flashing Imagery
Welcome to the latest Python on Microcontrollers newsletter! It’s clear that the use of Python on hardware projects is accelerating. Just take a look at this week’s highlights. Python on LEGO automation controllers, micro:bit, and so many microcontroller boards and single board computers (SBC)! Have fun exploring this week’s issue.
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:
Check Out the Simulator in the beta micro:bit Python Editor
A simulator is now available within the beta micro:bit Python Editor. This allows you to try your code before sending it to a micro:bit. The developers are fine tuning it over the next few weeks, so send them your feedback to help make it even better – micro:bit newsletter.
The MicroPython Forum Migration to GitHub Discussions
After close to 9 years, the MicroPython team has decided to close their forum in favor of moving to GitHub Discussions – MicroPython Forum Post and GitHub Discussions.
There’s a few key features they really like about GitHub Discussions:
- Much tighter integration with the rest of the development process which is all hosted on GitHub. We can move Discussions to/from Issues, etc., as well as @ members and reference PRs/Issues.
- GitHub Discussions has many more features for posts and replies. Emoji responses, accepted answers, threaded replies, etc.
- GitHub Discussions uses the much more familiar Markdown syntax for writing posts, especially for code snippets (which also support syntax highlighting).
- It’s less maintenance for the MicroPython team (–> more time to work on features and fixes!).
- Easier account signup (and for many people who already use GitHub, no new account required at all).
PyBricks – Python for LEGO
PyBricks is Python coding for smart LEGO® hubs. Run MicroPython scripts directly on the hub and get full control of your motors and sensors. PyBricks runs on LEGO® BOOST, City, Technic, MINDSTORMS®, and SPIKE®. You can code using Windows, Mac, Linux, Chromebook, and Android. MIT License Open Source – PyBricks.
VSCode Upload via the New CircuitPython 8 Web Workflow
Luke Williams is working on a task definition and Python script to upload from VS Code to CircuitPython boards via a web workflow REST API. It’s a work in progress at this time. It shows how leveraging new features in CircuitPython 8 can help development – GitHub.
Thonny Version 4.0.0
Thonny 4.0.0 has emerged from beta with many changes and fixes. A major change is dropping support for Python 3.5, 3.6 and 3.7. There are about two dozen changes for MicroPython and CircuitPython – GitHub.
WipperSnapper Custom Component Visualizations
Adafruit has introduced some new gorgeous default WipperSnapper component visualizations and the ability for users to customize them – Adafruit IO Blog.
- Custom Labels
- Custom Icons
- Component Contributors Can Set Their Default Visualizations
- I2C Sensors Display Their Appropriate SI Units
There are some new sensor types too – Adafruit Blog.
200th Python on Microcontrollers Newsletter
This newsletter has been published weekly now for 200 issues! Thank you to all our readers and subscribers. We’re hoping to get to 10,000 subscribers this year – please tell your friends, colleagues, etc. to subscribe at https://www.adafruitdaily.com/.
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 CircuitPython Library PR reviews, the Hack Tablet and more.
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.
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.
Last week’s episode features Brent Rubell, who discusses IoT, Wippersnapper firmware, and more. Next week Radomir Dopieralski joins the show and shares how he got started, gaming with CircuitPython, and building robots – Show List.
Upcoming: CircuitPython Office Hours
CircuitPython Office Hours are starting September 10th. Office hours were so popular on CircuitPython Day, that community members are planning more! Office hours are a set time where users and developers can gather to collaborate on CircuitPython development, including code, documentation, translations and more. Check out next week’s newsletter for the start time or join the Adafruit community Discord for more information.
The Chip Shortage video this week is the InvenSense TDK ICM-20948 9-DOF IMU – Adafruit Blog and YouTube.
Project of the Week: A NASA Astronomy Picture of the Day Viewer
A NASA Astronomy Picture of the Day Viewer using MicroPython, a Raspberry Pi Pico W and a Pimoroni Display Pack 2 – Twitter.
News from around the web!
An Adafruit QT Py powered Garden Dashboard project – Twitter.
An Adafruit Macropad RP2040 case + extra encoders and display – Adafruit Blog and Thingiverse.
Overclocking RP2040 to 1 GHz – Raspberry Pi.
Remotely open your garage door with Raspberry Pi Pico W – Raspberry Pi and YouTube.
Buy more time with Raspberry Pi Pico (and money) – Raspberry Pi.
The PicoStepSeq Brings Retro Aesthetics to a 3D Printed MIDI Sequencer – electromaker.
Keyboard Builder’s Digest Issue #92 is out – Keyboard Builder’s Digest.
A Raspberry Pi Pico To-Do Board using MicroPython – hautzenberger.at.
Pico to Pico communication over UART using easy_comms and MicroPython – Instagram via Twitter.
Wear your words with this subtitle hoodie, using a Raspberry Pi 3 B+ and Python – Raspberry Pi.
Mirrored wall art which displays Webb telescope images – Raspberry Pi and YouTube.
A Raspberry Pi Pico powered solar diverter build with MicroPython – Twitter.
Read RSS feeds in Python and download the weather with Raspberry Pi – Sean.co.uk.
A Dragon frame clock with a Pimoroni HyperPixel round display and Raspberry Pi Zero W with Python – Twitter.
831 page free eBook: Python Notes for Professionals book – Goalkicker.
A Practical Introduction to Web Scraping in Python – Real Python.
Your Python Coding Environment on Windows: Setup Guide – Real Python.
A cheat sheet for data structures in Python 3 – Twitter.
A cheat sheet for data visualization – Novartis.
Using colors in data visualization – Warsaw University of Technology.
CircuitPython Weekly Meeting for August 29, 2022 (notes) on YouTube
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? SQL Cheat Sheet.
The first LumosStick PCBs are nearly ready for Tindie. They have an ESP32-S2 and can run CircuitPython – Twitter.
Wemos S3 – WiFi & Bluetooth 5 (LE) board based on the ESP32-S3-WROOM-1, 16MB Flash, 8MB PSRAM, compatible with MicroPython (default), Arduino and ESP-IDF – Wemos.
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 13 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:
New Learn Guides!
Flying Faders from John Park
Raspberry Pi Azure IoT Hub Dashboard with CircuitPython from Liz Clark
Capturing Camera Images with CircuitPython from Jeff Epler
Adafruit ESP32-S3 TFT Feather from Kattni
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 364!
Here’s this week’s new CircuitPython libraries:
Here’s this week’s updated CircuitPython libraries:
- Too many to list this week!
What’s the team up to this week?
What is the team up to this week? Let’s check in!
I had a great time being on two different live stream panels for CircuitPython Day. Thanks to all who organized and volunteered for the day.
I am continuing to fix bugs for the 8.0.0 release. I’ve backported some of the more important fixes to the 7.3.x branch, and plan to release 7.3.3 by the time this newsletter comes out.
This past week, I finished up the ESP32-S3 TFT Feather guide. It’s one of the beefiest board guides yet, as it has all of the compatible CircuitPython Essentials pages added, which we, thus far, have not been consistent about. The guide has been live for a bit, but it wasn’t entirely finished until this week.
I also started working with the Feather ESP32 V2 and CircuitPython, and the CircuitPython web workflow. The plan is to redo my LoRa mailbox project with WiFi and AdafruitIO. The reason for using the ESP32 is that we still need more thorough testing, and I’m really good at finding bugs. Found a big one within 10ish minutes of picking it up, which is basically how it goes. This will be in an upcoming guide. I hope to also include the original LoRa version.
This past week, I did my first livestream. If you missed it, you can still watch it on YouTube. I also added around 15 new boards over on circuitpython.org. On the Code Editor, I ended up replacing the hterm component, that we use to show the serial terminal, with xterm and web workflow on the code editor now works in Firefox.
For CircuitPython Day, I participated in a panel discussion livestream and in the evening held a special Game Jam live stream where I made a CircuitPython version of a space ship asteroid mining game, inspired by old arcade games Galaga, Space Invaders and similar games. I learned out to make debug builds of CircuitPython and how to parse the stack trace outputs that they generate for hard fault errors. I also learned more about how to use GitHub Actions, enough to figure out how to set up one actions step that outputs some information and a separate actions step that runs conditionally based on the output of the first. This is utilized in a proposed PR to cookie cutter that will make the actions-bot leave comments on library PRs under certain conditions based around the size of the compiled mpy file.
On CircuitPython Day, I hosted the special edition Show and Tell livestream. It was a great turnout with a wide variety of projects. Big thanks to Kattni for all of the organization she did to bring the day together.
For guides, this past week I published the final of three Azure CircuitPython guides. This project uses a Raspberry Pi with Azure IoT Hub to create a dashboard to view your devices’ data and subscription information. The Python code on the Raspberry Pi uses the Azure SDK combined with the Blinka DisplayIO PyGame library, which allows for DisplayIO elements to be shown over HDMI. I hope folks will find it to be a good example for not only Azure IoT Hub but also combining Python SDKs with Blinka CircuitPython libraries.
The next MicroPython Meetup in Melbourne will be on September 28th – Meetup. See the slides of the August 24th meeting.
PyCon UK will be returning to Cardiff City Hall from Friday 16th to Sunday September 18, 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.
CircuitPython’s stable release is 7.3.3 and its unstable release is 8.0.0-beta.0. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20220827 is the latest CircuitPython library bundle.
v1.19.1 is the latest MicroPython release. Documentation for it is here.
3.10.6 is the latest Python release. The latest pre-release version is 3.11.0rc1.
3,148 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.
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.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 35,409 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.
Join the Adafruit Discord or post to the forum if you have questions.