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,089 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.
With a wrap up of October and Halloween comes November and latest Python on Microcontrollers newsletter with all the news! We’re on Discord, Twitter, and for past newsletters – view them all here. If you’re reading this on the web, subscribe here. Let’s get started!
Raspberry Pi Zero 2 W Released!
Raspberry Pi Zero 2 W was announced and released (in limited quantities) by Raspberry Pi October 28th – Raspberry Pi News.
Priced at $15, Raspberry Pi Zero 2 W uses the same Broadcom BCM2710A1 SoC die as the launch version of Raspberry Pi 3, with Arm cores slightly down-clocked to 1GHz, bundled into a single space-saving package alongside 512MB of LPDDR2 SDRAM. The exact performance uplift over Zero varies across workloads, but for multi-threaded sysbench, it is almost exactly five times faster.
Links to information:
- Adafruit 2am discussion with Ladyada on the Raspberry Pi Zero 2 W – YouTube and Adafruit Blog
- Look inside the Raspberry Pi Zero 2 W and the RP3A0-AU with board x-rays and benchmark charts – Jeff Geerling
- A wild Raspberry Pi Zero 2 W appears! Liz Clark/Blitz City DIY reviews including use with CircuitPython Blinka – YouTube and Adafruit Blog
- The Tom’s Hardware Pi Cast: Eben Upton Talks Raspberry Pi Zero 2 W – YouTube
- Make Magazine interview with Eben Upton, with a deep comparison between the original Zero W and the new Zero 2 W – YouTube
- Awesome Raspberry Pi Zero 2 Projects to Make This Weekend – ThePiHut.
PyLadies Talk on the Basics of Hardware with CircuitPython
PyLadies Southwest Florida hosts Kira Hartlage demonstrating how to use CircuitPython to control a Circuit Playground Bluefruit circuit board – YouTube.
The Circuit Playground Bluefruit has a microcontroller board and various sensors such as LEDs, capacitive touch buttons, motion sensor, thermistor, phototransistor, microphone, speaker, and more. The microcontroller comes preloaded with CircuitPython which is an easy to learn variant of Python designed for beginners to learn how to code for hardware with little to no actual hardware experience – PyLadies SWFL.
Find the resources for the presentation – GitHub.
An Adafruit Halloween
Adafruit loves Halloween, both in making hardware enabling people to build spooky things, and decorating & dressing the part. Adafruit’s Electronic Halloween has been a staple for many years – Adafruit Blog.
Here is a selection of pictures of the Adafruit team last Friday – Flickr.
Melbourne MicroPython Meetup
The Melbourne MicroPython Meetup for October 27th had some interesting presentations – main slides.
Resources for topics discussed:
- A monitor for realtime MicroPython code – GitHub.
- MicroPython MessagePack – GitHub.
- μSQLite library module for MicroPython – GitHub.
- VL53L5CX MicroPython and CircuitPython Package – GitHub.
Humble Book Bundle for the Raspberry Pi
Explore the versatility of the humble Raspberry Pi with the latest Humble Bundle of books starting at $1. This bundle helps your computing ideas become reality. Find inspiration for a new project in Raspberry Pi for Beginners (Pi 3A+), Get started with MicroPython on Raspberry Pi Pico, dive into a collection of issues from Wireframe – a title that lifts the lid on games and the official Raspberry Pi brand – MagPi, snap up discounts for subscriptions to Raspberry Pi magazines, read exclusive content and much more. Plus, purchases help support the Raspberry Pi Foundation – Humble Bundle.
CircuitPython Deep Dive Stream with Scott Shawcroft
This week, Scott streams his work on Raspberry Pi (bare metal) CircuitPython speedup and SD card use.
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:
- Dual NeoPixel Rings – Adafruit Blog and YouTube.
Catch all the episodes in the YouTube playlist.
Halloween Projects From Around the Web!
This month has seen a wide array of Halloween-themed hardware running CircuitPython and MicroPython:
Halloween talking clock based on Raspberry Pi Pico – Galopago projects and GitHub, via Hackaday.
Jump Scare Tombstone using an Adafruit Hallowing M4 with CircuitPython – hackaday.io.
I put the moving eyeball in our door for tonight. Super janky but should last long enough for trick-or-treating. Thanks to the Adafruit QTPy and CircuitPython – Twitter.
Hack a Pumpkin: Spoopy Poopy, the Gaseous Gourd, with an Adafruit Feather M0 Express running CircuitPython – YouTube.
Halloween trick Jack-o-lantern: toss in an Adafruit Circuit Playground into your props for quick yet cool lighting effects! Batteries should last a while and with the onboard light sensor, you can trigger the effects to activate when it’s dark – Twitter.
A moving skull prop using an Adafruit ItsyBitsy M0 programmed in CircuitPython – Twitter.
The black & gold, hacker special edition of the MicroPython programmed Wi-Fi Nugget dressed for Halloween – Twitter.
A Halloween music box with CircuitPython on a Raspberry Pi Pico – Twitter.
Magically sparkling fairy wings powered by NeoPixels and CircuitPython on an Adafruit Circuit Playground Express – Twitter.
Other News From Around the Web
I invented a keyboard and snapped it in half (MiRage Mech Keyboard), using CircuitPython – YouTube.
PyDOS+PyBasic + CircuitPython using PyDOS on an Adafruit Feather RP2040 + keyboard FeatherWing. Memories of my early days but in pocket form – Twitter.
A Git and GitHub one page cheat sheet – Twitter.
I got invited to GitHub Copilot preview. Wanted to try some CircuitPython and code and… that is really impressive. It also got the needed
wheelfunction right from context – Twitter.
CircuitPython School – Feel the noise! Play wav and mp3 files from microcontrollers – YouTube via Twitter.
More CircuitPython School this week:
- Spin Me Round Using Potentiometers – YouTube.
- “Don’t Stand So Close to Me” Proximity Sensing with the APDS9960 multi sensor – YouTube.
- Getting Pushy by Breadboarding Buttons – YouTube.
Needed a unique metering graphic while feeling a bit nostalgic. Do you remember the 6E5 vacuum tube? Here’s a prototype object created in CircuitPython displayio on an Adafruit PyPortal Pynt – Twitter Thread.
The MagicEye is the first in a series of graphic widgets for CircuitPython – GitHub.
An LED-augmented mask using 10 Adafruit NeoPixels, a Circuit Playground Express and a battery pack. 6 effects at 3 speeds, selected via button clicks on the Express, with audio confirmation – Twitter.
Software Freedom Conservancy’s DMCA Exemption Requests Granted for Alternate Router Firmware, Copyleft Compliance Investigation and More – sfconservancy.org.
Software Freedom Conservancy is proud to announce that its efforts to stand up for the rights of FOSS developers have been successful and that it has been granted almost all of the exemptions that it requested in the Librarian of Congress’ recent rule making, according to the final rule Exemption to Prohibition on Circumvention of Copyright Protection Systems for Access Control Technologies, which was published today. Effective today, the Librarian of Congress (“LoC”) granted DMCA exemptions for installing alternate firmware on routers and for investigating copyleft compliance, and the exemption that Software Freedom Conservancy previously applied for and received on Smart TVs was also expanded. While our formal request to extend the security research exemption to include privacy research was not granted, the Register clarified that privacy research is indeed included in security research. Our executive director, Karen Sandler, also participated as an individual in a request to expand the existing exemption for medical devices which was also successful.
online gif tools is billed as the world’s simplest GIF utilities – OnlineGifTools.
PyDev of the Week: Tzu-ping Chung from Mouse vs Python
CircuitPython Weekly Meeting for November 1st, 2021 on YouTube and the notes doc.
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? MIT Introduction to Computer Science and Programming in Python.
An I2C Stemma QT Slide Potentiometer with NeoPixels: Adafruit designed I2C-to-whatever converters a while ago, but got hit with the silicon shortage, so they’re redesigning the boards with chips available. Here is a I2C to slide potentiometer with 4 NeoPixels design – Twitter.
open·control is a customizable control surface for Ableton Live, based on a Raspberry Pi Pico (RP2040) chip. It is programmed in C/C++ using Arduino, but can be programmed in CircuitPython / MicroPython – Kickstarter.
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 the works.
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!
TVA Baton from Loki from Noe and Pedro
Disconnected CO2 Data Logger from Liz Clark
Adafruit VL53L1X Time of Flight Distance Sensor from Kattni
Updated Learn Guides
Welcome to CircuitPython: PyCharm and CircuitPython from Kattni
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!
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 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 338!
Here’s this week’s new CircuitPython libraries:
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!
This past week, I’ve studied a number of packages for doing cooperative multitasking in Python, including asyncio, Trio, and Curio. This is in preparation for choosing what we will do in CircuitPython. MicroPython has its own implementation of asyncio, written largely in Python. This should be straightforward to adapt to CircuitPython.
Asyncio does not yet include some features that would make using multitasking safer and less error-prone. Trio, especially, advocates for these features, which are called “structured concurrency”. In structured concurrency, the lifetime of a set of tasks is typically limited to a block scope; error handling and task cancellation are also managed so as not to leave dangling tasks and still catch all task errors. In the long run, I would like add structured concurrency constructs to whatever API we provide.
I’m back to working on camera and image features. With the work-in-progress
gifio module, it’s possible to record animated gifs from a camera onto an SD card. The gif code originates from OpenMV, another project that derives from MicroPython. I hope to find enough performance optimizations to capture 240×240 gifs at 10fps.
This week I published the VL53L1X Time of Flight sensor guide. This guide has everything you need to get started using your VL53L1X STEMMA QT sensor including an overview, pinouts, downloads resources, and examples in both CircuitPython and Arduino. If you picked up one of these handy little distance sensors, check out the guide.
I’ve also been working on updating the Welcome to CircuitPython guide. The update is still a work in progress, but there have already been some pretty significant changes to content and the guide structure. The goal is to create a smoother experience for folks who are new to CircuitPython, and I’m well on the way to having that completed. Some of the updates already available include a new PyCharm and CircuitPython page and a number of pages now nested under Advanced Setup. Keep an eye on that guide to follow along, and an eye out here for when it’s finished!
This week I’ve been working on updating the CircuitPython code editor so it is usable on mobile devices with smaller screens. This included building out the collapsible menu, making certain fonts smaller, and making the file dialog resize appropriately as well as a few bug fixes. I found a bug when trying to connect with mobile devices that crashed CircuitPython, so I wasn’t able to test on an actual mobile device. So the focus has been more on the look screen size.
This has been a huge week for CircuitPython on the Raspberry Pi 4 (no other OS.) At the end of last week I got HDMI output working from displayio which means the terminal works. At the same time Thach got USB working! So you can get a REPL and see it on the screen with CircuitPython on the Raspberry Pi 4.
The last few days have been spent trying to speed up CircuitPython. Fast, application processors like the one on the Pi 4 relies on caches to run fast without them they are limited by memory speed. Today I got the caches enabled in a way that speed everything up greatly but still works.
For good measure I also bumped up the compiler optimization level from -O2 to -O3 for more speed as well. I had tried earlier but it was crashing. I figured out the issue and now it’s enabled.
Next up, I’ll be diving into the EMMC controller that is used to manage the SD card and then connecting it to USB as a drive. That will give the full CIRCUITPY experience.
PyCon Chile is November 5, 6 and 7th online – one day of workshops and Sprints, two days of talks! – more.
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.
CircuitPython’s stable release is 7.0.0. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20211101 is the latest CircuitPython library bundle.
v1.17 is the latest MicroPython release. Documentation for it is here.
3.10.0 is the latest Python release. The latest pre-release version is 3.11.0a1.
2,640 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 – 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
Community Coordinator – Open Source Hardware Association (OSHWA) – Adafruit Jobs Board.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 31,543 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.
This video podcast is on iTunes, YouTube, IGTV (Instagram TV), and XML.
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.
Visit Codecademy to access the Learn Hardware Programming with CircuitPython course and Adafruit to purchase a Circuit Playground Express.
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.
Join our Discord or post to the forum for any further questions.