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). Over 9,450 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! The parts shortage has now affected Raspberry Pi 4 and CM4 availability. We find out why. Also a new version of CircuitPython is out and a new beta also! More news and projects await, so enjoy this week’s issue.
Raspberry Pi Founder Discusses Shortages
Eben Upton released an update discussing the supply issues for Raspberry Pi single board computers (SBC) which include the Raspberry Pi 4, Compute Module 4 and the Raspberry Pi Zero 2 W – Raspberry Pi News.
“Over the last six months we’ve been working hard to get more Raspberry Pi products built and shipped to customers. Despite a variety of supply-chain challenges, we’ve consistently been able to build around half a million of our single-board computers and Compute Module products each month.”
“As we’ve said before, the current situation is as much a demand shock as a supply shock: demand for Raspberry Pi products increased sharply from the start of 2021 onwards, and supply constraints have prevented us from flexing up to meet this demand, with the result that we now have significant order backlogs for almost all products. Many Approved Resellers have implemented single-unit limits to combat this, with Adafruit and others going further and enforcing two-factor authentication – we’re encouraging other Approved Resellers to consider this route. So, what should you do if you need to buy a Raspberry Pi in 2022? Always buy from an Approved Reseller.”
Two New CircuitPython Releases
Notable changes to 7.3.0 since 7.2.4:
- Experimental mDNS support.
- USB to Serial/JTAG support for REPL on appropriate boards.
- Initial experimental USB host support.
- Merge MicroPython 1.18 changes.
Notable fixes to 7.2.4 since 7.2.3:
- Enable I2C power by default on Feather ESP32-S2.
Adafruit IO is now storing over 1 billion data records
Adafruit IO has reached a milestone in that it now stores over 1 billion data records.
The interesting part about this is that, due to how free accounts work, most of that data rolls over after 30 days and is deleted.
TOTAL DATA RECORDS 1 Billion (1003060059)
Adafruit continues to grow the infrastructure behind IO to support their free and paid users. They’re adding new features and are looking forward to new users discovering the product.
In the last month, Adafruit has added new dashboard blocks, updated Actions, had major updates to Wippersnapper (with more on the way) and they have more updates planned – Adafruit Blog.
And read more on new features to IO Actions – Adafruit Blog.
Linux 5.17 Released
Linux 5.17 was released late last month. Most of it is in drivers (net, usb, drm), with some core networking, and some tooling updates. Linux 5.17 progress was slowed by a week because the team had to deal with patches for another variation on the Spectre attacks, which added to the workload – Kernel.org.
Compose with Markdown in Google Docs on web
In Google Docs, you can now select “Automatically detect Markdown” from Tools > Preferences to enable auto correcting for Markdown syntax, a lightweight markup language for applying formatting using plain text – Google and Adafruit Blog.
Currently, Google Docs supports some Markdown syntax, such as:
* or – followed by a space autocorrects to bullet points
Various ways to start a numbered list similar to Markdown
 followed by a space autocorrects to checkboxes
