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,430 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! Python on microcontrollers continues to be a popular option, driving the introduction of hardware and innovating in software features and drivers for add-on hardware. Check out the latest with a nod to MicroPython this issue.
New Python Twitter Communities
Twitter launched Twitter Communities to give people a dedicated place to connect, share, and get closer to the discussions they care about most. Communities are started and managed by people on Twitter — admins and moderators who enforce Community rules and keep conversations informative, relevant, and fun. People who accept invites to join a Community become members. Tweets in Communities can be seen by anyone on Twitter, but only others within the Community itself can engage and participate in the discussion.
A New Major Thonny Update is in Beta
The Thonny Python editor had received a version 4.0.0 beta 1 release. They are looking for help in reporting bugs and bug fixes.
There are many changes since 3.3.13. Here are some notable ones:
- Upgrade bundled Python to 3.10
- Mac bundle now comes with the unversal2 build of Python
- Drop support for Python 3.5, 3.6 and 3.7
- Use pipkin for managing packages on MicroPython and CircuitPython devices. This enables proper listing of packages together with version info and proper uninstallation.
- Automatically interrupt current process when connecting to bare-metal MicroPython or CircuitPython device.
- Add generic “MicroPython (RP2040)” back-end in addition to the more specific “MicroPython (Raspberry Pi Pico)”
The MicroPython Wiki Returns
Per Matt, the MicroPython Wiki is once again up and running. The MediaWiki-based site collects knowledge, resources and links for anything and everything related to MicroPython, for both users and developers – MicroPython Wiki.
It’s a Boy!
Scott Shawcroft, lead CircuitPython developer, along with his partner have a new baby as of 8:14 a.m. March 25th! Baby and mother are doing well! Scott will be on paternity leave for the next six weeks and the whole Adafruit staff and the Python + Maker communities wish the family well.
Dmitry Cherepanov’s Retro Computer Museum in Mariupol, Ukraine, Has Been Destroyed
According to Dmitry Cherepanov, collector and owner of the Club 8-bit, the the museum consisted of more than half a thousand computers, consoles and other devices – even arcade games recently – Adafruit Blog and Keyboard Builder’s Digest.
“Well, that’s all, the computer museum of Mariupol is no more. All that remains of my collection that I have been collecting for 15 years is just fragments of memories on the Facebook page, the website and the radio station of the museum. I will try to continue to support the RetroBit website and radio, but life will now have completely different priorities. There is neither my museum nor my home and it hurts, but I will definitely survive it and find a new home! – it8bit.club and YouTube.”
Adafruit Information to Russians Seeking Ukraine Information
Adafruit has set up their website such that any traffic coming from Russia sees the page https://www.adafruit.com/russia. This page has resources to help everyday Russian people know more about the war (as such news is censored by the Russian government), see and read the message from Arnold Schwarzenegger about Ukraine, use Tor and Kiwix to download resources such as Wikipedia and more. Hopefully this all will keep ordinary Russians informed as to what their government is doing in Ukraine – Webpage.
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 streams work on More Vectorio Fun and Planning for a TabbedLayout Component.
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 fourth episode aired on March 22nd featuring an interview with Tod Kurt. The fifth episode airs today March 29th with guest Rose Hooper (above) creator of CircuitPython’s LED Animations library – Show List.
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
Joey Castillo stated “I have a mighty need” after Adafruit posted a vintage calculator pen.
Known for creating innovative small electronics, Castillo set about recreating a calculator pen using a SAMD21 microcontroller and eventually a SAMD51 processor (which is in short supply at the moment).
The pen runs CircuitPython and is programmed to perform calculator functions with three input buttons.
Read the extensive, multi-post thread discussing the project in detail – Twitter.
Happy 10th Birthday to the Open Source Robotics Foundation
Happy 10th Birthday to the Open Source Robotics Foundation! The OSRF founders discuss changes they’ve seen over the last decade – IEEE Spectrum.
News from around the web!
Added features to the Pico CircuitPython CircleBar object: a method to draw dial lines around the circle (variable amount, length, offset & color) and a “danger zone” value (changes circle to red) – Twitter.
“Good” 5×7 fonts are not as easy as I would have thought … at least not in the age of high resolution fully aliased micro kerned text. I ended up customizing the 6×8 font from the HP100LX for use on the LumosRing. I’m making it available in BDF and PCF for CircuitPython users – Twitter.
A NeoPixel controller for my daughter’s unicorn papasan reading chair (with CircuitPython on an Adafruit KB2040 and Adafruit Stemma-QT rotary encoder) – Twitter.
An insect bot with a Xiao RP2040 and CircuitPython – Twitter.
lazydoro – a Raspberry Pi Python/CircuitPython (Blinka) Pomodoro timer that uses an Adafruit VL53L0X ToF sensor to see if I’m at my desk when I should be – Twitter.
Making a set for the Zoetrope Badger clan. Just need to flash each badge with CircuitPython and load the boot.py file with the second USB serial enabled – Twitter.
micropython-esp32-ulp is an assembler toolchain for the ESP32 ULP (Ultra Low-Power) Coprocessor, written in MicroPython – GitHub.
WeAct Studio RP2040 Wavgat is a RP2040 board in the form factor of a STM32 ‘Blue Pill’ board that runs MicroPython – GitHub.
A MicroPython driver for the Inkplate display is now available – GitHub.
Two commits for Linux 5.18 add support for the Raspberry Pi Zero 2 W – Twitter Thread.
Processing large JSON files in Python without running out of memory – Python Speed.
Socket Programming in Python Guide – Real Python.
Linux on the MacBook M1 (bare-metal) – YouTube.
PyDev of the Week: Daniel Gaspar on Mouse vs Python
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? PEP 594 – Removing dead batteries from the standard library.
The Core Electronics puts MicroPython in an Uno footprint board with Raspberry Pi Pico – YouTube.
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 some are being worked on.
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 updated CircuitPython libraries:
What’s the team up to this week?
What is the team up to this week? Let’s check in!
I’ve been cleaning up the
adafruit_requests library, and am now testing some
async additions to it.
Jeff, Scott, and I reviewed the list of near-term bugs to fix in CircuitPython, in preparation for Scott’s multi-week leave.
While I’ve added good support for imaging non-protected Apple II floppies, I’d like to add support for copy-protected Apple II floppies to Adafruit_Floppy as well. To this end, I’ve started implementing the “.a2r” format used by Applesauce. This format has good open documentation, as well as some open source software that can use it. I’ll continue to work on an open pull request to add support for this format to FluxEngine, and also make sure that it works with the proprietary Applesauce software for macs.
This week, I worked with Liz (BlitzCityDIY) to walk her through creating new product guides. Her first two guides are live! We also worked on her learning how to do a breakout STEMMA QT revision guide update. She updated her first guide, and is working on updating her second guide on her own. Liz has been doing great!
In between working with Liz, I got through some of the miscellaneous on my list, and a few new things that popped up along the way. The ESP32-S2 CircuitPython Internet Test page has been updated to be standalone and use the Project Bundler, and removed the CircuitPython Internet Libraries page rendered obsolete by the update. I updated a few things on the Feather ESP32-S2 guide to reflect the new revision of the board. I updated the Adafruit IO template WiFi code to be more robust and not crash on disconnection.
As well, I submitted my first PR to MicroPython to expose pin 20 on the ESP32 so it works with the Feather ESP32 V2. It was merged!
This past week I started working on a couple of guides for displays. This included updating the Arduino Display libraries and adding board-specific examples so there is less fussing with initializers such as this 1.47” ImageReader example. I’m actually updating the format of the guide a bit so that some past guides can be revised to use the same format. I’m hoping it will be even more helpful to users than the previous format was in the past.
This week I dove into the CircuitPython core module
vectorio to add a new feature allowing the user code to set the color index within the palette to use for coloring the shapes. I reviewed and tested some more PRs including some typing PRs from a few newer contributors to the libraries. I also started building some Python level helper classes on top of
vectorio objects. So far the ones available are a line with settable stroke size, an outlined rectangle with a border around it, and a rotatable polygon that allows you to specify arbitrary rotations in degrees and handles all of the math to find the new points to make up the polygon.
I worked with Kattni to get the VL53L4CD and MCP23017 new product guides live. She also showed me how to do the updated product guides and we updated the Analog Devices ADXL343 guide.
I also worked on a project guide for a Raspberry Pi Video Synth. The hardware is controlled with Blinka and the animations are running with Processing. The Python and Processing scripts are communicating together with a socket. I think that that is one of the most useful aspects of the project and will hopefully be useful for folks who want to use CircuitPython on a Raspberry Pi to communicate with other programming languages.
This week I’ve been wrapping up pending code and taking on small tasks. My partner and I are about to have a baby, so I’m not getting myself into anything too big.
I added mDNS support to ESP builds. I added support for the USB to Serial/JTAG on the C3 so it can be used for CircuitPython serial. I just made a PR to support the ESP32-S3 USB-OTG devkit from Espressif. I also cleaned up a bunch of board definitions prior to that so that we wouldn’t keep duplicating unnecessary settings.
I’ll keep picking up small tasks or continue brainstorming for the web workflow until the baby arrives. After that, I’ll be out six weeks.
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.
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.
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.
20220328 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.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 33,781 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.