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). 9,800 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! This week, tools have improved for making microcontroller projects: a new MicroPython editor, updating the third-party online CircuitPython IDE and a nifty free Python script from Adafruit to make pretty script labels in Eagle CAD. Loving the use of Raspberry Pi Pico to interface with old keyboards and some new Python-capable boards (and so many projects this week). Enjoy.
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:
Mainline Python 3.14 Predicted to be Faster than C++ (Really??)
In about a month, there will be a new yearly release of Python: version 3.11. The main feature for this version is a significant increase in speed. People are testing the new version and their results are stunning. Extrapolating keeping at this pace, Python 3.14 will be faster than C++. To be exact, the loop time will be -0.232 seconds, so it will be done just before you want to do the calculation – Towards Data Science.
Adafruit Pinguin – use any Font in EagleCAD
Autodesk’s EAGLE — the PCB design software favored around Adafruit — has a problem: the circuit boards it produces, while perfectly functional, are ugly, with vintage plotter-like text and no font support. Pinguin is a Python script that substitutes TrueType fonts for EAGLE’s ugly plotter-stroke text. Open Source software – Adafruit Learning System.
Tandy TRS-80 Model 100 Retro-refit
Retrofitting a vintage Tandy TRS-80 Model 100 portable with Raspberry Pi hardware. The first step is to utilize the keyboard. A Raspberry Pi Pico, running CircuitPython, decodes the keyboard matrix. Next up us using a Raspberry Pi computer and modern color display – GitHub.
Iguana – a Programming environment for MicroPython
Iguana is an evolving IDE for MicroPython programming on Windows. Iguana contains a code editor (Ace), a terminal with REPL, a file manager, a downloader (esptool) and allows your to work with MicroPython via Wi‑Fi and USB – robostart.ru and MicroPython Forum.
Hack your ID badge with Badger 2040
The Badger 2040 is a e-Ink ID Badge based around the RP2040, the microcontroller used in the Raspberry Pi Pico. In this video, Penguin Tutor shows a how to get started along with info on how to hack the badge via MicroPython to create a game – YouTube.
Two New Features Added to the CircuitPython Online IDE
Two features that River Wang has promised for the CircuitPython Online IDE have been added. One is the file modification indicator. The other is the serial mode indicator showing whether the microcontroller is in REPL or running a script – Twitter and the CircuitPython Online IDE.
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 a CircuitPython Palette Filter and looked at a MPY file size utility.
You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.
CircuitPython Parsec
John Park’s CircuitPython Parsec this week is on Bitmap Line Drawing – 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 Thea Flowers of Winterbloom and next week Bradán Lane joins the show and shares his CircuitPython powered products, including the JoyPad and LumosRing – Show List.
The CircuitPython Community Help Desk Returns September 29
The CircuitPython Community Help Desk returns on Thursday, September 29th from 7pm EDT to 9pm EDT. Developers will be on hand to help you get ready for Hacktoberfest 2022. Volunteers will help get you registered for Hacktoberfest, help with your development environment, and share how to participate in Hacktoberfest by contributing to CircuitPython and its libraries. Help will be available in the Adafruit Discord in both voice and chat.
Hacktoberfest help is available throughout October in the Adafruit Discord in the #circuitpython-dev channel in the Hacktoberfest 2022 thread. The Community Help Desk will also return on October 29th to help wrap up Hacktoberfest.
CircuitPython community members Paul Cutler and Tod Kurt have started a new podcast, The Bootloader. Each episode they both share three interesting things form the maker and tech scenes. In the first episode, they talk about a couple of CircuitPython projects, 3D printing, and more – The Bootloader website and Twitter.
Project of the Week: A smart electronic reflow hotplate
Bradán Lane has built a smart electronic reflow soldering hotplate, programmed in CircuitPython – Adafruit Blog, Twitter and GitLab.
News from around the web!
“Based on John Park’s CircuitPython Parsec, here’s a quick “generative art” piece on a Adafruit ESP32-S2 FunHouse, drawing lines on a bitmap. I love zooming in on the display” – Twitter Thread, YouTube and Code.
Measuring the power usage of NeoPixels on a Circuit Playground Bluefruit and the RGB LEDs on a Blinkyparts Rainbow Unicorn using the Nordic Power Profiler Kit II – Instructables
Raspberry Pi Pico ILI9341 display tutorial using CircuitPython – YouTube via Twitter.
Python Regular Expressions Cheat Sheet (PDF) – Cheatography.
ClockAThing, a big circular RGB LED display. 188mm in diameter, with 660 WS2812B LEDs powered by a Seeed Xiao SAMD21 and CircuitPython or Arduino – Tindie Blog.
Mark Komus has a version of CircuitPython installed and running on a custom built ESP-based board. “I have an idea for an in home sensor / alarm I can use this for (which was the secondary purpose when designing it – after learning)” – Twitter.
A comparison of Raspberry Pi Zero form factor single board computers (SBCs) for September, 2022 – bret.dk.
“Another look at how we run in-class challenges during #BCPhysComp. Mishal’s engineering and CircuitPython coding skills earn a snack!” – Twitter.
A soil sensor using CircuitPython, an Adafruit ESP32 Feather and a LCD Wing – Twitter.
“Given the impending demise of the #DarkSky API I started looking for alternatives and had a play with Open-Meteo, a nice and easy to use Open Source weather API. In this test my Raspberry Pi Pico W updates its Pimoroni Inky Pack every 10 minutes in
MicroPython” – Twitter.
An MP3 player with Raspberry Pi Pico W and MicroPython – Twitter.
Radomir Dopieralski (de∫hipu) gave a talk at the Swiss Python Summit about CircuitPython, embedded coding and making game devices – Twitter Thread.
Students at Boston College making magic wands with NeoPixels, Circuit Playground Express and CircuitPython – Twitter.
“The Adafruit PMS003I particulate sensor from my friends at Pimoroni is sending data to Adafruit.io via the robust MicroPython MQTT client on a Raspberry Pi Pico W” – Twitter Thread.
Arch Linux is removing Python 2 from their repositories as it went end of life in 2020 – Arch Linux Blog.
A MIDI splitter with Raspberry Pi Pico – Twitter and Blog.
Reflow946 is a Bluetooth LE temperature controller for the 946C electronic hot plate. Using this controller, a reflow profile can be programmed from your web browser using the Web Bluetooth API. You can use preset profiles (e.g. for lead-free or leaded soldering) – Twitter and GitHub)https://github.com/DurandA/reflow946).
3 free Linux security training courses you can take right now – Help Net Security.
What Does if __name__ == “__main__” Do in Python? – Real Python.
How to Replace a String in Python – Real Python.
CircuitPython Weekly Meeting for September 26, 2022 (notes) on YouTube
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? F-String Cheat Sheet (PDF).
New Hardware
RP2040 Stamp Handheld Console transforms an RP2040 Stamp into a small handheld console with a 1.3” 128×64 OLED, D-pad + A and B buttons, RGB LED, a Qwiic connector, a power switch, and a speaker. As the console is powered by the Stamp, you can run CircuitPython on it, as well as Arduino, including experimental support for the Arduboy2 library – Lectronz.
The Bee S3. An Ultra Low Power ESP32-S3 Board. Supports Arduino, MicroPython and CircuitPython with many example sketches – Tindie.
The Banana Pi BPI-Leaf-S3 is a series of low-powered microcontrollers designed for IoT development and Maker DIY board. It supports 2.4 GHz Wi-Fi and Bluetooth® LE dual-mode wireless communication, the peripheral is compatible with low-power hardware design, and the power consumption is only 10uA in deep sleep mode – Banana Pi Wiki via 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 two 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:
- 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!
Adafruit TCA8418 Keypad Matrix and GPIO Expander Breakout from Liz Clark
Adafruit 24LC32 I2C EEPROM Breakout – 32Kbit / 4 KB from Liz Clark
CircuitPython Libraries!
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 371!
New Libraries!
Here’s this week’s new CircuitPython libraries:
Updated Libraries!
Here’s this week’s updated CircuitPython libraries:
- Adafruit_CircuitPython_DS18X20
- Adafruit_CircuitPython_HCSR04
- Adafruit_CircuitPython_MiniMQTT
- Adafruit_CircuitPython_EMC2101
- Adafruit_CircuitPython_DS3502
- Adafruit_CircuitPython_IL0373
- Adafruit_CircuitPython_MAX31856
- Adafruit_CircuitPython_TCA8418
- Adafruit_CircuitPython_BitbangIO
- Adafruit_CircuitPython_LIS2MDL
- Adafruit_CircuitPython_TestRepo
- Adafruit_CircuitPython_MCP9600
- Adafruit_CircuitPython_Wiznet5k
- Adafruit_Blinka
- Adafruit_Python_PlatformDetect
- CircuitPython_Community_Bundle
What’s the team up to this week?
What is the team up to this week? Let’s check in!
Dan
Kattni, Jeff, and I went over the issue list and PR list to triage what we really want to add or fix for CircuitPython 8.0.0. We reduced the number of issues, and assigned some to specific folks.
I am working on fixing some status bar glitches. This week I shepherded some PR’s through from outside contributors that add new features we are very pleased to have.
Last week I added individual pin control during deep sleep on Espressif boards. I now need to investigate why the deep sleep power consumption is not as low on some boards as we might expect, and whether that can be fixed.
Kattni
This week I am working on a few things. I’ve been testing the MCP9600 on various microcontrollers, along with Carter who tested on Raspberry Pi, to be able to add more details to the guide on frequency settings. Found another place lacking documentation, and will get that updated as well. I started the guide for the LTR-329 and LTR-303 light sensor breakout boards, recently added to the shop. And finally, I’m working on the STEMMA QT revision guide update for the Quad Alphanumeric 14-segment backpack.
Melissa
This past week, I’ve continued working on the CircuitPython Code Editor. Now that web workflow is complete, I’ve been working to fix up Bluetooth and have been adding a USB workflow. At this point, I have the connection and serial terminal parts of the USB workflow working nicely, but I’m waiting until USB is complete before pushing the changes live.
Tim
This week I added docstrings and typing information to the PIL script that generates flip clock animation sprites. It turned out some of the variables for size and color were not functioning properly when used from the command line, so I discovered a few issues causing that and fixed them. For testing I generated some much smaller flip tiles with only 5 animation frames instead of 10, which made the spritesheets small enough that they can be used on a PyPortal which has less RAM than the ESP32-S2 which can run with the larger spritesheets. I also added the option to have a horizontal line in the middle of your tiles if you want.
Jeff
I’ve been hard at work on support for the wireless module in the Raspberry Pi Pico W. Today I got to the point where it works well enough to start sharing it with others to get feedback. Here’s the pull request – check out my segment on last week’s Show & Tell on YouTube for a rundown of what works so far!
Liz
This week I worked on two new product guides: the 24LC32 I2C EEPROM Breakout and the TCA8418 Keypad Matrix and GPIO Expander. Both breakouts are STEMMA QT compatible and have CircuitPython libraries. I adapted one of the Arduino examples to CircuitPython for the guide to use a 3×4 numpad, so check that out if you’ve been curious about keypad matrixes.
Upcoming events!
The next MicroPython Meetup in Melbourne will be on September 28th – Meetup. See the slides of the August 24th meeting.
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.
RISC-V Global Summit, December 12-15, 2022 San Jose, California US – Linux Foundation, YouTube via Twitter.
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.
Latest releases
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.
20220924 is the latest CircuitPython library bundle.
v1.19.1 is the latest MicroPython release. Documentation for it is here.
3.10.7 is the latest Python release. The latest pre-release version is 3.11.0rc2.
3,183 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.
35,558 thanks!
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 35,558 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.
Contribute!
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.