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,541 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! Nothing is perfect and that includes the software we use. Both CircuitPython and MicroPython got version bumps this last week to fix edge case usage. Question of the week – should GitHub use your code in Copilot without attribution (if so licensed)? And as always much more, so have a peek and have a great week!
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:
CircuitPython 7.3.1 Released
CircuitPython 7.3.1 is the latest bugfix revision of CircuitPython and is the new stable release – Adafruit Blog and GitHub.
Notable changes to 7.3.1 since 7.3.0:
- Adafruit MatrixPortal: fix ESP32SPI hang.
- Espressif: fix use of multiple rotaryio.IncrementalEncoder objects.
- nRF: fix crash when waking up from sleep when a display is in use.
- Update frozen libraries, especially Circuit Playground Express.
MicroPython v1.19.1 Released
MicroPython v1.19.1 is the current release of MicroPython, it is a bug fix release – GitHub.
Changes from 1.19 to 1.19.1:
- extmod/machine_i2c: only use WRITE1 option if transfer supports it.
This fixes the machine.SoftI2C.readfrom_mem() method on esp32, so it writes the address to read from.
GitHub Copilot to Become a Paid Service August 23rd
GitHub Copilot will cost USD $10 a month or USD $100 a year starting August 23rd with a free 60 day trial available. GitHub is betting big on AI programming and code in the cloud, according to GitHub CEO Thomas Dohmke, who spoke at the WeAreDevelopers conference recently.
People have flocked to social media, with many upset that their code, with licenses that may not be free and open (or at least require attribution) was used to train Copilot, which does not provide any hint of where the code has come from – Adafruit Blog and GitHub Blog.
Espressif Introduces the ESP32-C5: their first Dual-Band Wi-Fi 6 MCU
Espressif Systems announced the release of their ESP32-C5, a highly integrated microcontroller with 2.4 and 5 GHz dual-band Wi-Fi 6, as well as Bluetooth 5 (LE) connectivity. The ESP32-C5 is a follow-up to the ESP32-C6 SoC, which was announced last year. It has a 32-bit, RISC-V, single-core processor which can clock up to 240 MHz. It has a 400KB SRAM, 384KB of ROM, and it works with external flash. It has more than 20 programmable GPIOs, supporting all commonly-used peripherals including security. Also included is an SDIO 2.0 peripheral interface – Espressif.
Digi-Key Interviews Eben Upton on Raspberry Pi at Embedded World
At Embedded World 2022 the other day, at the Digi-Key booth, Paige West spoke with Dr. Eben Upton, CEO and Founder, Raspberry Pi, about the beneficial features of the Raspberry Pi, some of the exciting projects that utilize it, as well as the RP2040 microcontroller – YouTube and Electronic Specifier.
Linus Torvalds and Dirk Hohndel Have a Fireside Chat at OS Summit
Linus Torvalds and Dirk Hohndel sit down for a fireside chat at the 2022 Open Source Summit North America – Twitter and Summit Site.
2022 Stack Overflow Developer Survey Results
The 2022 Stack Overflow Developers Survey contains many insights into how the developer community is doing. One of the results to highlight: what languages are people learning to code with: – Stack Overflow.
2022 marks JavaScript’s tenth year in a row as the most commonly used programming language. But, it’s a different picture for those learning to code. HTML/CSS, JavaScript and Python are almost tied as the most popular languages for people learning to code. People learning to code are more likely than Professional Developers to report using Python (58% vs 44%), C++ (35% vs 20%), and C (32% vs 17%).
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 PyPortal Interactive Project and Game & Watch Octopus.
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 TileGrid Sprite Sheets – 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 latest episode, released June 27th, features Guy Dupont joining the show and talking about his many projects – Show List.
Project of the Week: An Emoji Flipper
Emoji Flipper quickly cycles through 189 different emojis, demonstrating the CircuitPython TileGrid feature – Twitter.
News from around the web!
Using CircuitPython Raspberry Pi RP2040 and NodeRED to send messages over MQTT – Twitter.
The Octave is a 12-key macropad. It is primarily designed to be a compact keyboard with support for 12 function keys. It’s based on a custom board with a Raspberry Pi RP2040 microcontroller programmed in CircuitPython – Adafruit Blog and GitHub.
Use of CircuitPython sequences and adding brightness to NeoPixels – learn to use Python’s dunder methods to add new features to your classes – Adafruit Blog and HackSpace.
Students programming animations on micro:bit with MicroPython – Twitter.
MicroPython Bluetooth (BLE) examples, running on ESP32-C3 – YouTube.
A digital badge using the Tufty 2040 from Pimoroni and MicroPython – MicroPython.
MicroPython users have been discussing moving the MicroPython forums from a phpbb solution to GitHub Discussions – GitHub.
Arcane Science Lab installs the new MicroPython v1.19.1 on boards and blogs their experiences – Arcane Science Lab.
Pimoroni has released a new version of their PicoSystem software based on MicroPython v1.19 – GitHub.
SparkFun SparkX has released WebTerminalDemo, a simple demo of the Web Serial API which implements a bare-bones serial terminal – GitHub.
1.2 Petabytes! 60 hard drives, 1 Raspberry Pi — And now it actually works! It’s not the fastest storage server in town, but it’s good for about 70 MB/sec write speeds and sucks down about 500 Watts of power – Adafruit Blog and YouTube.
A talk providing an overview of quantum concepts and shows how to use Python to execute quantum circuits on the IBM Quantum server (EAGLE 127 qubits) – YouTube.
Are you familiar with the Zen of Python? It’s codified in PEP 20 and it is a simple list of guidelines for writing Python code. There is even a song about it – Python Enhancement Proposals.
Microsoft just released picologging, a high-performance logging library for Python. picologging is 4-10x faster than the logging
module in the standard library – GitHub.
PyDev of the Week: Luiz Gustavo Martins on Mouse vs Python.
CircuitPython Weekly Meeting for June 27, 2022 (notes) on YouTube.
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Python Basics Cheat Sheet.
Coming Soon
Joey Castillo is readying 300 LCD FeatherWings – Twitter and website.
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 in development.
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!
NeoTrellis MIDI Feedback Controller from John Park
Smart Mirror with PyPortal from Noe and Pedro
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 357!
Updated Libraries!
Here’s this week’s updated CircuitPython libraries:
- Adafruit_CircuitPython_Colorsys
- Adafruit_CircuitPython_DS1307
- Adafruit_CircuitPython_NeoTrellis
- Adafruit_CircuitPython_PYOA
- Adafruit_CircuitPython_GPS
- Adafruit_CircuitPython_VC0706
- Adafruit_CircuitPython_NeoKey
- Adafruit_CircuitPython_MPR121
- Adafruit_CircuitPython_LIFX
- Adafruit_CircuitPython_ESP32SPI
- Adafruit_CircuitPython_Logging
- Adafruit_CircuitPython_Display_Text
- Adafruit_CircuitPython_seesaw
- Adafruit_CircuitPython_NeoPixel
- Adafruit_CircuitPython_HT16K33
- Adafruit_CircuitPython_BLE_Adafruit
- Adafruit_CircuitPython_JWT
- Adafruit_CircuitPython_SGP30
- CircuitPython_Community_Bundle
What’s the team up to this week?
What is the team up to this week? Let’s check in!
Dan
I released CircuitPython 7.3.1 this week. It includes the MatrixPortal DMA SPI fix I did last week, and several other fixes, some of which were backported from the main
branch.
I’ve started to port CircuitPython to run on plain ESP32 microcontrollers, which don’t have native USB support. The web workflow Scott is working on will make these quite usable, so we’ve decided to support these widely used chips.
Kattni
I wrapped up the Create an Excellent GitHub Profile with Markdown guide. It explains the steps necessary to create a GitHub profile including creating the special profile repository with a README. It also covers some basic Markdown syntax, and how to edit the README. Then, the guide discusses what kind of content you might want to include to get you started if you’re unsure where to begin. Finally, there is a section on creating your profile, beginning with the simplest option and moving through more advanced options, including a number of tools to add some enhancements to your profile. Whether this is entirely new to you, or you want to put some shine on your existing profile, this guide is meant for you! Coming this week.
Tim
I worked on an HTML page served by devices for editing files via the web workflow. I was able to integrate the page with some of the HTTP Request endpoints that Scott has set up on the working branch for web workflow to load and save files. I experimented with JavaScript code editor modules and used one called “Ace” on the page which offers syntax highlighting, line numbers, and other code editing “quality of life” features. This week I also added some integer bounds validation on the arguments for a few of the functions on displayio.Palette object in the core. Previously it would allow values outside the range of indexes within the palette. Whilst adding these validations, I learned about QTSTRs from some MicroPython documentation to better understand where they come from and how to use them.
Scott
This week I’ve continued working on the web workflow. I’ve added basic auth permissions to the file access, the ability to upload files, delete them and create directories. I also got it doing CORS headers so that other approved sites will be able to fetch data from the board. I’m continuing to polish things and will hopefully send out a PR early next week. The PR will cover device discovery and file system operations. Serial support will be added in a following PR.
Liz
I’ve been working on a cassette hacking project with JP. We are doing two different versions to demonstrate to folks how to control off the shelf tape decks for weird music effects with CircuitPython. My version is using a simple L9110 motor driver. A potentiometer affects the speed and direction of the motor in the cassette deck. I made a tape loop so that it can play forward and reverse without any issues. I think this guide will be really helpful for folks because you see a lot of tape projects out there in the music tech/synth communities, but you don’t see a lot of step-by-step documentation on how to get started. This has also been nostalgic for me because I spent a lot of time making tapes up until 2018 because my car only had a tape deck that did not get along with the infamous iPod tape deck adapter.
I also wrapped up the WipperSnapper pages for the QT Py ESP32-S3 guide and wrote some code for the PyPortal Smart Mirror Weather Display guide.
Upcoming events!
The next MicroPython Meetup in Melbourne will be on July 27th – Meetup. See the slides of the May 25th meeting.
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.
PyOhio is a non-profit annual Python community conference usually held in Columbus, OH. It is being held online starting Saturday, July 30, 2022. It is free to attend and welcomes anyone with an interest in Python. Content ranges from beginner to advanced and is intended to be relevant to all types of Python users: students, software professionals, scientists, hobbyists, and anyone looking to learn more – PyOhio.
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.1 and its unstable release is 8.0.0-alpha.1. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20220625 is the latest CircuitPython library bundle.
v1.19.1 is the latest MicroPython release. Documentation for it is here.
3.10.5 is the latest Python release. The latest pre-release version is 3.11.0b3.
3,053 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.
Job of the Week
Arduino Curriculum Developer – DIY Girls – Adafruit Jobs Board.
34,772 thanks!
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 34,772 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.