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 big news this week is the Python convention in Salt Lake City. It seems like many in the community are there and therefore not as much news is being released. Adafruit has been sponsoring Open Spaces and is currently hosting Sprints, so if you are there, look them up! The next two PyCon US events will be in ‘24 and ‘25, both in Pittsburgh, Pennsylvania, US. – 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:

PyCon US 2023

PyCon US 2023 is happening in Salt Lake City, Utah USA April 21 – 23 with Development Sprints April 24 – 27. Adafruit CircuitPython team members have been there hosting events! Kattni Rembor and Jeff Epler are present, along with a few well-known community members.

Kattni and Jeff managed Open Spaces during the conference. These Open Spaces have given folks an introduction to CircuitPython via the Circuit Playground Express.

Kattni will be hosting three days of Development Sprints from 8am-5pm on Monday April 24 through Wednesday April 26. The location will be determined during the conference. The Sprints are an opportunity to contribute to the CircuitPython project, on the Python side of things, through code and documentation on CircuitPython Libraries. Everyone is welcome; there will still be all of the introduction to CircuitPython hardware, so there will be opportunities for folks at any level to participate.

Kattni states: “If you’re attending, please let me know in the #circuitpython-dev channel on the Adafruit Discord, or come find us around the conference. We’d love to meet up! We’re enjoying PyCon US 2023, and we hope you are too! See you there!” – PyCon US 2023.

Next PyCon US Dates in 2024 and 2025

PyCon US: 2024

PyCon US 2024 will be held in Pittsburgh, PA from May 15-23, 2024 and also in Pittsburgh May 14-22, 2025.

Work Progresses on Using an Adafruit Feather DVI with CircuitPython

Feather DVI with CircuitPython

Turtle LOGO running nicely on the Feather DVI with CircuitPython. Ladyada rummaged through CircuitPython project-lead tannewt’s GitHub branches to find this build of CircuitPython with DVI output support. Now you can treat any HDMI monitor as a display for CircuitPython! For example, above she is running “turtle” demos that show making cool graphical shapes, but to a display on the desk, via the Feather RP2040 with DVI. The REPL also appears on the screen – how fun is that!? – Twitter.

Keep an eye out on nightly builds and the next beta release for this capability.

Awesome MIDI and Game Controller with CircuitPython

MIDI and Game Controller

Christopher Stevens had built a most remarkable MIDI controller. Based on an Adafruit tutorial by John Park, Christopher has taken this from a 4 to a 77 out of ten! – Twitter.

He writes:

This dual 3-axis joystick (HOSAS) features two microcontrollers: an Adafruit Metro Grand Central M4 for all the buttons and joysticks with exception of the NeoSliders and NeoKeys managed by a Feather RP2040 (pink!). Grand Central was great for all the inputs and timers for LED fades.

A Feather RP2040 manages I2C reads separately as it offers the cool factor, yet was a bit slower in reads per second than direct inputs handled the Grand Central. This turned out well for gaming purposes for fast controls with upper controls not needing that speed (less used).

The game controller sends out low latency MIDI signals, which can be converted to joystick controls with an app like midi2vjoy. This is TBD, still exploring, rocking as a MIDI controller so far! Maybe I’ll make a flight sim demo while also performing music at the same time?!!

Both boards communicate with each other via UART at a basic level, syncing when that center ship power button is pressed (cool pulse in video) and to sync the continuous rainbow color rotation in all NeoPixels. It does utilize CircuitPython, super fun in this project!

Google Announces the List of 574 Python Packages in its New “Assured Open Source Software” Service

Assured Open Source Software

Google now has 574 Python packages in its new “Assured Open Source Software” service. Assured Open Source Software is a Google Cloud service that enables enterprise users of open source software to incorporate the same trusted OSS packages which Google uses into their own developer workflows – Google.

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

This week, Tim streamed working on some DisplayIO bug fixes.

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

CircuitPython Parsec

CircuitPython Parsec

CircuitPython Parsec is on hiatus this week. Catch all the episodes in the YouTube playlist.

The CircuitPython Show

The CircuitPython Show

The CircuitPython Show is an independent podcast hosted by Paul Cutler, focusing on the people doing awesome things with CircuitPython. Each episode features Paul in conversation with a guest for a short interview – CircuitPythonShow and Twitter.

The latest episode was released April 24th and features guest Seth Kerr. They and Paul talk FPGAs – Show List.

