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! CircuitPython continues to receive a wide variety of features in the latest round of updates. Are you looking to try ESP-NOW wireless communications? Try it in Python. How is Rust vs. MicroPython? A look at that and much more in this jam packed issue. – 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:

Using ESP-NOW on CircuitPython 9.0.3

ESP-NOW on CircuitPython 9.0.3

ESP-NOW is a connectionless WiFi communication protocol defined by Espressif. In ESP-NOW, application data is encapsulated in a vendor-specific action frame and then transmitted from one WiFi device to another without connection.

User coXXect shows the CircuitPython espnow module providing an interface to the ESP-NOW protocol – coXXect, YouTube and module documentation.

CircuitPython 9.0.4 and 9.1.0-beta.1 Released

CircuitPython 9.0.4 Released

CircuitPython 9.0.4 is the latest bugfix release of CircuitPython, and is a new stable release – Adafruit Blog and GitHub release page.

CircuitPython 9.1.0-beta.1 is the latest beta for CircuitPython 9.1.0, and is a new unstable release. This release has known bugs that will be addressed before 9.1.0 final – Adafruit Blog and GitHub release page.

CircuitPython Online IDE 2.0 Beta

CircuitPython 9.0.4 Released

The independently developed CircuitPython Online IDE 2.0 beta is forthcoming! All issues from the 2.0 alpha have been addressed and the documentation is ready. Once the quick start video is completed, the transition to 2.0 beta will occur and Version 1 will be retired – X and IDE.

PiDock 400 Turns A Raspberry Pi 400 Into a 13-inch Notebook

PiDock 400

The Raspberry Pi 400 packs a single-board computer into the housing of a keyboard. Together with the PiDock 400, users can quickly transform the compact PC into a laptop with a 13.3-inch 1080p display and a trackpad, although the dock does not have an integrated battery – Notebook Check and Vendor.

Rust vs MicroPython – A Guide

Rust vs MicroPython – The Definitive Guide

Rust vs Micropython – is one better? Kevin McAleer looks at the strengths and weaknesses of each. Rust is great for efficient and memory safe code, but is it well suited to microcontrollers? – YouTube.

Linus Torvalds Tibits

Linus Torvalds reiterates his tabs-versus-spaces stance with a kernel trap

Linus Torvalds reiterates his tabs-versus-spaces stance

A Linux commit last week changed exactly one thing on one line, replacing a tab character with a space: “It helps Kconfig parsers to read file without error.” Linus Torvalds responded with a commit of his own, which would “add some hidden tabs on purpose.” – Ars Technica.

Linus Torvalds takes on evil developers, hardware errors and ‘hilarious’ AI hype

Linus Torvalds takes on evil developers, hardware errors and 'hilarious' AI hype

While all is ‘calm and steady and boring’ with the next kernel, Linux creator Torvalds tells an Open Source Summit crowd exactly how he feels about almost everything else – ZDnet.

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 was working on adding file upload to CircuitPython Requests.

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 Chip Pin Names – Adafruit Blog and YouTube.

Catch all the episodes in the YouTube playlist.

CircuitPython Weekly Meeting

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

Project of the Week: A Light-Up Cyberpunk Guitar Strap

Light-Up Cyberpunk Guitar Strap

Jeremy Cook repurposed PCBs, addressable LED strips, and an Adafruit Circuit Playground Express for making an illuminated guitar strap using CircuitPython – hackster.io and GitHub.

Popular Last Week

What was the most popular, most clicked link, in last week’s newsletter? Comparing the Three Main Zero Form Factor SBC’s in the Market Right Now.

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.

Touchscreen TFT & SDCard with the Raspberry Pi Pico W

Touchscreen TFT & SDCard with the Raspberry Pi Pico W – Adafruit Playground.

Using Multiple WiFi Access Points with CircuitPython

Using Multiple WiFi Access Points with CircuitPython – Adafruit Playground.

CG-35: A Retro RPN Calculator

CG-35: A Retro RPN Calculator – Adafruit Playground.

News From Around the Web

Quote

Jeff Glass posts this about contributing to CircuitPython. You can contribute too. From code to drivers, there is even a category of PRs called Good First Issues – X.

Talk

“Build Wireless Products Faster with Zephyr and MicroPython” by Ryan Erickson, Ezurio, at the Embedded Open Source Summit 2024 – Slides and Summit Page via X.

Measuring The Speed Of Sound At Home With a Raspberry Pi Pico & HC-SR04

Measuring the speed of sound at home with a Raspberry Pi Pico & HC-SR04 with MicroPython – GurgleApps.

Keyboard

Turning a keyboard switch test set into a functional keyboard with CircuitPython – X.

MicroPython Flipper Zero

MicroPython Flipper Zero is the FAP version of the MicroPython support for the Flipper Zero gadget – GitHub.

Octoprint stats

Shawn Hymel made an Octoprint with a Raspberry Pi. Statistics are on a small display coded in Python – X and Mastodon.

From Papers to Pixels: a Raspberry Pi Document Scanner