The expanded support will now support autocorrection for:
- Italic and bold
- Bold + italic
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 is working on hidden shapes for vectorio.
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 a new 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 twenty to thirty minute interview – CircuitPythonShow, Blog Post and Twitter.
The last episode aired on March 29th featuring an interview with Rose Hooper. The sixth episode airs today April 5 with guest Scott Shawcroft (Lead CircuitPython developer at Adafruit, above) – Show List.
Programming note – there will not be a guest April 12. The next scheduled show after Scott will be Monday April 18th.
TammyMakesThings is Streaming CircuitPython
Community member and CircuitPython contributor Tammy Cravit is streaming on Twitch. Her stream focuses on electronics, coding and making, with a focus on CircuitPython. The first few streams have been working on a MacroPad-based MIDI controller, and she’s got lots of other project ideas in the works. An exact schedule for her streams is still being worked out, but she’s targeting 2-3 streams per week. Check it out and follow now to be notified of future streams – Twitch.
Project of the Week
Using 8-bit palette cycling animation in CircuitPython to achieve color changing, bouncing balls – Twitter.
It uses a “fake” 2D physics engine with simulated gravity – GitHub Code.
News from around the web!
The Joopyter Personal Terminal is a 3D printed portable computer that includes everything you need for life in the retro-futuristic fast lane: a mechanical keyboard, a thermal printer, and the obligatory tiny offset screen. It’s mobile, thanks to it’s onboard battery and a clever hinge design that lets you fold the whole thing up into something akin to a PLA handbag – Hackaday via GitHub.
Les Pounder is using CircuitPython and the NewsCatcher API to scan/parse RSS feeds – Twitter Thread.
A handy SQL Cheat Sheet – Twitter.
Raspberry Pi helps entomologists study elusive insects – Raspberry Pi News.
CircuitPython documentation use generated diagrams – Twitter.
Proximity sensor controlled NeoPixel Led string – Twitter.
Python and the James Webb Space Telescope – TalkPython Podcast.
An in-web Gamepad tester and debugger using HTML5 – Gamepad Tester.
Bloxs is a simple Python package that helps you display information in an attractive way (formed in blocks). Perfect for building dashboards, reports and apps in the notebook. It works with: Jupyter Notebook, Google Colab and more – GitHub.
What to Expect from Python 3.11 – bas.codes.
Cython is 20 – Stefan Behnel.
The counter-intuitive rise of Python in scientific computing (in relation to FORTRAN) – The COOP Blog.
tinygrad is may not be the best deep learning framework, but it is a Python-based deep learning framework – GitHub.
How is PyPy Tested? – PyPy.
PyDev of the Week: PyDev of the Week: Jeremy Tuloup on Mouse vs Python
We peeped this multi-gas MOX sensor from ScioSense – the ENS160 has I2C and SPI and even comes with a ready-to-go driver, so it would make for a cute QT sensor.
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 nine new boards added!
- Servo 2040
- TTGO T8 ESP32-S2
- TTGO T-01C3 ESP32-C3
- Challenger 840 BLE
- Adafruit QT Py ESP32-C3
- Feather ESP32-S3 No PSRAM
- Khadas VIM3
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 349!
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!
I released CircuitPython 7.2.4 to fix a small number of bugs, and also released CircuitPython 7.3.0-beta.0, the first 7.3.x release. 7.3.0-beta.0 includes about 75 pull requests merged since 7.2.x was branched from the main line branch.
I have been fixing bugs and doing reviews. There are still a few more bugs to fix for 7.2.x, and larger number for 7.3.0.
MicroPython recently fixed a number of
asyncio issues; they will need to be incorporated into our version of the library and the CircuitPython core.
This past week, I actually worked on some CircuitPython bugs! There was an interesting bug on boards with samd51 microcontrollers where, every 3 days, the time could rarely and briefly go backwards by 3 days. There’s a fix for it, which we hope to merge soon.
This week I proofed Liz’s first STEMMA QT revision guide completed on her own. She did a wonderful job!
I had a huge amount of miscellaneous piling up, so I spent a day going through all of that to get it out of the way. They were mostly small things, but they had been collecting for a while.
Finally, I added a MicroPython Setup page to the Feather ESP32 V2 guide. It shows how to blink the LED from the REPL, and how to use Thonny to load a simple WiFi connection demo.
I also worked on Blinka a bit and updated the
libgpiod_pin module to work with both older and newer versions of
libgpiod. The reason this was an issue is because Blinka was still using the older version and they had different APIs. Rather than break it for users by just updating, it made more sense to support both.
This week I made some colorful and fun examples using the
RotatedPolygon helper class that was created last week. I will be digging further into the core
vectorio module to try to enable the capability to use the
hidden property for hiding and showing shapes the same way that
displayio TileGrids and Groups work.
I also created a
PagedLayout class for the
DisplayIO_Layout library that provides a very easy to use interface for building multi-page applications and being able to change which page is showing at any given time, ultimately I hope to expand the
PagedLayout into a
TabLayout that uses button tabs to allow the user to change between the pages. I hope to use these new widgets to create a new version of the PyPortal Interface learn guide example project that is updated to use asyncio and some of the other newer features in CircuitPython.
Big thanks to Kattni for proofing my first solo STEMMA QT revision guide. I’ll be working on my first solo new product guide this week for the TSC2007 STEMMA board. I’ve also started working on a new project with a QT Py ESP32-S2. I’m using it to control a Pure Data script over a socket. Its final form will be a funky, wireless synth controller.
PyConDE and PyData 2022 will be held in Berlin, Germany from April 11 – 13, 2022 at the Berlin Conference Center – PyCon DE.
PyCon US 2022 planning is underway. The event is in-person with an online component. April 27, 2022 – May 5, 2022 in Salt Lake City, Utah USA. Head over to the PyCon US 2022 website for details about the conference and the schedule (new) – PyCon Blog.
PyCon Italia is the Italian conference on Python. Organized by Python Italia, it is one of the more important Python conferences in Europe. With over 700 attendees, the next edition will be June 2-5, 2022 – Ticket Registration.
SciPy 2022, the 21st annual Scientific Computing with Python conference, will be held in Austin, Texas, USA from July 11-17, 2022. The annual SciPy Conference brings together attendees from industry, academia, and government to showcase their latest projects, learn from skilled users and developers, and collaborate on code development. The full program will consist of 2 days tutorials (July 11-12), 3 days of talks (July 13-15) and 2 days of developer sprints (July 16-17) – SciPy 2022.
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 Twitter with hashtag #CircuitPython or email to cpnews(at)adafruit(dot)com.
EuroPython 2022 will be held on 11th-17th July 2022 and it will be both in person and virtual. The in-person conference will be held at The Convention Centre Dublin (The CCD) in Dublin, Ireland – EuroPython 2022.
20220404 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
Electrical enthusiast – Framerates Theory’s – Adafruit Jobs Board.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 33,884 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.