Project of the Week: The Imitator Pedal

The Imitator Pedal

The Imitator “super karaoke” Pedal uses an artificial intelligence library called demucs to split any song into 4 tracks: vocal, drums, bass and others (which includes guitar, keyboards, winds, etc.), and then you can use the pedal itself to control playback and mixing of those channels, with a rotary encoder assigned to each track.

It’s all open hardware and open software, using a case from a Jícara instead of a metal case to lower the CO2 to produce the product.

In “white” mode, you can select the next or previous song from the ones already processed by the pedal. In “color” mode, you can mute/unmute the tracks, control their mixing volume, as well as pause/unpause by using the metal button.

The project runs on a Raspberry Pi 4 and has a Python web interface to talk to Azure Functions (which also has Python code on it) – YouTube and GitHub.

News from around the web!

Foot or Touch Pedal

RP20-Footie Raspberry Pi Pico Capacitive Pedal – Twitter and Tindie.

eBike Switch

A small DIY board that automatically switches ON the popular JBD BMS, effectively switching ON the EBike/EScooter, when there is motion / vibration. Automatically switches OFF the BMS after a timeout without motion. Uses an ESP32-S2, ADXL345 and CircuitPython – GitHub.

ChatGPT MicroPython

With help from a Core Electronics YouTube tutorial, I’m using MicroPython on a Raspberry Pi Pico to create a NeoPixel display. I fed the code into ChatGPT and asked the AI to comment the code to help me better understand how it’s working – Twitter.

Electronic Birthday Card

An electronic birthday card with Raspberry Pi Pico and MicroPython – Twitter.

PixieChroma

Porting the PixieChroma library to CircuitPython – Twitter.

Raspberry Pi Pico Project - Thermometer & Clock ST7735 & DS3231

Raspberry Pi Pico Thermometer and Clock using ST7735 and DS3231 – YouTube.

RP2040 HEXI

RP2040 HEXI (reference implementation). RP2040 with LiPo and charging, 2000mA LDO (so this HEXI can power a lot of others), ST7789 display, buttons, and an accelerometer. Being a HEXI, it also has the required headers for VCC, GND, and I2C. It could be programmed in C/C++ with Arduino IDE, VScode+PlatformIO, CircuitPython or MicroPython – Twitter.

Access and control Your home web werver from anywhere

Access and control your home web server from anywhere with a Raspberry Pi Pico W and MicroPython – YouTube via Twitter.

Bot Testing

Outdoor wireless testing of a Raspberry Pi Pico + CircuitPython robot – Twitter.

Kitronik Code

Using CircuitPython With The Kitronik Motor Driver Boards for Raspberry Pi Pico – Kitronik.

Battery Testing

Bit of fun last night with a Raspberry Pi Pico W and Pimoroni lipo shim + display pack with an 18350 cell running CircuitPython. Posting voltage to an API. 2,382 API Posts (every 15s) 09h 55m, display always on, on wifi whole time. > 5v = charging. 4.2v = 100%, 2.8 = 0% – Twitter.

A clean 5x7 font for use with CircuitPython

A clean 5×7 font for use with CircuitPython – GitLab via Twitter.

A simple clock

A simple clock for a 64×32 HUB75 LED matrix display with scheduled NTP sync and a SHT40 sensor using MicroPython – GitHub.

How to Read the Docs like a Professional

How to Read the Docs like a Professional – YouTube.

Sci-Fi-Themed Chinese Take-Out Signage

Six Raspberry Pi 4’s Power Sci-Fi-Themed Chinese Take-Out Signage – Tom’s Hardware.

How I teach Python with open source tools

How I teach Python with open source tools – opensource.com.

Wall Street's Transition from Excel to Python

Wall Street’s Transition from Excel to Python – Mito DS via Awesome Python Weekly.

PyDev of the Week: Pamphile Roy on Mouse vs Python

CircuitPython Weekly Meeting for April 24th, 2023 (notes) on YouTube

#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Pi Pico RP2040 1.28-inch TFT display watch board.

Coming Soon

Banana Pi BPI-CM5 Compute

Banana Pi BPI-CM5 Compute Module, coming soon – Twitter.

8mu

The 8mu is a pocket-sized MIDI controller (slightly smaller than a credit card!) with eight faders that can send messages via MIDI. It’s designed to be open and hackable and can be re-programmed in Arduino or CircuitPython – Thonk via Twitter.

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 three 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:

Updated Learn Guides!

New Learn Guides

MQTT in CircuitPython from Brent Rubell

CircuitPython Libraries on Linux and Raspberry Pi from Melissa LeBlanc-Williams

CircuitPython Libraries!

CircuitPython Libraries

CircuitPython support for hardware continues to grow. We are adding support for new sensors and breakouts all the time, as well as improving on the drivers we already have. As we add more libraries and update current ones, you can keep up with all the changes right here!

For the latest libraries, download the Adafruit CircuitPython Library Bundle. For the latest community contributed libraries, download the CircuitPython Community Bundle.

If you’d like to contribute, CircuitPython libraries are a great place to start. Have an idea for a new driver? File an issue on CircuitPython! Have you written a library you’d like to make available? Submit it to the CircuitPython Community Bundle. Interested in helping with current libraries? Check out the CircuitPython.org Contributing page. We’ve included open pull requests and issues from the libraries, and details about repo-level issues that need to be addressed. We have a guide on contributing to CircuitPython with Git and GitHub if you need help getting started. You can also find us in the #circuitpython 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 425!

New Libraries!

Here’s this week’s new CircuitPython libraries:

Total Library Stats

  • 99301 PyPI downloads over 310 libraries

Top 10 Libraries by PyPI Downloads

  • Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 6372
  • Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 5908
  • Adafruit CircuitPython Register (adafruit-circuitpython-register): 2061
  • Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1622
  • Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1110
  • Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1049
  • Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1001
  • Adafruit CircuitPython PCA9685 (adafruit-circuitpython-pca9685): 964
  • Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 828
  • Adafruit CircuitPython ESP32SPI (adafruit-circuitpython-esp32spi): 791

What’s the CircuitPython team up to this week?

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

Dan

The Friday before this week, Scott and I triaged the 8.1.0 and 8.x.x issue lists. We assigned a number of issues, closed a few, and moved some others to 9.0.0 or Long Term. This will help us move toward 8.1.0 sooner.

I tested a new Espressif fix for I2C issues on ESP32-S3 and other chips. Unfortunately it doesn’t fix the known I2C problems. But hope springs eternal when I see fixes this like.

I am working on a new introduction page for the Blinka guides.

Kattni

Kattni is attending PyCon US 2023 this week and leading Open Spaces and CircuitPython Sprints.

Melissa

This past week I worked on writing the software for a collaborative project with Erin St. Blaine. This is basically an eBook that displays generated stories. The project involved taking care of formatting, animating, and displaying the text. Look for a guide in the coming days.

Tim

This week I’ve working on enhancements to the conference badge script for Kattni to use at PyCon. The new version has a scrollable menu that can launch other demo scripts, with rainbow color NeoPixels while you scroll. It also contains remote control functionality so that other computers on the same WiFi network can use a browser page to change the NeoPixel colors. The other main thing I’ve worked on is some troubleshooting and a fix for an issue using the Si7021 sensor with Blinka on a Raspberry Pi.

Scott

This week I’ve been polishing the DVI PR. Thanks to Mark and Ladyada for testing and helping me fix issues.

Next up is some bug hunting for e-paper displays and then i.MX RT chips.

Jeff

Jeff is attending PyCon US 2023 this week and helping with Open Spaces and CircuitPython Sprints.

Liz

This week I updated the guide for the ADT7410 breakout to include the new STEMMA QT version. There’s an updated pinouts page, new Fritzing diagrams and updated resources on the downloads page.

Next week I am attending Open Hardware Summit in New York City. I’m very excited for this since I had plans to attend the 2020 Summit which was moved online due to the pandemic. The line-up for talks looks great and I’m looking forward to being in-person for an event again.

Upcoming events!

MicroPython Meetup

The next MicroPython Meetup in Melbourne will be on April 26th – Meetup.

EuroPython 2023

EuroPython 2023 will be July 17-23, 2023, in Prague, Czech Republic and Remote – EuroPython 2023.

PYCON UK 2023

PyCon UK will be returning to Cardiff City Hall from Friday 22nd September to Monday 25th September 2023 – PyCon UK.

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

20230424 is the latest CircuitPython library bundle.

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

3.11.3 is the latest Python release. The latest pre-release version is 3.12.0a7.

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

37,191 thanks!

37,191 THANKS

Adafruit Discord

The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 37,191 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, IGTV (Instagram TV), 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 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.