From Papers to Pixels: a Raspberry Pi Document Scanner programmed in Python – Instructables.

MacroPad

Students make custom macropads for Minecraft at The Galloway School in Atlanta, Georgia with CircuitPython – X.

How to Build a REST API on Raspberry Pi Pico W & Control LED

How to build a REST API on Raspberry Pi Pico W with MicroPython – hackster.io.

EDU PICO - Datalog Pico Temperature with Timestamp

EDU PICO – datalog Raspberry Pi Pico temperature with a timestamp in CircuitPython – YouTube.

How to Connect RPi Pico W to Node-RED and Home Assistant

How to connect a Raspberry Pi Pico W to Node-RED and Home Assistant with MicroPython – hackster.io.

Raspberry Pi Pico sound demo using MicroPython

A Raspberry Pi Pico sound demo using MicroPython – YouTube.

Raspberry Pi Pico W LESSON 65: Create a Servo Class and Method in MicroPython

Raspberry Pi Pico W Lesson 65: Create a Servo Class and Method in MicroPython – YouTube.

How to Write Pythonic Code

How to Write Pythonic Code – built in.

NiceGUI: Your Soon-to-be Favorite Python UI Library

NiceGUI: Your Soon-to-be Favorite Python UI Library – Towards Data Science.

New

ESP32-H4 low-power dual-core RISC-V SoC

Espressif Systems has formally announced the ESP32-H4 low-power dual-core 32-bit RISC-V wireless microcontroller with support for 802.15.4 and Bluetooth 5.4 LE portfolio after having unveiled it at CES 2024. It’s the first Espressif chip to support Bluetooth 5.4 LE with previous models such as ESP32-H2 or ESP32-C6 only supporting Bluetooth 5.0/5.2.

Besides BLE 5.4 support, the new ESP32-H4 dual-core RISC-V WiSoC is an evolution of the ESP32-H2 single-core chip with PSRAM support (up to 4MB built-in), additional GPIOs (36 vs 24), touch sensing GPIOs, and some extra security features such as a power glitch detector also found in the recently announced ESP32-C61CNX Software.

Geniatech XPI-3566-ZERO

The Geniatech XPI-3566-ZERO is another Raspberry Pi Zero form-factor SBC, though like many other Raspberry Pi alternatives, it packs in additional features and horsepower. Curiously, it also does away with others such as the microSD card slot – bret.dk.

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

PicoDVI Adafruit IO Feed Dashboard from Ruiz Brothers

Updated Learn Guides

Robotic AI Bear using ChatGPT

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!

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

  • 142455 PyPI downloads over 326 libraries

Top 10 Libraries by PyPI Downloads

  • Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 9834
  • Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 9165
  • Adafruit CircuitPython ConnectionManager (adafruit-circuitpython-connectionmanager): 7561
  • Adafruit CircuitPython Register (adafruit-circuitpython-register): 2576
  • Adafruit CircuitPython framebuf (adafruit-circuitpython-framebuf): 1293
  • Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1237
  • Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 1231
  • Adafruit CircuitPython RGB Display (adafruit-circuitpython-rgb-display): 1213
  • Adafruit CircuitPython HTTPServer (adafruit-circuitpython-httpserver): 1112
  • Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1103

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.4 and 9.1.0-beta.1 this past week. I’m continuing to work on 9.x.x issues so we can get 9.1.0 final out.

The Sphinx Python documentation system received a minor version update a few days ago. This caused two different issues with our automated build jobs that were not hard to fix: one file was slightly renamed (an underscore instead of a dash), and a new warning appeared, which made the ReadTheDocs build fail. This is the kind of maintenance which we expect to do, and yet the actual issues appear unexpectedly.

Melissa

This past week, I continued working on addressing feedback and updating guides. The biggest guide I updated was the Robotic AI Bear using ChatGPT guide. I also fixed an issue with the MiniPiTFT not working correctly on the Raspberry Pi Zero W.

Liz

This week I’ve been working on a few product guides. There are two analog matrix switch breakouts in the shop and I wrote a quick CircuitPython driver for interfacing with them. These switches let you route analog signals easily and I’d like to experiment with building a mixer with one. The other product guide I worked on was for the STEMMA IR remote receiver. This breakout makes it easy to read incoming IR signals from an IR remote, making it great for IR remote projects or recording commercial IR remote commands.

Upcoming Events

MicroPython Meetup

The next MicroPython Meetup in Melbourne will be on April 24th – Meetup. You can see recordings of previous meetings on YouTube.

2024 Open Hardware Summit

The 2024 Open Hardware Summit will be taking place May 3 & 4, 2024 at Concordia University and lespacemaker in Montreal, Canada – oshwa.org.

PyCon US 2024

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

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. The organizing team welcomes you to submit your proposals to the CfP by May 21st – PyOhio.

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.

20240417 is the latest Adafruit CircuitPython library bundle.

20240412 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,890 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,098 Thanks

39,098 THANKS

Adafruit Discord

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