View this email in your browser. Warning: Flashing Imagery
Welcome to the latest Python on Microcontrollers newsletter! Mu finally has a new update to provide some needed capabilities We’ve reported that Microsoft has a renewed interest in Python and they even hired Guido van Rosum, the language’s creator. Two steps this week to strengthen Microsoft’s commitment in supporting Python with their .NET framework and the ability to program in Linux on Windows. Lastly, we’re 12 subscribers away from 10,000, I hope we cross this important milestone together by next week. Thank you all and Happy Holidays! – Ed.
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:
Mu Editor Version 1.2.0 Released
The Mu team has released a new version of the Mu Python Editor. This release introduces Snek mode, fixes some minor bugs, addresses some usability gremlins and adjusts some capabilities to make things tidier. Much of this work was done over the summer at the code-sprints at EuroPython 2022 in Dublin. It also includes the fix allowing for the CircuitPython 8.0.0 status line – GitHub and Adafruit Blog.
Python and .NET – An Ongoing Saga
Microsoft’s .NET Framework arrived with two languages, C# and Visual Basic. Then came the Iron Languages, .NET compatible implementations of Ruby and Python which Microsoft “let go of” in 2010. Nowadays Microsoft is again embracing Python – I Programmer.
Windows Subsystem for Linux Has Reached v1.0 Stable Release
Windows Subsystem for Linux (WSL) is a tool that lets you run a GNU/Linux environment inside a Windows system without needing a virtual machine or dual-boot. It was released by Microsoft Store as a preview. Now, the preview label has been removed, signifying that it is stable enough for a 1.0 release – It’s FOSS News and GitHub.
Raspberry Pi’s Eben Upton Recognized
Eben Upton, founder of Raspberry Pi, which is manufactured in Sony UKTEC, won the Wales STEM Awards “Outstanding Contribution to STEM” award for his efforts in inspiring the next generation of computer programmers, scientists & engineers worldwide – Twitter.
Traditionally, “Black Friday”, the Friday after US Thanksgiving, started the holiday shopping season and brought discounts from sellers. In recent times, retailers have introduced sales prior to Black Friday. But it is still expected that there will be some of the best prices on items this week into the US weekend and into “Cyber Monday”. This will include electronics companies selling microcontrollers and single board computers (if available). Check with your favorite retailers to see what they’re planning.
Please Send in Your Projects and Python News
Through the new year, folks will likely have some free time and it’s a busy season for making projects. With the turmoil on social media, neat postings might be missed. Please send your links to internet posts to firstname.lastname@example.org for consideration of this newsletter. Thanks and we look forward to seeing all the submissions – Ed.
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 displayio API Change + PixelMap.
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 is back this week and features File Glider – Adafruit Blog and 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 show is off this week. Last week featured Joey Castillo and next week Mark Komus joins the show – Show List.
Project of the Week: A General-Purpose Chip Debug Interface
Josh posts about wanting to debug some low-level SPI communication issues in a prototype/evaluation setup – Mastodon.
“Somewhat of an odd day as a mechanical engineer when you’re breaking out the oscilloscope to debug an inter-chip issue! Thank goodness I can at least control it all in Python. Using a QT Py RP2040 from Adafruit as my general-purpose chip debug interface. (This) lets me do SPI & GPIO, all in CircuitPython (on the QT Py) and Python (on the host PC)”.
News from around the web!
Kevin writes “Whoop, my new MicroPython course is almost ready to launch. I’d like some beta testers to help me find issues, and typos, and to check it flows right for beginners etc. Let me know if you’re interested, and I’ll send you a secret link to the beta site” – Twitter.
A video on the macOS Ventura Drag and Drop Bug which affects Raspberry Pi Pico, CircuitPython and micro:bit users – YouTube.
Interpreting Data through Music. “Honestly, it pretty much built itself thanks to the great sample code from Ladyada at Adafruit.com. Her examples were used to glue together a proximity and light sensor with a temperature, pressure, and humidity sensor. I wrote some code to send these values (some of them adjusted to be within valid values) as MIDI messages to my synthesizer.” – YouTube and cerkit.
Introduction to CircuitPython on Raspberry Pi Pico with NeoPixels – YouTube via Twitter.
Kids Hack Their Brother’s Computer Using A Raspberry Pi Pico and CircuitPython – YouTube and Web.
Getting started with CircuitPython on Fedora – nullr0ute.
A cheerlights CheerClock is almost complete. It’s based on Pimoroni‘s Galactic Unicorn LED board and a Raspberry Pi Pico W microcontroller. A write up, case SVG and MicroPython source code will be available soon – Twitter.
Characterizing an aircraft altimeter using Python and displaying output on a SparkFun board – Twitter.
CircuitPython performance on two boards compared – Mastodon.
Another Pimoroni Galactic Unicorn Cheerlights project – Twitter.
“Bells and Glock are now easier with Raspberry Pi. A Python script monitors USB ports and restarts Fluidsynth on demand if MIDI keyboard connection interrupted or if the Handsonic, which has a built-in sound card, is connected, to combine the sounds with other percussion” – Twitter.
Exception Handling in Python – Vocal Media.
A JPG file dissection – Twitter and GitHub.
The difference between “is” and “==” in Python explained – YouTube.
What Can I Do With Python? – Real Python.
Functions, ‘args’ and ‘kwargs’ in Python – Vocal Media Education.
Run Python Code From Excel with VBA – YouTube.
PyDev of the Week: Irit Katriel on Mouse vs Python
CircuitPython Weekly Meeting for November 21, 2022 (notes) on YouTube
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Python Cheat Sheets.
Pete Lomas writes on Twitter: “Fell across this interesting idea from our friends @EdacEurope whilst ‘doing the tour’ at Electronica. Allows you to plug/unplug boards like Raspberry Pi Pico without soldering. Cannot show you the PCB underneath – apparently super secret sauce from CodeBug” – 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 no new boards added, but several are in process.
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!
Adafruit PiCowbell Proto for Pico from Kattni
Adafruit High Power Infrared LED Emitter from Liz Clark
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 393!
Here’s this week’s updated CircuitPython libraries:
- There are too many updated libraries to list this week! To view the list, check out the Library Report.
What’s the team up to this week?
What is the team up to this week? Let’s check in!
Welcome back Scott! This week Scott, Jeff, and I met to triage the remaining 8.0.0 issues. I fixed several rather specific bugs: SAMD21 event channels were not being freed properly, STM PWMOut sometimes had incorrect clock speeds due to an off-by-one-bug, and RP2040 PinAlarms that triggered before a deep sleep could prevent wakeup. Right now I’m working on an Espressif SPI problem, and found and fixed a minor RP2040 SPI problem in the process.
This week I published two guides: the PiCowbell Proto guide and a shorty guide for the Qwiik / STEMMA QT 5 port hub.
The PiCowbell guide has detailed examples of the four ways to assemble it with a Pico, Pinouts details, as well as CircuitPython and Arduino I2C scan examples to ensure your STEMMA QT sensor or breakout is being recognized. It also has downloads resources if you’d like more information. If you picked up one of these handy little boards, check out this guide!
The STEMMA QT Hub guide has an overview, pinouts details, and a downloads resources page. It does not require code! If you’re interested in the details of your new hub, check out this guide!
This past week I focused on updating more of our Shell scripts over to Python. One of the reasons I had put this on hold was due to an elusive bug in the Adafruit_Python_Shell library’s
run_command function, which appeared to occasionally stop working. After diving in a bit deeper, I figured out a few situations where it wasn’t working properly. After a few modifications, I finally had it working consistently and smoothly, so I resumed working on scripts.
This week I tested out some improvements to internal utilities in the led_animation library as well as a PR in the core to offload some of the heaviest work that occurs in those helpers to a core module in order to speed it up. I also started working on a change to the displayio API in the core that was proposed during the weekly meeting.
I have several prototype Adafruit PCBs and made pull requests to add them to CircuitPython: A new MatrixPortal with the ESP32-S2 microcontroller; and a pair of “reverse mount” TFT feathers in ESP32-S2 and ESP32-S3 variants. These Pull Requests will remain in draft form until the hardware is finalized, but from my testing things are in pretty good shape!
I’m back from twelve weeks of paternity/bonding leave. It was wonderful to bond with my kiddo and weird to be back working during the day. It’s been awesome to see everything that has happened with CircuitPython while I’m out. I’ve gotten caught up on Discord, forums and e-mail. After chatting with Jeff and Dan, we’ve decided I’ll start with Pico W web workflow. It is one of the major TODO items for 8.0.0. I’ll also be testing code.circuitpython.org with that.
High Power Infrared LED Emitter guide is a fun board that lets you use a STEMMA JST-PH cable to quickly wire up an IR LED for things like TV-b-gones and remote controls.
The MicroLipo v2 was added to the original MicroLipo and battery chargers guide. I added a pinouts page for the new MicroLipo v2 and updated the Charge Rate page since the MicroLipo v2 has a switch in place of a jumper to go between 100mA and 500mA charging rates.
The QSPI breakout board guide and SPI flash guide do not have CircuitPython pages, since they’re meant for Arduino use. However, the flash chips on the boards do have TOML definition files for CircuitPython, so they can be used in a board definition which some folks may find to be helpful.
The next MicroPython Meetup in Melbourne will be on November 23rd – Meetup. Slides from the last meeting are here.
RISC-V Global Summit, December 12-15, 2022 San Jose, California US – Linux Foundation, YouTube via Twitter.
FOSDEM is a free event for software developers to meet, share ideas and collaborate. Every year, thousands of developers of free and open source software from all over the world gather at the event in Brussels. February 4-5, 2023 in Brussels, Belgium – Fosdem.
PyCon US 2023 will be April 19-17, 2023, again in Salt Lake City, Utah USA – 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.4. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20221119 is the latest CircuitPython library bundle.
v1.19.1 is the latest MicroPython release. Documentation for it is here.
3.11.0 is the latest Python release. The latest pre-release version is 3.12.0a2.
3,277 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.
Job of the Week
Electrical Technician – CAD Industries LLC – Adafruit Jobs Board.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 35,943 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.