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 Open Hardware Summit is just wrapping up and we’ll look to check individual videos when available. How time flies: MicroPython is now 11 years old and better than ever. And an expanded projects and news section this week looks to showcase all that’s happening in the community. – 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:

MicroPython is Now 11 Years Old

MicroPython is Now 11 Years Old

MicroPython has turned eleven, having started in 2013 – X.

“MicroPython started life in early 2013 as an experiment, to see if it was possible to shrink a high-level language like Python down enough to run on very small devices. Now MicroPython is a mature open-source project that is relied upon by a wide variety of users.”

Talk: Build Wireless Products Faster with Zephyr and MicroPython

Build Wireless Products Faster with Zephyr and MicroPython

Build Wireless Products Faster with Zephyr and MicroPython – Ryan Erickson, Ezurio – YouTube.

CircuitPython vs. Arduino’s C++ Language for ESP32: A Comparative Analysis

CircuitPython vs. Arduino’s C++

CircuitPython (offered by Adafruit) and Arduino’s C++ language (offered by Arduino with Arduino IDE) stand out as popular choices for DIY projects, prototyping, and educational purposes. Both platforms offer powerful capabilities for developing interactive hardware projects, but they differ significantly in terms of programming language, ease of use, and ecosystem support – The Customize Windows.

3 Things Arduino Can Do That Raspberry Pi Can’t

3 Things Arduino Can Do That Raspberry Pi Can't

Looking to use a Raspberry Pi in your project? Instead of a single board computer, you might look at a microcontroller. Besides there being no operating system to maintain, read about other advantages – Slashgear.

The Adafruit Learning System Exceeds 3,000 Guides

The Adafruit Learning System Exceeds 3,000 Guides

Recently, the Adafruit Learning System surpassed 3,000 guides! Thank you to the entire team at Adafruit who builds and makes learn.adafruit.com, one of the best resources online for learning CircuitPython, Python and more – Adafruit Learning System and read about reaching 3k in the Adafruit Blog.

Raspberry Pi 5 vs Intel N100 mini PC comparison

Raspberry Pi 5 vs Intel N100 mini PC comparison

The Raspberry Pi 5 Arm SBC is now powerful enough to challenge some Intel systems in terms of performance. Intel has made the Alder Lake-N family, notably the Intel Processor N100, inexpensive and efficient enough to challenge Arm systems when it comes to price, form factor, and power consumption – CNX Software.

The PSF’s 2023 Annual Impact Report is Available

The PSF's 2023 Annual Impact Report

The Python Software Foundation (PSF) has captured some of the key numbers, details, and information on the last year in their latest Annual Impact Report – Report Slides and Python Software Foundation.

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 Espressif ESP Bluetooth Low Energy (BLE) debugging.

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 circup code examples – Adafruit Blog and YouTube.

Catch all the episodes in the YouTube playlist.

CircuitPython Weekly Meeting

CircuitPython Weekly Meeting for April 29, 2024 (notes) on YouTube.

Project of the Week: The 2024 eChallengeCoin

The 2024 eChallengeCoin

Bradán Lane’s 2024 eChallengeCoin runs CircuitPython and is packed with hardware to inspire the next generation of hackers. It’s 350% bigger than previous years (now at 84mm in diameter) and includes a maze game as well as a full text adventure game – X Thread.

Popular Last Week

What was the most popular, most clicked link, in last week’s newsletter? I turned my Raspberry Pi into a portable computer — and you can too.

Pushing the Envelope

4-way NVMe RAID

With the Raspberry Pi 5’s exposed PCI Express connector comes many new possibilities. Jeff Geerling tests and documents the Geekwork X1011, which puts four NVMe SSDs under a Raspberry Pi – Jeff Geerling and Tom’s Hardware.

News From Around the Web

CircuitPython driver for XIAO round display

A CircuitPython driver for XIAO round display and CHSC6540 touch controller – X and GitHub.

1960s Clock Radio Pi Makeover

A 1960s clock radio makeover with Raspberry Pi 4, Adafruit parts and CircuitPython – hackster.io.

A Python to Wasm compiler

py2wasm draws on Nuitka to convert Python programs to WebAssembly and run them at 3x faster speeds – InfoWorld.

Badger schedule

Using a Pimoroni Badger 2040 W to show the EMF Camp schedule via MicroPython – X.

Browser-based IDE for CircuitPython

“Ok, this browser-based IDE for CircuitPython boards is pretty slick. Once 2.0 ships I’ll probably start recommending it to people who buy my smol machines with QT Py boards like the TRS-80 Model III and Connection Machine. On the whole, I’m well pleased with that ecosystem as it has many good online tutorials and docs. Hat tip to Adafruit’s Python on Microcontrollers newsletter for pointing out the project” – Mastodon.

(Re)creating Arcade classics with CircuitPython and Raspberry Pi Pico

A free workshop: (Re)creating Arcade classics with CircuitPython and Raspberry Pi Pico with Djair Guilherme, May 24th, SESC São Paulo – SESC São Paulo (Portuguese) and hackster.io (English).

A level crossing lights controller

A level crossing lights controller with Raspberry Pi Pico and MicroPython in Fritzing – X, GitHub and YouTube.

A custom MIDI Fader controller

A custom MIDI Fader controller featuring an Adafruit Feather RP2040 and CircuitPython – Mastodon and Blog.

Google lays off US Python programmers

Google lays off US Python programmers – Fierce.

Raspberry Pi weather station

I turned my Raspberry Pi into a full-fledged weather station (with Python), here’s how you can, too – XDA.

