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! We finally hit our goal of 11,000 subscribers, thank you! Another milestone was achieved this week: over 500 non-operating system boards run CircuitPython, that’s huge! And for those boards, two new releases. And things are ramping up for Raspberry Pi as their IPO happens next month. Some truly excellent projects are listed this week also. – 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:

The Python on Microcontrollers Newsletter exceeds 11,000 subscribers

Newsletter exceeds 11,000 subscribers

The Python on Microcontrollers Newsletter exceeded 11,000 subscribers for the last issue! Thank you for subscribing and letting those around you know about this resource! – Adafruit Blog.

The free subscription link is here – Adafruit Daily (select Python on Microcontrollers Newsletter).

Two New CircuitPython Releases

CircuitPython 9.1.0-beta.3

As CircuitPython inches closer to version 9.1.0, a new beta is out as well as a new maintenance release for CircuitPython 9.0.

CircuitPython 9.1.0-beta.3 is a beta for CircuitPython 9.1.0, and is a new unstable release – Adafruit Blog and release notes.

CircuitPython 9.0.5 is the latest bugfix release of CircuitPython, and it’s the latest new stable release – Adafruit Blog and release notes.

$40 Million Raspberry Pi IPO is Set For June

$40 million Raspberry Pi IPO is set for June

Raspberry Pi Ltd, the trading subsidiary of the Raspberry Pi Foundation, has confirmed a June 2024 date for its $40 million Initial Public (stock) Offering (IPO) – Tom’s Hardware and The Register.

“New shares will be issued for sale by Raspberry Pi as a means to raise $40 million which will be used for engineering capital expenditure, to enhance the Raspberry Pi supply chain, and for general corporate purposes.”

500+ Microcontroller Boards Now Run CircuitPython

500+ Microcontroller Boards Run CircuitPython

Last week, the number of boards that directly run on CircuitPython exceeded 500! As of this newsletter, it’s 503 and climbing – CircuitPython.org.

Sony Plans a Dedicated Raspberry Pi 5 Production Line in Japan Ahead of Raspberry Pi IPO

Sony

Sony is installing a dedicated Raspberry Pi 5 assembly line in Japan – eeNews.

“We have agreed with Sony to further expand the existing production at their Inazawa facility and, by the end of 2024, expect them to have established a dedicated production line there for Raspberry Pi 5.”

Getting an LLM Answer from an RP2040 in 4 Seconds with Groq

Groq

Utilizing technology from Groq and Meta, this project aims to replace traditional response mechanisms on a maker site with a much faster and efficient alternative using an RP2040 connected to Groq’s cloud services with MicroPython – WIZnet Makers 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, Scott streamed work on SVD files and builds.

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 is off this week. Catch all the episodes in the YouTube playlist.

CircuitPython Weekly Meeting

CircuitPython Weekly Meeting for May 20, 2024 (notes) on YouTube.

Project of the Week: The SpaceMouse Wireless

SpaceMouse Wireless

The adventure of making a DIY SpaceMouse using USB HID and sensors in CircuitPython – Tao of Mac.

Popular Last Week

What was the most popular, most clicked link, in last week’s newsletter? Arduino Alvik Robotics Platform // Unboxing.

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.

Web API's & You

Web API’s & You – Adafruit Playground.

News From Around the Web

Logic Gate Analyser running on EDU PICO with a MH EDU Electronics LogicBoard

A CircuitPython program running on the new Cytron EDU PICO and Adafruit CLUE which builds up a truth table and identifies logic gates by observing the inputs and outputs on the gate, demonstrated with an MH EDU Electronics LogicBoard and an improvised retro DTL NOR gate – Instructables.

mpflash

Regular MicroPython contributor Jos Verlinde (@josverl) released his Python application, mpflash. It’s a command-line utility to assist in deploying MicroPython firmware to devices. It can list connected boards, detect and download the appropriate image and flash it to a device – GitHub via MicroPython May 2024 Meetup News Roundup.

Course Code

Previously we posted about the SESC Workshop, São Paulo, Brazil happening this month. If you’d like to see their CircuitPython code for things like NeoPixel games, the code is available – GitHub (Portuguese and English).

Speech recognition project

Ashish built a speech recognition project using a Raspberry Pi Pico and CircuitPython. It samples audio from a mic, runs a TinyML model, and tries to identify a spoken word – X and GitHub.

ESP32-C6

MicroPython PR #11869 looks to to add support for the ESP32-C6 – GitHub.

Sharp Memory Display

“Running a few Midjourney images on an Adafruit Sharp Memory Display using a Raspberry Pi Pico W and CircuitPython. The display looks excellent to the eyes (editor note: better than the GIF I posted), and better than what the iPhone camera captures” – X.

PySheets

PySheets provides a spreadsheet UI for Python, allowing users to perform exploratory data science, use Pandas, create charts with matplotlib, import Excel sheets, analyze data, and create reports. All the Python code runs in the browser, and PySheets itself is also written in Python and MicroPython – PySheets.

RaspberryPi ZERO SPI ST7789 NoOS/circuitpython

Using a Raspberry Pi ZERO with an SPI ST7789 display, no operating system (OS), only CircuitPython – YouTube.

LD06-LIDAR library

Tim McGuffin’s library – LD06-Lidar-micropython – is a MicroPython driver for the LD06, one of the more affordable (US $10) LIDAR devices – X and GitHub via MicroPython May 2024 Meetup News Roundup.

GPT-4o with the Raspberry Pi Pico W

