Daily tips and tricks from the experts at Adafruit!
View this email in your browser

View this email in your browser. Warning: Flashing Imagery

Welcome to the latest Python on Microcontrollers newsletter! The community continues to hum right along this week. We’re learning more about the RP2350, Raspberry Pi’s second microcontroller, the good and an emerging bump in the road. A new version of CircuitPython is out, and more people than ever are giving it a try. And the results of the Python Software Foundation’s latest survey are out with some interesting figures. All this and much more in this jam-packed issue. – Anne Barela, Editor

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:

What’s new in Raspberry Pi Pico 2

What’s new in Raspberry Pi Pico 2

In the latest issue of The MagPi Magazine, Raspberry Pi CTO James Adams provides a closer look at what’s new in Raspberry Pi Pico 2 – Raspberry Pi News.

5 Ways Pi Pico 2 Takes Your Projects to the Next Level

Five ways the Raspberry Pi Pico 2 can take your projects to the next level – YouTube.

DEVELOPING: The Community Discusses RP2350 Pin Latching Issues

RP2350 Pin Latching Issues

The maker community continues to characterize a hardware issue with currently released RP2350 A2 stepping chips. The issue was initially characterized as a problem that can occur if a pin is set as an input with the internal pull-down resistor enabled. If the pin is brought externally to 3.3v, and then the 3.3v is removed, the pin output becomes latched at slightly over 2 volts, instead of being at ground. Raspberry Pi issued erratum RP2350-E9, which discusses this issue and describes a workaround for reading the pin value.

But later reports by Adafruit, Dangerous Prototypes, Pimoroni, and others have shown that enabling the internal pull-down resistor does not seem to be required to trigger the 2V latch-up. Observation also shows that externally grounding the pin with sufficient current clears the latched state. Raspberry Pi and the community are actively investigating this evolving issue, so please refer to the latest developments if the issue affects your designs. – Raspberry Pi Pico Feedback, issue #401 and relevant topics in the Raspberry Pi Forum.

Decapping the RP2350 and Characterizing the Silicon

Decapping the RP2350

Electronupdate has posted clear images of the RP2350 microcontroller and takes a tour of various blocks inside – Electronupdate.

CircuitPython 9.1.3 Released

CircuitPython 9.1.3 Released

CircuitPython 9.1.3 is the latest bugfix release of CircuitPython, and is a new stable release – Adafruit Blog and releases on GitHub.

Highlights of this release

  • Fix Espressif ESP32-C6 UART creation.
  • Adafruit Qualia ESP32-S3 RGB666: fix display tearing.
  • Pull request merge builds for stable branches, not just the main branch, are now uploaded to AWS S3.
  • Fix Espressif board-specific pin initialization. This fixes board.NEOPIXEL_I2C_POWER initialization on the Adafruit Feather C6.

Is it time to update the Open Hardware Definition for AI or make a parallel one for AI?

Is it time to update the Open Hardware Definition for AI or make a parallel one for AI?

It might be time to update the Open Hardware Definition, it’s over 10 years old. A lot has changed in the last 10+ years for open-source hardware and open-source software, and some things have not! There was/is an Open Source Hardware (OSHW) Definition 1.1 draft, but has not been updated on the wiki since December 10, 2018. Phil Torrone has some suggestions – Adafruit Blog.

“While there are a few things I’d update on the Open Hardware Definition 1.0 my focus is on adding something to address AI/ChatGPT/humans working with LLMs, etc. I’m going to propose the same thing that I’ve attempted to have the Open Source Initiative consider for their OSI + AI license / definition.

The goal is sharing which exact tools were used and in what ways to allow others to replicate (and iterate) with AI/LLMs, etc. It’s a little different than commenting code, or publishing code under an open-source license, but the intent can be the same. My addition to the definition is specific to this “freedom”: “Study how the system works and inspect its components.” The OSI + AI definition at this time leaves out the inspection of prompts and data access transparency.”

Happy 33rd Birthday Linux – “just a hobby, won’t be big and professional”

Happy 33rd birthday Linux