zoom call status monitor

A Zoom call status monitor with a Raspberry Pi Pico and MicroPython – X, GitHub and YouTube.

Using Franzininho WiFi ESP32 with CircuitPython

Using Franzininho WiFi ESP32 with CircuitPython – Embarcados via X (Portuguese).

LoRa communication working with CircuitPython

“It was super easy to get LoRa communication working with CircuitPython on current and experimental nuggets. So far, the maximum range has been 4 miles!” – Mastodon.

MIDI light controller

Building a MIDI light controller with an Adafruit MacroPad and CircuitPython – X.

Evaluation board

Making an evaluation board for a bathroom fluorescent display tube (CN2113M) using MicroPython on a Raspberry Pi Pico – X.

Where is the ISS, Raspberry Pi version

Where is the ISS, Raspberry Pi and Python version – WhiskeyTangoHotel.

Japanese on the Badger 2040 W

Japanese on the Badger 2040 W using MicroPython and Tamakichi’s library – GitHub via X (Japanese).

This camera writes poems

This camera writes poems with Raspberry Pi and Python – Raspberry Pi News.

Ambient Temperature and Humidity Monitor

An ambient temperature and humidity monitor with PocketBeagle and Python – hackster.io.

Containerize Python Apps with Docker in 5 Easy Steps

Containerize Python Apps with Docker in 5 Easy Steps – KDnuggets.

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:

New Learn Guides

New Learn Guides

Gravity Falls Memory Gun from Ruiz Brothers

ESP32 PlayStation Controller from John Park

Updated Learn Guides

Raspberry Pi Wearable Time Lapse Camera

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

Updated Libraries

Here’s this week’s updated CircuitPython libraries:

Library PyPI Weekly Download Stats

Total Library Stats

  • 128179 PyPI downloads over 326 libraries

Top 10 Libraries by PyPI Downloads

  • Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 11508
  • Adafruit CircuitPython ConnectionManager (adafruit-circuitpython-connectionmanager): 10645
  • Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 9969
  • Adafruit CircuitPython Register (adafruit-circuitpython-register): 2792
  • Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1676
  • Adafruit CircuitPython framebuf (adafruit-circuitpython-framebuf): 1417
  • Adafruit CircuitPython RGB Display (adafruit-circuitpython-rgb-display): 1202
  • Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1078
  • Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1066
  • Adafruit CircuitPython ESP32SPI (adafruit-circuitpython-esp32spi): 1028

What’s the CircuitPython team up to this week?

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

Dan

Ubuntu 24.04 final was released just last week. Over the previous weekend I upgraded my development machine, so I could be a guinea pig for changes that will be needed when building CircuitPython.

As we saw with Debian Bookworm, installing Python libraries for your own use needs to be done in a Python virtual environment, such as “venv”, unless you override some safety protections. Carter already wrote a Learn Guide about this for the new release of Raspberry Pi OS.

I’ll be updating the Building CircuitPython Guide to cover this and other needed recipe changes.

Melissa

I finished up going through Raspberry Pi related guides, addressing feedback, and updating older guides this past week. The last couple of guides that I updated include Raspberry Pi Wearable Time Lapse Camera and Adafruit MAX98357 I2S Class-D Mono Amp.

Tim

I’ve been testing and reviewing PRs for changes to requests and networking related libraries this week. There are loads of great work taking place around ConnectionManager and the libraries it can interact with to simplify networking. I’m also creating some scripts to create new GitHub issues in a subset of the libraries for creating displayio based sensor examples.

Jeff

Jeff

I’ve been working on MP3 support for the ESP32-S3 for a couple of weeks without anything to show for it. But finally with some hints from Scott and lots of time debugging the code, I got stable MP3 playback on the Adafruit Feather ESP32-S3 TFT.

One of the things I did along the way was measure the performance of MP3 playback on the S3. In the scope trace above, the “D0” trace shows the time spent decoding a 22kHz 48kbit/s MP3 file stored on internal flash; it takes about 2ms every 46ms, or about 5% of the total CPU available.

Playing other MP3 files or playing MP3 files from an SD card might take more time, but it gives the impression that there’s plenty of headroom available for higher bitrate MP3 files.

Scott

This week I took a little detour to enable the MAX3421E on ESP chips. (I thought I had but someone testing it found I hadn’t.) This included enabling it on non-USB device ESP chips like the C3 and C6. The absolute latest builds now include the max3421e module correctly.

I’ve been shepherding the Renode support along. It should be merged any day now.

Lastly, I’ve been working on BLE GATT server support on ESP. This is needed for BLE HID device functionality in particular.

Liz

I took a little time off last week but now I’m back to writing guides. I wrote up guides for a few new products: the BNO055 + BMP280 BFF, the STEMMA IR Demodulator and the DVI Sock for Pico. I also wrote up my project using a USB Host FeatherWing and Feather ESP32-S3 TFT to build a USB to BLE adapter. The code is written in Arduino, but with the recently added support for the USB Host FeatherWing and impending support for BLE on Espressif in CircuitPython, I’m hopeful to have code in CircuitPython for it at some point.

Upcoming Events

PyCon US 2024

PyCon US 2024 launches May 15-23, 2024 in Pittsburgh, Pennsylvania US – PyCon US.

MicroPython Meetup

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

Open Sauce

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

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

20240503 is the latest Adafruit CircuitPython library bundle.

20240502 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.0a6.

3,907 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.

39,181 Thanks

39,181 THANKS

Adafruit Discord

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