Use the latest GPT-4o LLM with a Raspberry Pi Pico W and MicroPython – X (Japanese).

TDR Soil Moisture Sensor

Using a Time Domain Reflectometry (TDR) soil moisture sensor – hackaday.io.

POV

Tutorial: a Raspberry Breadstick persistence of vision (POV) LED project with CircuitPython – Breadstick via X.

Speed meter

“We prototyped a two-point laser measurement device using an XBee3 built into the LMCM series and an XBee3 attached to a laser receiver. The signal status is determined using XBee’s MicroPython, and the host XBee receives the signal, measures the time, and displays it on the speed gun meter in speed gun format.” – X (Japanese).

AutoMorse

AutoMorse is an automatic Morse Code encoder for Raspberry Pi Pico in MicroPython – GitHub.

PyScript MicroPython on RP2040-Zero MicroPython

Browser PyScript MicroPython communicating with an RP2040-Zero running MicroPython – YouTube.

CircuitPython asyncio

An example for using asyncio with input/output in CircuitPython by Bradán Lane – GitLab.

Board

RP2040-ETH-DVI-ZERO, a newly developed Raspberry Pi RP2040 development board with DVI interface and Ethernet, is used to display an Adafruit IO dashboard in real time – WIZnet Makers.

RaspberryPi PICO and PYUSB

RaspberryPi PICO and PYUSB: unlocking the power of custom USB endpoints – Shekkar Verma.

New

Quectel BG95-M3

Raspberry Pi Zero HAT compatible Quectel BG95-M3 Zero cellular IoT board runs QuecPython MicroPython firmware – CNX Software.

Espressif ESP32-S3-EYE

Espressif ESP32-S3-EYE, an ESP32-S3 camera board – Adafruit.

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 five 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 Guide

New Learn Guides

USB Rotary Media Dial from Ruiz Brothers

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

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

  • 112184 PyPI downloads over 326 libraries

Top 10 Libraries by PyPI Downloads

  • Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 8795
  • Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 8485
  • Adafruit CircuitPython ConnectionManager (adafruit-circuitpython-connectionmanager): 7373
  • Adafruit CircuitPython Register (adafruit-circuitpython-register): 2025
  • Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1712
  • Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1350
  • Adafruit CircuitPython ESP32SPI (adafruit-circuitpython-esp32spi): 1115
  • Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 989
  • Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 983
  • Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 961

What’s the CircuitPython team up to this week?

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

Dan

I released CircuitPython 9.0.5 and CircuitPython 9.1.0-beta.3 last week. 9.0.5 caught up on some minor fixes. 9.1.0-beta.3 includes the more complete Espressif BLE implementation that Scott has been working on.

Socket error recovery in our libraries has been improved thanks to our community members, especially Justin. I’m now trying to reproduce various network errors that have been reported, to see if they are still present when using the latest versions of everything.

Melissa

I’ve been out sick a bunch during the past couple of weeks, so I didn’t get a chance to put in an update in last week’s newsletter. Otherwise, I’ve been working on an update to the CircuitPython Code Editor to allow easier file operations for USB connected devices via the REPL. Currently it works on USB devices via the FileSystem API, but this requires a lot of things to be done by the user to make it work correctly and this will simplify things by only requiring a serial connection.

Tim

This week I’ve been working on Circup, there are a few small issues caused by the recent refactoring that I’m fixing. I’ve also been writing new and updated documentation pages in the Circup learn guide that details all of its features, many of which are newer and weren’t documented in the guide yet. Tangential to circup I’m also working on a CLI tool for managing files on CircuitPython devices via web workflow.

Scott

This week I’ve started working on ESP BLE bonding support. However, I’ve been a bit distracted by my Python-based build system for embedded C (like CircuitPython.) My hope is to make it easier to maintain and refactor the build logic for CircuitPython.

Liz

This week I wrote up a guide for the Tripler PiCowbell. This lets you use two PiCowbells with a Pico. It also has a JST PH port for battery power, a STEMMA QT port and an EYESPI port for easily using an SPI display. Personally, I’m very excited about the EYESPI port. EYESPI has become one of my favorite features on Adafruit hardware.

I also wrote some CircuitPython code for the USB Rotary Media Dial project This was a collab with Noe. He wanted to remake the original media dial project to use a seesaw rotary encoder, which greatly simplifies the code and the assembly. We added variables at the top of the code to make it easy for folks to customize the HID shortcuts. We also made use of the long press and short press count features in the adafruit_debouncer library.

Upcoming Events

Open Sauce

Open Sauce, the Maker extravaganza, is returning to San Francisco, California June 15-16 – Open Sauce.

MicroPython Meetup

The next MicroPython Meetup in Melbourne will be on June 26 – Meetup. You can see recordings of previous meetings on YouTube.

EuroPython 2024

EuroPython is the oldest and longest running volunteer-led Python programming conference on the planet. This year it will be held July 8-14 in Prague – EuroPython 2024.

PyOhio 24

PyOhio is being held July 27-28, 2024 in Cleveland, Ohio – PyOhio.

Espressif DevCon24

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

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.0.5 and its unstable release is 9.1.0-beta.3. New to CircuitPython? Start with our Welcome to CircuitPython Guide.

20240523 is the latest Adafruit CircuitPython library bundle.

20240524 is the latest CircuitPython Community library bundle.

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

3.12.3 is the latest Python release. The latest pre-release version is 3.13.0b1.

3,919 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,567 Thanks

38,567 THANKS

Adafruit Discord

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