Happy 33rd birthday Linux – “just a hobby, won’t be big and professional” – Adafruit Blog.

The New 2GB Pi 5 has a 33% Smaller Die with a 30% Idle Power Savings

New 2GB Pi 5 has 33% smaller die, 30% idle power savings

Jeff Geerling does a deep dive into the D0 stepping of the Raspberry Pi 5 CPU to find it’s smaller, resulting in power savings over older C1 chips used in boards with 4 and 8GB of memory – Jeff Geerling and Tom’s Hardware.

Python Developers Survey 2023 Results

Python Developers Survey 2023 Results

The results of the seventh official annual Python Developers Survey are complete. This survey is done yearly as a collaborative effort between the Python Software Foundation and JetBrains. Responses were collected from November 2023 through February 2024. More than 25,000 Python developers and enthusiasts from almost 200 countries and regions participated in the survey to reveal the current state of the language and the ecosystem around it – Python Blog and Results.

This year, 7% of Python developers are using it for embedded work. That’s relatively unchanged from the past two years.

Adafruit Teams with Particle on Rollout of Tachyon Single-Board Computers

Tachyon Single-Board Computer

Particle successfuly wrapped a Kickstarter for their 5G enabled Tachyon single-board computer in August. As part of the promotion, the Adafruit CRICKIT HAT was made available plus free access for a year to Adafruit IO Plus for all backers. The campaign is still taking late pledges – Kickstarter and Adafruit Blog.

Compiling Rust, GoLang, Zig, or WebAssembly to MicroPython MPY Modules

WebAssembly to MicroPython MPY

Volodymyr Shymanskyy, developer of the ViperIDE editor, has discovered that MicroPython has the ability to compile plain C code into a dynamically loadable .mpy file. This revelation sparked an idea and he has now created a bare-bones example demonstrating how to convert a WASM file into a MPY module and run it dynamically on a Raspberry Pi Pico – GitHub and wasm2mpy – GitHub.

A Raspberry Pi Emulator in an Easy to Use Docker Image

Pi Emulator in an Easy to Use Docker Image

PI-CI is a Raspberry Pi emulator in a Docker image that lets developers easily prepare and flash Pi configurations. The PI-CI project enables developers to easily run a Pi VM, prepare a configuration inside a Pi VM, and flash a Pi VM image to a physical SD card – Adafruit Blog and GitHub.

This Week’s Python Streams

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

Deep Dive

Last Friday, Tim streamed work on refactoring geometry intersection functions.

You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.

CircuitPython Parsec

CircuitPython Parsec

John Park’s CircuitPython Parsec this week is on dealing with a dropped I2C bus – Adafruit Blog and YouTube.

Catch all the episodes in the YouTube playlist.

CircuitPython Weekly Meeting

CircuitPython Weekly Meeting for August 26, 2024 (notes) on YouTube.

Project of the Week: Bald SENSE Wing

Bald SENSE Wing

James Lewis (@baldengineer) has developed an open source FeatherWing which has temperature, humidity, light, color, proximity, and sound-sensing for environmental monitoring. CircuitPython was used for rapid development to verify the board – hackster.io, GitHub, Blog Post and YouTube.

Popular Last Week

What was the most popular, most clicked link, in last week’s newsletter? Raspberry Pi 5’s new 2GB model benchmarked.

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.

Home CAN Bus Network Using Telephone Wiring

Home CAN Bus Network Using Telephone Wiring by Jeff Mangum – Adafruit Playground and GitHub.

News From Around the Web

pinout.xyz

Gadgetoid has placed a reference pinout of the Raspberry Pi Pico 2 board on pinout.xyz – pinout.xyz.

PyCon US 24

PyCon US 2024 has now released 211 videos from this Summer’s conference – YouTube.

Jeff Epler’s talk on Connecting Old to New with CircuitPython: Retrocomputer input devices on Modern Computers – YouTube.

MicroPython on Classic Amiga

New: MicroPython on Classic Amiga, by Jean-Yves Oberlé, “still incomplete but you can start fiddling with it” – aminet and source code – GitHub.

