View this email in your browser. Warning: Flashing Imagery
Welcome to the latest Python on Microcontrollers newsletter! The jetlag from PyCon US 2022 behind many, there comes the Star Wars themed projects this week. MicroPython keeps in the news and Python is still the #1 language used (but we know that). Enjoy this week’s news.
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:
TIOBE Programming Language Index for May 2022
The May TIOBE Index still has Python as the #1 programming language, with a bit of gain over number two C – TIOBE.
9 Years of MicroPython on GitHub
Matt Trentini used Gource (https://gource.io/) to take a look at the development history of MicroPython over its 9-year history – YouTube.
MicroPython has been looking for sponsorship via GitHub for awhile and GitHub had only allowed individuals to do so. Recently GitHub changed their policy and has allowed company accounts to also sponsor projects. MicroPython’s goal is US $5,000 per month. Adafruit has been sponsoring MicroPython via other mechanisms, including stocking PyBoards in the Adafruit shop. Adafruit has announced they are now also sponsoring MicroPython via GitHub, allowing MicroPython to reach 93% towards their goal.
There are multiple tiers for sponsoring. If you benefit from MicroPython or CircuitPython (which is a MicroPython fork), please consider sponsoring MicroPython, helping them reach their goal – GitHub.
A more comprehensive blog post will be coming from Adafruit soon on their sponsorship. When it’s out it’ll be in this newsletter.
The I2C Connection Standard Zoo
When it comes to I2C-on-a-connector conventions, you would correctly guess that there’s more than one, and they all have their pros and cons. They consist of six-and-a-half standards! They’re mostly inter-compatible, and making use of them means that you can access some pretty powerful peripherals easily – Hackaday and Adafruit Blog.
Chip Shortage: The ST STM32F405 Microcontroller
This week’s Chip Shortage target is the ST STM32F405 microcontroller, used on the MicroPython PyBoard and other Python on Microcontroller projects. Ladyada asks ST if they’d be able to supply MicroPython with quantities of this crucial part – Adafruit and YouTube.
RISC-V CEO seeks ‘world domination’ by winning over the likes of Intel
The CEO of RISC-V’s governing body says she wants to nothing less than “world domination” for the rising open-source processor technology, but to do that, the nonprofit needs buy-in from a variety of organizations, even those steeped in dominant, proprietary architectures, such as x86 giant Intel.
RISC-V has more than 2,400 members to include companies, universities, and government-related entities – The Register.
MicroPython Port for the WCH-CH32V307 Microcontroller
An experimental port of MicroPython for the CH32V307EVT board has been posted on GitHub. The board uses the WCH CH32V307 RISC-V microcontroller – Adafruit Blog.
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 TabLayout Touch Interaction.
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 this week is on Mouse Cursor Control – 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, talking with people doing awesome things with CircuitPython. Each episode features Paul in conversation with a guest for a short interview – CircuitPythonShow, Blog Post and Twitter.
The podcast is released every other week and is off this week. Last week’s episode features Melissa LeBlanc-Williams and next Monday Liz Clark joins the show – 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.
Python Software Foundation Spring Fundraiser
The Python Software Foundation is wrapping up their Spring fundraiser and could use community support in meeting their goals – Python Software Foundation via Twitter.
Projects of the Week: Star Wars
Here are projects celebrating May the Fourth (like in Star Wars “May the Force Be with You”) and May the Sixth (“Revenge of the Sixth”).
A Death Star animation in CircuitPython on a GC9A01 round LCD driven by an Adafruit QT Py RP2040 – Twitter.
For Star Wars Day, I made a silly targeting computer gizmo in CircuitPython. This uses an Adafruit ESP32-S2 TFT Feather but any CircuitPython-capable board + display will work. Stay on target! – Twitter.
For Revenge of The Sixth, here’s a rebel combat computer trying to lock onto a TIE fighter. It keeps getting so close! Code in CircuitPython on an Adafruit ESP32-S2 Feather TFT – Twitter.
R2-D2 with his new friend, an Adafruit Feather TFT ESP32-S2 and CircuitPython – Twitter.
News from around the web!
Transfer texture from an Adafruit PyGamer to Game Builder Garage on a Nintendo Switch by mouse emulation – Twitter and GitHub.
Using CircuitPython vectorio, polygon and circle natives to show a dynamic “growing” tree image – Twitter.
Using compound keystrokes in CircuitPython on a Raspberry Pi Pico-based JoyPad – Twitter and GitLab.
A BLE password keeper in CircuitPython – Twitter.
StereoPi is an open source stereoscopic camera based on Raspberry Pi. It can capture, save, livestream, and process real-time stereoscopic video and images with excellent Python support – CrowdSupply and GitHub.
Cyber glasses to help illuminate parts when soldering. It’s servo activated and can move out of the way too. It uses a Raspberry Pi Pico powered Adafruit NeoPixels and MicroPython – Twitter.
The Dutch hacker camp MCH2022, to be held on July 22, will feature this MicroPython programmable badge. It has an ESP32 and a Lattice FPGA with a color display – Hackaday and YouTube.
Using Python on a Raspberry Pi and a VL53L5CX sensor to detect a sensed object’s center of mass – Twitter and a MicroPython port – GitHub.
Emojify your Python! The micro:bit Python emojifier encodes and condenses Python programs using emojis. It also decodes them too, and turns strings of emojis back into full Python programs. Many keywords are tokenised, in effect, into a single character. This means the programs take up less space, and so you could, for example, share longer programs in a tweet – blogmywiki.
Building SoCs with Python and Open Tools by Myrtle “gatecat” Shah – YouTube.
Scapy: a low level packet hacking toolkit for Python – trickster.dev.
Multiple assignment and tuple unpacking improve Python code readability – Trey Hunter.
PyDev of the Week: Mason Egger on Mouse vs Python
CircuitPython Weekly Meeting for May 9, 2022 (notes) on YouTube
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Free Software Engineering at Google Book.
LilyGO T-PicoC3: a board that combines the RP2040 and ESP32-C3 with a color display – CNX Software (in Thai).
Solder Party announces three new products – Twitter.
- BB Q20 Keyboard with Trackpad (USB/Qwiic/PMOD) with RP2040
- RP2040 Stamp Round Carrier (feat. FlexyPins)
- Wio RP2040 FlexyPin Adapter
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:
New Learn Guides!
Adafruit VL53L4CX Time of Flight Distance Sensor from Liz Clark
Adafruit DVI Breakout Board 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 355!
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’m writing a general CircuitPython “port test” library, which will test, as automatically as possible, whether the native modules, such as
busio, etc. are functioning properly. Some of this testing can be done with no wiring, but in some cases pins will need to be wired together, or connected to external devices. The testing already found one minor issue in the Espressif implementation.
While there was already a lot of coverage of PyCon on the internet and in this newsletter, I can’t resist making another plug for the blog entry I wrote about my experience. tl;dr: It was great!
My recent work on the core has been of an investigative sort. I looked for possible improvements to our pseudorandom number generator (
random.randrange and friends), but didn’t end up finding any changes I thought were worth including. I have another Pull Request out to make a slight optimization of flash memory usage, but as we’re a bit concerned about other impacts of the change, it hasn’t been merged yet.
I’ve been learning about Juypter Notebooks. It’s a version of Python that runs in the browser with a slick interface called ‘the notebook’. These look like a great way to allow someone to run complex Python code without installing anything locally, and in a self-documenting way, through free-tier services like Google Colab. I hope to provide a version of the flux visualization program that can run this way.
I spent most of the last week at PyCon US 2022. I saw so many friends I haven’t seen in 3 years, and overall it was an amazing experience. We hosted Open Spaces for two hours each of the three conference days, and the full two days of development Sprints. Both were well attended. The Open Spaces were an introduction to CircuitPython using the Circuit Playground Bluefruit. Everyone who attended was incredibly engaged, and many people told me they learned a lot. I was able to hand out the CPBs on Sunday after the Open Spaces were over, so some folks headed home with them. Two attendees designed projects with the CPB, and submitted them to my PyCon2022 GitHub repo, which was really exciting to see.
The Sprints were an opportunity for folks to contribute to the CircuitPython project in a way that interested them, as well as facilitating folks who wanted to learn about CircuitPython. We had a number of issues closed by those who attended the Sprints. Some of the chosen issues turned out to be a bit hard-mode, but everyone stuck through it and persevered. They all felt that they accomplished something and learned new things in the process.
This past week, I continued helping out at PyCon US 2022. On Monday and Tuesday Kattni and I hosted the Development Sprints. We had a lot of fun and were able to meet a lot of great folks.
I reviewed PRs from and worked remotely with folks at the PyCon sprints. We had several people pick up some of our “good first issues”. I made a snake game for the PyGamer and PyBadge and integrated it with the basic badger example so you can show off your name and info along with snake or whatever other project you want.
This past week I worked on two new product guides for the VL53L4CX time of flight sensor and the DVI breakout board. The DVI breakout guide has a page that walks through using the PicoDVI examples by Luke Wren for the Raspberry Pi Pico which I think will be helpful for folks. I’m getting towards the end of the laser harp project. It is coded using CircuitPython for 8 VL53L4CD time of flight sensors so it will be an example for folks using multiple I2C devices that use the same address.
The next MicroPython Meetup in Melbourne will be on May 25th – Meetup. See the slides of the March 23rd meeting (the May 4th slides are in progress).
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.
CircuitPython’s stable release is 7.2.5 and its unstable release is 7.3.0-beta.2. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20220507 is the latest CircuitPython library bundle.
v1.18 is the latest MicroPython release. Documentation for it is here.
3.10.4 is the latest Python release. The latest pre-release version is 3.11.0b1.
2,963 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
Basic 3D Modeling Required – Free Radical Labs, LLC – Adafruit Jobs Board.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 34,310 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.