View this email in your browser.
Welcome to the latest Python on Microcontrollers newsletter! The annual Python developer’s Survey is out and it’s important for all Python developers to respond, especially embedded developers, to ensure equity with the other Python customers. GitHub is reinventing itself with AI. Lots of Raspberry Pi 5 work is being done and RISC-V isn’t dead yet, it appears to be thriving. And some very creative projects round out the coverage this week – Anne Barela, 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:
Python Developers Survey 2023
The Python Software Foundation and JetBrains are conducting the seventh iteration of the official Python Developers Survey. The goal is to capture the current state of the language and the ecosystem around it. By comparing the results with last year’s, they can identify and share with everyone the hottest trends in the Python community and the key insights into it.
The PSF encourages you to contribute to the community’s knowledge by sharing your experience and perspective. Your participation is valued! After the survey is over, the PSF will publish the aggregated results and randomly choose 20 winners (among those who complete the survey in its entirety), who will each receive a $100 Amazon Gift Card or a local equivalent – PSF via X.
GitHub Leveraging Copilot for an AI-powered developer platform
At GitHub Universe 2023, GitHub announced general availability of GitHub Copilot Chat and previewed their new GitHub Copilot Enterprise, which offers new AI-powered security features, and the GitHub Copilot Partner Program. Their new phrase is “Just as GitHub was founded on Git, today we are re-founded on Copilot” – GitHub Blog.
GitHub is the place where projects get started, where developers collaborate, and where the open source community builds and maintains the world’s code. Now, we’re integrating GitHub Copilot Chat directly into github.com, so developers can dig into code, pull requests, documentation, and general coding questions with Copilot Chat providing suggestions, summaries, analysis, and answers. And, combined with the power of GitHub’s advanced code search, we are enabling Copilot Chat to understand and help with the latest changes to popular open source projects.
The Petite Pico Probe is Perfect for Parlaying with a Pi Penta
Ladyada from Adafruit demonstrates debugging the Raspberry Pi 5 via the new UART debug port using the RP2040-based Raspberry Pi Pico Probe – X.
Reducing Raspberry Pi 5’s Power Consumption By 140x
By default, the Raspberry Pi 5 (like the Pi 4 before it) leaves the SoC powered up (just in a shutdown state) when you shut down the Pi. Change an EEPROM config, reboot, then next time you shut down, you should see power consumption go down from 1-2W to 0.01W or even less – Jeff Geerling via Hackaday.
Hacking the Pi5’s PCIe Into life
Folks have been reverse engineering the Raspberry Pi 5 PCIe high speed connector before release of official documentation by Raspberry Pi. George Smart posts on YouTube work to reverse engineer the wiring of the Pi 5 connector – YouTube and Adafruit Blog.
Why Nordic is Getting Involved in RISC-V
Nordic recently announced that it is joining an industry consortium of semiconductor companies to drive the adoption of an open source chip architecture called RISC-V – Nordic Blog.
“What RISC-V will do is give our customers an extra option when seeking to minimize power consumption in certain applications where the (many) tradeoffs of not using an Arm-based core are acceptable. RISC-V will also lower the barriers-to-entry and level the playing field when it comes to developing IoT applications. This will encourage even greater innovation in the IoT market. What RISC-V will not do is conflict with Nordic’s long-established use of Arm cores in its wireless IoT connectivity devices. RISC-V will simply further enhance the design options for Nordic customers and particularly in simpler, ultra lowest power applications where every Joule and Watt counts.”
Making Music with CircuitPython and the Raspberry Pi Pico
Anyone looking to do synth music must take a look at the work done by Cooper Dalrymple. Introducing the
pico_synth_sandbox – a new development board for CircuitPython
synthio which was featured this past weekend at Pensacola Maker Faire – pico-synth-sandbox.dcdalrymple.com, YouTube and GitHub.
Want to dive in and started programming your own digital synthesizer? The pico_synth_sandbox might just be the route for you. Leverage the power of the RP2040 and the simplicity and versatility of CircuitPython and the
synthio library to get your ideas off the landing strip and into the sky.
The Adafruit Discord community, where CircuitPython development is done in the open, reached over 38,000 humans – thank you! Adafruit believes Discord offers a unique way for Python on hardware folks to connect. Join today at https://adafru.it/discord.
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
Last Friday, Tim streamed work on Circup Web Workflow Integration.
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 Set Next Code File – Adafruit Blog and YouTube.
Catch all the episodes in the YouTube playlist.
CircuitPython Weekly Meeting
CircuitPython Weekly Meeting for November 06, 2023 (notes) on YouTube.
Project of the Week: Blood Sugar Display
Scott Hanselman builds a project designed to pull data from a Nightscout and display blood sugar levels in near real-time (every 5 min) on an Adafruit M4 MatrixPortal Display using CircuitPython – X and GitHub via Mastodon.
Most Popular Last Week
What was the most popular, most clicked link, in last week’s newsletter? PDF book on GPIO Zero (free).
New Notes from Adafruit Playground
Adafruit Playground is a new place for the community to post their projects and other making tips/tricks/techniques. Ad-free, it’s an easy way to publish your work in a safe space for free. Please join in posting your projects on Adafruit Playground!
Eurorack Control Voltage (CV) Signals from
synthio – Adafruit Playground.
An ESP32-S3 MQTT Feather Weather Display – Adafruit Playground.
News from around the web!
Bottle Piano is a MIDI controller made of bottles, glitter, and an Adafruit Raspberry Pi RP2040 MCU (and based on an original idea from Adafruit). Coded in CircuitPython and performed in this year’s MusicJam project – X.
PyScript 2023.11.1 is a ground-up total-rewrite of PyScript that adds a wide swath of new functionality, smaller file sizes, faster loading, and so much more. This release is a doozy – jeff.glass.
PyScript now offers you a choice of Python runtimes – you can use either CPython (via Pyodide) or MicroPython to execute code. For those unfamiliar with the latter, MicroPython is a very lean Python interpreter originally written for use on microcontrollers, which has since been used in space, in the lab, and in innumerable hobbyists’ hands. This makes it a very attractive tool on the web where milliseconds matter.
Displaying fractal art on eInk frames with Raspberry Pi and Python – Reddit, YouTube and GitHub, via Raspberry Pi.
A Python asyncio multitasking tutorial – YouTube.
Adafruit Arcade Buttons and LEDs with MicroPython for the Raspberry Pi Pico – simonprickett.dev.
Cases for the new Raspberry Pi 5 are appearing online, like this model provided by Micro Center – Printables.
Making a Harry Potter newspaper PCB with an eInk display, Raspberry Pi Zero and – hackster.io via X.
A CircitPython helper to detect and adjust North American Daylight Saving Time (DST) – GitHub.
Hacking an electric scooter with an ESP32 and CircuitPython – Hackaday.
A Macropad for next to your television, programmed in CircuitPython (Japanese) – X.
Field testing a RadioFreeFedi display prototype, using a Pimoroni Pico Inky Pack E-paper display for the Raspberry Pi Pico. It shows the currently playing track and can switch between main, comfy and specialty, and can generate a QR code to the artist profile or their music – Mastodon.
BLE performance analysis with pyshark – Rob Dobbson.
A Raspberry Pi Pico relay board programmed in MicroPython – RP2040 Learning.
MicroLua: Lua for the RP2040 microcontroller – Adafruit Blog and GitHub.
Imagination and Ventana to Build a RISC-V CPU-GPU Platform – Tom’s Hardware.
Faker, by Daniele Faraglia, is a Python module that generates fake data. Not for nefarious means, rather it is there to help you generate data to test your databases etc. – Les Pounder.
JLCPCB plans to launch full-color PCBs via UV printing next year – X.
Camera drivers for Beagleboard Beagleplay/Beaglebone-AI-64 added to Linux – X.
A new RISC-V chip: the CH641. It’s like letting a CH32V003 have wireless charging (QI) and USB PD functions. It also built-in 12V pre-driver which can be used directly for motor control without an external pre-driver – X. Devtools – GitHub.
Gigadevice GD32VW553 RISC-V microcontroller supports WiFi 6 and Bluetooth 5.2 LE – CNX Software.
The GD32VW553 WiFi 6 and Bluetooth 5.2 microcontroller looks quite similar to the ESP32-C6 which also features a RISC-V core clocked at 160 MHz and the same wireless capabilities plus an an extra 802.15.4 radio for Zigbee and Thread. So Gigadevice possibly designed the new chip as an answer to the ESP32-C6 at a cheaper price for application that don’t need an 802.15.4 radio.
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 the works.
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 Guide
PowerWash Simulator Nozzle Controller from John Park
Updated Learn Guide
Adafruit Metro ESP32-S3Adafruit Metro ESP32-S3 from Kattni Rembor
The CircuitPython library numbers are continually increasing, while existing ones continue to be updated. Here we provide library numbers and updates!
To get the latest Adafruit libraries, download the Adafruit CircuitPython Library Bundle. To get the latest community contributed libraries, download the CircuitPython Community Bundle.
If you’d like to contribute to the CircuitPython project on the Python side of things, the libraries are a great place to start. Check out the CircuitPython.org Contributing page. If you’re interested in reviewing, check out Open Pull Requests. If you’d like to contribute code or documentation, check out Open Issues. We have a guide on contributing to CircuitPython with Git and GitHub, and you can find us in the #help-with-circuitpython and #circuitpython-dev 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 460!
Here’s this week’s new CircuitPython libraries:
Here’s this week’s updated CircuitPython libraries:
Library PyPI Weekly Download Stats
Top 10 Libraries by PyPI Downloads
- Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 10541
- Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 10008
- Adafruit CircuitPython Register (adafruit-circuitpython-register): 4387
- Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 2443
- Adafruit CircuitPython LIS3DH (adafruit-circuitpython-lis3dh): 1989
- Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1540
- Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1240
- Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 1186
- Adafruit CircuitPython PortalBase (adafruit-circuitpython-portalbase): 1158
- Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1134
What’s the CircuitPython team up to this week?
What is the team up to this week? Let’s check in!
I’m now going through the current set of CircuitPython 8.2.x and 9.0.0 issues. I’ve been able to close several that are now fixed. There are many left to test and fix, and we’ll be working on those for a while.
I started the ball rolling on updating CircuitPython
displayio-related libraries to incorporate the changes introduced in 9.0.0, while still being compatible with 8.x.x. Community members Paul Cutler and RetiredWizard are doing most of the PRs, with FoamyGuy also offering suggestions: thank you!
This past week, I finished up writing the Adafruit CircuitPython Qualia Library. I ended up generalizing the name instead of something like QualiaS3 or Qualia666 because I didn’t want to lock it in. This came in handy when I made the MatrixPortal library For the MatrixPortal M4 and later a MatrixPortal S3 came out. I also realized that 666 displays (named for 6 bit on the Red, Green, and Blue channels) may not be the only displays supported by this library. The library works very well and I was able to do some surprising stuff with CircuitPython such as automatically enumerating the files and then loading and instantiating the given display, which makes adding new displays much easier.
This week I worked on changes for circup that allow it to check inside of the pyproject.toml to find a list of dependencies that are in CircuitPython bundles, but not deployed to PyPI, and install them alongside the other dependencies that it installs. I’ve also been working through the Learn Guide repo and updating instances of
displayio usage for the new API in CircuitPython 9.x.
I haven’t been doing a bunch this week because my mom is in the hospital. Dan did merge in the split heap stuff so please try the next 9.0.0 alpha with it. I did a little debugging on SD card support on the ESP32-S3 but didn’t figure out the issue. Thanks to Foamyguy for doing Deep Dive last week and this week.
I’ve continued working on the Mars clock project but ran into an issue when calculating Mars time (MTC). I was hitting the float limits of CircuitPython. Luckily, I was pointed in the direction of the CircuitPython Decimal library that Jepler wrote. Using that library, I was able to accurately calculate MTC in CircuitPython and wrap up the code for the project. I documented the process of troubleshooting this issue in a Playground note that goes through the algorithm for calculating MTC, what the original result was in CircuitPython versus CPython and why the decimal CircuitPython library saves the day.
Webinar: BeagleBoard.org and RISC- V Architecture, Thursday 16th November – 16:00 UK Time – Element14.
The next MicroPython Meetup in Melbourne will be on November 22nd – Meetup.
The inaugural PyLadies Conference will take place December 1-3, 2023 – pretalx.
The Pyjamas Conference, the 24-hour online Python conference, will be returning for a fifth year on December 9-10.
PyCon US 2024 Launches – May 15-23, 2024 in Pittsburgh, Pennsylvania US – PyCon US.
Send Your Events In
If you know of virtual events or upcoming events, please let us know via email to cpnews(at)adafruit(dot)com.
CircuitPython’s stable release is 8.2.7 and its unstable release is 9.0.0 Alpha 2. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20231110 is the latest Adafruit CircuitPython library bundle.
20231105 is the latest CircuitPython Community library bundle.
v1.21.0 is the latest MicroPython release. Documentation for it is here.
3.12.0 is the latest Python release. The latest pre-release version is 3.13.0a1.
3,709 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.
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, Instagram Reels), 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.
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.