Arduino Pico Core

Earle F. Philhower, III Brings the Arduino Pico Core to V4.0.1 and adds RP2350 and Pico 2 Support – GitHub and hackster.io.

Raspberry Pi Pico - PS2 Joystick Mouse

A Raspberry Pi Pico PS2 joystick mouse with CircuitPython – YouTube.

How to set up the Raspberry Pi AI Kit with Raspberry Pi 5

How to set up the Raspberry Pi AI Kit with Raspberry Pi 5 – Raspberry Pi News.

CircuitPython album-art project

“My S3 Qualia board and screen arrived today from Adafruit. So of course I ported my CircuitPython album-art project to it. When I choose an album on my web server, the album art appears via MQTT. 3D printed case thanks to the Ruiz brothers.” – Mastodon.

MicroPython for Tiny Tapeout

Mike Bell designed the RISC-V “Nano V” processor and ported MicroPython for Tiny Tapeout – Mastodon.

Print & PyCharm Coding Basics

Our first CircuitPython program – Print & PyCharm Coding Basics (CircuitPython School) – YouTube.

MCU Controlled Ultrasonic Humidifier

MCU controlled ultrasonic humidifier with Pi Pico and MicroPython – hackster.io.

LoRa P2P Communication

LoRa P2P Communication using ESP32 (Arduino IDE) & Xiao nRF52840 (CircuitPython) – YouTube.

Pilet

Pilet is a pocket-sized Raspberry Pi 5 PC which is portable and modular – Tom’s Hardware.

Raspberry Pi 3 Drives This Low-Cost, Remote-Controllable "Digital Holographic Microscope"

A Raspberry Pi 3 running Python drives a low-cost, remote-controllable “Digital Holographic Microscope” – hackster.io.

Measure temperature using an SPI-communicating temperature sensor (ADT7310)

Measure temperature using an SPI-communicating temperature sensor (ADT7310) and MicroPythion- ushiken.net (Japanese).

Playing and Recording Sound in Python

Playing and recording sound in Python – Real Python.

Proteus VSM for MicroPython

Proteus recently announced support running MicroPython on their simulated microcontrollers, including Pi Pico and ESP32-S3-DEVKITC-1 – Proteus.

12 Lesser-Known Python Tools That Boost My Productivity

Twelve lesser-known Python tools that boost productivity – Medium.

New

Espressif ESP32-P4

The ESP32-P4 is in limited availability as the ESP32-P4 Function EV Board in some AliExpress shops with notes that they are engineering samples with the ADC uncalibrated – AliExpress.

Note: Brian of Tulip has a CircuitPython port in progress and Matt Trentini has a MicroPython port in progress.

S3 Mini Pro

The S3 Mini Pro is the latest addition to the Wemos ‘D1’ range. It has an ESP32-S3, 2MB PSRAM, 4MB flash, 128×128 0.85” LCD (GC9107), 6-axis IMU, 3x buttons, 1x RGB LED, 1xIR LED, and a colorful PCB – Wemos via Mastodon.

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 was one new board 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:

CircuitPython Libraries

CircuitPython Libraries

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 494!

New Libraries

Here’s this week’s new CircuitPython libraries:

Updated Libraries

Here’s this week’s updated CircuitPython libraries:

Library PyPI Weekly Download Stats

Total Library Stats

  • 191,103 PyPI downloads over 333 libraries

Top 10 Libraries by PyPI Downloads

  • Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 13176
  • Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 12896
  • Adafruit CircuitPython ConnectionManager (adafruit-circuitpython-connectionmanager): 11935
  • Adafruit CircuitPython Register (adafruit-circuitpython-register): 2221
  • Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 2044
  • Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1845
  • Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1602
  • Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 1568
  • Adafruit CircuitPython ESP32SPI (adafruit-circuitpython-esp32spi): 1474
  • Adafruit CircuitPython RGB Display (adafruit-circuitpython-rgb-display): 1440

What’s the CircuitPython team up to this week?

What is the team up to this week? Let’s check in:

Dan

