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 (before this post). 9,140 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 mid-November Python on Microcontrollers newsletter, brought you by the community! We’re on Discord, Twitter, and for past newsletters – view them all here. If you’re reading this on the web, subscribe here.
CircuitPython 7.1.0 Beta 0 is Available
CircuitPython 7.1.0-beta.0 is available, the initial beta release. It is relatively stable, but contains issues the developers may still address for 7.1.0 – GitHub.
Notable additions to 7.1.0 since 7.0.0:
keypad.Eventsnow include timestamps.
- The Espressif port now provides I2CPeripheral, WiFi monitor mode, ESP32-C3 support, and ParallelImageCapture.
- bitmaptools: dithering and alphablend are new.
- Preliminary support for asyncio is included. Use the CircuitPython asyncio library.
- HID now provides boot device and feature report support.
- rotaryio now allows setting the divisor of counts per transition.
- The SAMD port now provides watchdog and alarm with sleep.
- The STM port now provides STM32L4R5 support.
- MicroPython 1.17 has been merged in.
Make Magazine Issues now on Internet Archive
Make is an American magazine published by Make: Community LLC which focuses on Do It Yourself and/or Do It With Others projects involving computers, electronics, metalworking, robotics, woodworking and other disciplines.
- Issue 74 – The Rise of Python
- Issue 57 – Limor “Ladyada” Fried
- Issue 76 – Jason “Odd Jayy” Moss
- Issue 61 – Naomi “Real SexyCyborg” Wu
The Pi Cast: Booting CircuitPython On Raspberry Pi
Adafruit’s CircuitPython lead developer Scott Shawcroft joins Tom’s Hardware Pi Cast to talk about a new version of the programming language that boots up on bare metal Raspberry Pi, no host OS required. Les Pounder also shows off the new Raspberry Pi OS Bullseye – YouTube.
CircuitPython Deep Dive Stream with Scott Shawcroft
Join Scott for an update on Raspberry Pi CircuitPython support and an update on the BLE workflow. Scott will then update circuitpython.org with more info on the BLE workflow. Questions are welcome. This week is on Friday. There will be no stream next week due to US Thanksgiving.
You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.
Focus: Visual Studio Code
Some interesting developments on VS Code:
Raspberry Pi Zero 2 W + VS Code Remote = Awesome! – Raspberry Pi Blog.
Advanced Visual Studio Code for Python Developers – Real Python.
Penpot – Open Source Interface Prototyping
Penpot is the first Open Source design and prototyping platform meant for cross-domain teams. Non dependent on operating systems, Penpot is web based and works with open web standards (SVG). For all and empowered by the community. The beta is now open – Penpot.
John Park’s CircuitPython Parsec:
Catch all the episodes in the YouTube playlist.
The Python Software Foundation 2021 End of the Year Fundraiser
The PSF launched its end-of-the-year fundraiser. There are two ways to donate: 1. donate directly to the PSF or 2. purchase a discounted PyCharm license, with all proceeds going to the PSF. Contributing to the PSF financially helps sustain programs that support the larger Python community – Python Software Foundation.
You may donate here.
News from around the web!
“Pi Cabinet”, the Smart “Meds Reminder” Pill Cabinet. A no-solder, beginner-friendly project to build a “med reminder” box that will light up when it’s time to take medications or supplements. Works with any Wi-Fi-capable Raspberry Pi. A Tech for Good project targeted at the enormous problem of prescription non-adherence,, and that makes a great launching pad for exploring even more complex solutions. – Twitter, guide and YouTube.
Testing CircuitPython on Raspberry Pi Zero 2 W bare metal. Early days, so much potential – Twitter.
An Adafruit PyGamer ‘poker solitaire’ game in CircuitPython – Twitter.
DisplayIO Widget update: a test of the bar graph and NeoPixel displayio widget classes along side of existing scale and magic eye objects. The 7-segment display widget is under development – YouTube.
Testing out CircuitPython on ESP32-S2 Feather TFT prototype! On Tuesday we tested this board with Arduino, now it’s time for CircuitPython! We just did a PR to add the TFT support so it comes up with the REPL automatically – Twitter.
Using an Adafruit Stemma QT temp sensor (AHT20) via CircuitPython to read room temp and show data on a Pimoroni Display HAT Mini (which has a built-in Stemma QT port) – Twitter.
An IR remote control triggers servo motion with a Raspberry Pi Pico and MicroPython – Twitter.
A LoRa geoloc test rig – Twitter Thread.
PyGaze: Open-source toolbox for eye tracking in Python – pygaze.org.
QuizGame is a quiz with different topics. You can choose a topic and take the quiz. In the end you will get your result – GitHub.
How to run a Python script in Linux with SYSTEMD – codementor.
The Litany of code – Twitter.
PyDev of the Week: Dawn Wages on Mouse vs Python
Adafruit KB2040 controller: an RP2040 in a Pro Micro form factor great as an upgrade for keyboards – kbd.news.
And see the giveaway here!
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 was one new board added:
- Raspberry Pi Zero 2 W (Blinka)
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 Project Bundle
When you get to the CircuitPython code section of an Adafruit Learn Guide, sometimes things can get a bit complicated. You not only have the code you need to upload to your device, but you likely also need to add some libraries that the code requires to run. This involved downloading all the libraries, digging through to find the ones you need, and copying them to your device. That was only the beginning on some projects, as those that include images and/or sound files required further downloading and copying of files. But, not anymore!
Now, with Project Bundles, you can download all the necessary code, libraries and, if needed, asset files with one click! We automatically check which libraries are required for the project and bundle them up for you. No more digging through a huge list of libraries to find the ones you need, or fiddling with looking for other files or dependencies. Download the Project Bundle, copy the contents to your device, and your code will simply work. We wanted to make this the easiest way to get a project working, regardless of whether you’re a beginner or an expert. We’ll also be adding this feature to popular IDEs as an add-on. Try it out with any Circuit Python guide on the Adafruit Learning System. Just look for the ‘Download Project Bundle’ button on the code page.
To download and use a Project Bundle:
In the Learning System – above any embedded code in a guide in the Adafruit Learn System, you’ll find a Download Project Bundle button.
Click the button to download the Project Bundle zip.
Open the Project Bundle zip to find the example code, all necessary libraries, and, if available, any images, sounds, etc.
Simply copy all the files over to your CIRCUITPY drive, and you’re ready to go!
If you run into any problems or bugs, or would like to submit feedback, please file an issue on the Adafruit Learning System Guides GitHub repo.
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 channel 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 340!
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!
Experimental asyncio support will be in the next CircuitPython beta. I tweaked the MicroPython version of asyncio to work with CircuitPython, and it’s now a library. Along with this the latest builds of CircuitPython have also been adjusted to work with that library. Next, I’ll be working on a Learn Guide with a number of examples.
It was an exciting week for me, as a number of half-finished projects were merged into the CircuitPython core. The most recent additions are
alphablend in the bitmaptools library. You can check out a short video about the functionality on YouTube.
This past week, I finished up the overhaul of the Welcome to CircuitPython guide. Please check it out! It’s updated and better designed to provide a smooth experience for newcomers, while still offering up advanced knowledge to those who are looking for it. There are a couple of new pages as well, so take a look at those whether you’re new to the guide or quite familiar with it.
I merged a number of PRs to get many more libraries in line with the latest Pylint, and helped out by submitting a few myself. As of this writing there are still ~40 to go, but based on the speed with which that’s being addressed, I imagine everything will be done by the time this newsletter is published!
Next up is starting the guide for the Adafruit Monochrome 1.12” 128×128 OLED Graphic Display, a new OLED in the shop. Once complete, it’ll have everything you need to get started with your new display. Keep an eye out for it.
This past week, I was out sick for a few days, but I did manage to get the new Raspberry Pi OS working with the PiTFT in desktop mode. It ended up being one of those problems that could have had many possible causes, but the final solution was pretty simple.
This week I’ve been doing two things in parallel. First, I’ve gotten CircuitPython running on the Pi Zero 2W. Second, I’ve been working hard to add SD card support to CircuitPython on the Raspberry Pi. Adding SD card support will allow the CIRCUITPY drive to appear as it does when running on microcontrollers. Once SD card support is going (it’s very close) then I’ll polish things up and get them merged into main CircuitPython and released.
RISC-V Summit brings the community together to show the power open collaboration can have on the processor industry. The audience spans across industries, organizations, workloads, and geographies to learn about the technology advancements in the RISC-V ecosystem and visibility of RISC-V successes. The event is December 6 – 8, in-person in San Francisco or virtually from anywhere in the world – Linux Foundation via Twitter.
PyCon US 2022 planning is underway. The team is planning to host the event in person with an online component. April 27, 2022 – May 5, 2022. Head over to the PyCon US 2022 website for details about the conference and more information about the sponsorship program – PyCon Blog.
Send Your Events In
As for other events, with the COVID pandemic, most in-person events are postponed or cancelled. If you know of virtual events or events that may occur in the future, please let us know on Discord or on Twitter with hashtag #CircuitPython.
20211114 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
Circuit Python programmer needed – Xander Creations LLC – Adafruit Jobs Board.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 31,716 humans, thank you! Adafruit believes Discord offers a unique way for CircuitPython folks to connect. Join today at https://adafru.it/discord.
ICYMI – In case you missed it
The wonderful world of Python on hardware! This is our Python video-newsletter-podcast! The news comes from the Python community, Discord, Adafruit communities and more and is reviewed on ASK an ENGINEER Wednesdays. The complete Python on Hardware weekly videocast playlist is here.
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.
And lastly, we are working up a one-spot destination for all things podcast-able here – podcasts.adafruit.com
Codecademy “Learn Hardware Programming with CircuitPython”
Codecademy, an online interactive learning platform used by more than 45 million people, has teamed up with the leading manufacturer in STEAM electronics, Adafruit Industries, to create a coding course, “Learn Hardware Programming with CircuitPython”. The course is now available in the Codecademy catalog.
Python is a highly versatile, easy to learn programming language that a wide range of people, from visual effects artists in Hollywood to mission control at NASA, use to quickly solve problems. But you don’t need to be a rocket scientist to accomplish amazing things with it. This new course introduces programmers to Python by way of a microcontroller — CircuitPython — which is a Python-based programming language optimized for use on hardware.
CircuitPython’s hardware-ready design makes it easier than ever to program a variety of single-board computers, and this course gets you from no experience to working prototype faster than ever before. Codecademy’s interactive learning environment, combined with Adafruit’s highly rated Circuit Playground Express, present aspiring hardware hackers with a never-before-seen opportunity to learn hardware programming seamlessly online.
Whether for those who are new to programming, or for those who want to expand their skill set to include physical computing, this course will have students getting familiar with Python and creating incredible projects along the way. By the end, students will have built their own bike lights, drum machine, and even a moisture detector that can tell when it’s time to water a plant.
Codecademy has helped more than 45 million people around the world upgrade their careers with technology skills. The company’s online interactive learning platform is widely recognized for providing an accessible, flexible, and engaging experience for beginners and experienced programmers alike. Codecademy has raised a total of $43 million from investors including Union Square Ventures, Kleiner Perkins, Index Ventures, Thrive Capital, Naspers, Yuri Milner and Richard Branson, most recently raising its $30 million Series C in July 2016.
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.