Last week I released CircuitPython 9.1.3, which fixes some board and chip-specific problems.

I’m working on merging Micropython v1.23 into CircuitPython, and have completed the initial merge. Next I’ll review the merge, clean up some loose ends, and start testing.

I’ve been investigating and further characterizing a hardware problem with the RP2350 that causes input pins to latch up at about 2V. Raspberry Pi published an erratum describing the circumstances in which this can happen, but testing by me and others seems to indicate it’s more pervasive. See the news item earlier in this newsletter for more details.

Melissa

This past week I have been working on fixing bugs in the CircuitPython Code Editor as well as updating the WebSerial ESPTool to work with the ESP32-C6. However, after updating the WebSerial ESPTool, it is no longer working with the S3 boards for some folks. I will be looking into that this next week. I also have been working on a Home Assistant project to be able to access Adafruit IO. I’m going for something that works in a similar manner to MQTT.

Jeff

I was away for about 4 weeks. The bulk of that time I was on a couple of photo safaris in Kenya and Tanzania. If you’re interested check out some photos from my trip. To whet your appetite, here’s an elephant crossing a dirt road just feet from our vehicle:

Jeff

I’m back now and working on the list of issues we’ve targeted to fix before the release of 9.2.0 stable. First up was improving error reporting for analogbufio on Espressif-family microcontrollers when an unsupported sample rate is requested.

Tim

This week I moved a few more libraries to Ruff after getting their repo environment setup locally to review and test some other PRs. I’ve begun working on adding serial plotter functionality to the CircuitPython web-ide. Lastly I’m refactoring the vectorio intersection functions that I started a few weeks ago to be module functions instead of class functions.

Scott

I was mostly out in the last week to spend time with visiting family. The rest of the time I’ve been fixing bugs in order to get 9.2.0 ready for release. Most of the fixes are in 9.1.x releases as well. The most recent fix of mine was speeding up the flash and PSRAM connection on the Qualia to reduce the display glitching. The speeds now match the ones used in 9.0.x. They were slowed in 9.1.x due to the risk of instability when the temperature changed.

Upcoming Events

Espressif DevCon24

Espressif DevCon24 will be held Sep 3-5, 13:00-18:00 CEST – Espressif.

MicroPython Meetup

The next MicroPython Meetup in Melbourne will be on September 25th – Meetup. You can see recordings of previous meetings on YouTube. The August 2024 Roundup.

Maker Faire Bay Area

Maker Faire Bay Area returns to Mare Island Naval Shipyard on October 18-20, 2024 – Maker Faire.

SuperCon 2024

Hackaday Superconference is an epic gathering of hardware hackers, makers, and tech enthusiasts happening November 1-3 in Pasadena, California – Hackaday and Eventbrite.

PyCon AU

PyCon AU will be held from the 22nd to the 26th of November at the Melbourne Convention and Exhibition Centre (MCEC) in Narrm/Melbourne. Matt Trentini and Damien George will both be presenting on MicroPython – PyCon AU.

PyLadies

PyLadies Conference (PyLadiesCon) is a transformative event designed to promote diversity, learning, and empowerment within the Python community. December 6-8, 2024 online – PyLadies.

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.

Latest Releases

CircuitPython’s stable release is 9.1.3 and its unstable release is 9.2.0-alpha.2351. New to CircuitPython? Start with our Welcome to CircuitPython Guide.

20240827 is the latest Adafruit CircuitPython library bundle.

20240828 is the latest CircuitPython Community library bundle.

v1.23.0 is the latest MicroPython release. Documentation for it is here.

3.12.5 is the latest Python release. The latest pre-release version is 3.13.0rc1.

4,004 Stars Like CircuitPython? Star it on GitHub!

Call for Help – Translating CircuitPython is now easier than ever

CircuitPython translation statistics on weblate

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.

38,293 Thanks!

38,293 THANKS

Adafruit Discord

The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 38,293 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

ICYMI

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), 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.

Contribute

The CircuitPython Weekly Newsletter is a CircuitPython community-run newsletter emailed every Monday. 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.