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 at Adafruit hope you all have had a good week. It’s always a good month for buying open source hardware gifts from companies and there are more options than ever. This issue primarily focuses on some really nice projects – 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:

Raspberry Pi Compute Module 4s Coming Back Into the Retail Channel

Raspberry Pi Compute Module 4s Coming Back Into the Retail Channel

Raspberry Pi Compute Module 4 boards have been rather scarce since 2021. Jeff Geerling notes that supplies are easing in line with what Eben Upton predicted (rpilocator). Jeff also discusses alternate CM4 form factor boards and the state of the ecosphere – Jeff Geerling.

A Raspberry Pi 5 Review

Raspberry Pi 5 Review

A comprehensive review of the Raspberry Pi 5 – bret.dk.

“My Raspberry Pi 5 review will cover a wide range of areas, with comparisons to some of the existing options available on the market, and help you decide whether the Raspberry Pi Foundation’s latest offering is the one for you.”

Testing includes a range of other boards such as the Raspberry Pi 4, the Libre Computer Alta, Radxa’s ROCK 5B, and an Intel N100 system

Talking To An Oscilloscope with Python

Talking To An Oscilloscope with Python

Historically, test gear used an IEEE-488/GPIB/HPIB port for communications. Today, a device will likely talk over a USB port, a serial port, or a LAN connection. Each vendor and model has its unique command language. There has been a significant effort to standardize some aspects of test instrument control, and you can quickly write code to control things on any platform. The key is to use VISA. This protocol, defined by the IVI Foundation, lets you talk to instruments regardless of how they communicate – Hackaday and Adafruit Blog.

Limor Fried’s code is often a de facto standard, and now ChatGPT is using it

Limor Fried’s code is often a de facto standard, and now ChatGPT is using it

IEEE Spectrum writes this past week about Limor Fried, the founder of Adafruit. The open-source microcontroller driver libraries she writes to interface with devices such as sensors and displays often become de facto standards and are found in many code repositories. Recently, Fried began experimenting with ChatGPT to generate drivers and discovered that the AI was writing in her own particular style – IEEE Spectrum and Adafruit Blog.

An Interactive Display for Finding Wheelchair-Accessible Places

Interactive Display for Finding Wheelchair-Accessible Places

A touch-enabled display searches for and maps the location of wheelchair-accessible places around a user-defined location. This is done with an Adafruit PyPortal and CircuitPython along with Adafruit IO, Geoapify and Google Places – hackster.io.

Python 3.13.0 alpha 2 is now available

Python 3.13.0 alpha 2 is now available

Python 3.13.0 alpha 2 is now available – Python Insider Blog.

Low-Cost Volcanic Activity Detection with Raspberry Pi Cameras

Volcanic activity detection

A team of researchers from Chile, Australia, the US, and the UK have found a more affordable method to capture volcanic activity by detecting sulphur dioxide (SO2) emissions. While SO2 cameras do already exist, they’re usually expensive, so the team harnessed the more affordable Raspberry Pi cameras to create their solution. Data acquisition is controlled by software written in Python 3, which is freely available on GitHubRaspberry Pi News and the scientific paper in Frontiers.

HackSpace Magazine Issue 72 – Raspberry Pi 5 Projects

HackSpace Magazine

HackSpace Magazine issue 72 – Raspberry 5 Projects is out in print and PDF. There are two projects in the issue using CircuitPython, two in MicroPython, and one with Python – PDF and print.

  • Pico Air W: air monitoring using Raspberry Pi Pico W and CircuitPython
  • Machine Learning: Using TensorFlow Light and Python on Raspberry Pi 5
  • Making Music on Pico: Using synthio in CircuitPython on Raspberry Pi Pico
  • Make a Pico LCD true or false quiz game in MicroPython on Raspberry Pi Pico
  • Pico Agile Octopus Tariff Display: Uses MicroPython on a Raspberry Pi Pico W

Using a CB Radio on Your PC With CircuitPython

CB Radio on Your PC With CircuitPython

Adafruit Playground member delchi writes: “I was looking for some new gaming frontiers when I came across truck simulators! All the skill & thrill of a big rig from your PC. As with all simulators, there are button boxes and realistic cockpits to buy, but one thing I didn’t see was a CB radio mic! They expect us to use desktop mics, headsets or some other hoo-haw instead of the ol’ jabberjaw microphone! A little deeper digging showed that you can buy adapters, but they ranged from $180 to $300!”

Instead, delchi built an interface using an Adafruit QT Py RP2040 and CircuitPython to implement push to talk (PTT) in simulators using USB HID – Adafruit Playground.

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 New DisplayIO Shapes + Round Screen.

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

CircuitPython Weekly Meeting

CircuitPython Weekly Meeting for November 20, 2023 (notes) on YouTube.

Project of the Week: A Projection Clock With a Vacuum Fluorescent Display

Projection Clock

The VFD Night Projector Clock may be the first projecting clock that uses a VFD display. One trick to having the time project is to use a camera lens to focus the light on the ceiling. The project uses MicroPython on an STM32 microcontroller – GitHub and Adafruit Blog.

27 Malicious PyPI Packages with Thousands of Downloads Found

What was the most popular, most clicked link, in last week’s newsletter? 27 Malicious PyPI Packages with Thousands of Downloads Found.

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.

Sound for Qualia RGB666

Sound for the Qualia RGB666 and CircuitPython – Adafruit Playground.

Hello Pi

Hello Pi: Finding the IP Address of Headless Raspberry Pis (and Other Devices) – Adafruit Playground.

CircuitPython HDMI Multiviewer RS232 Controller

CircuitPython HDMI Multiviewer RS232 Controller – Adafruit Playground.

News from around the web

Album

An album made using electronic instruments including a Raspberry Pi Pico with MicroPython – faircamp.axwax.eu.

“I haven’t really made a proper post about my first solo and Faircamp-exclusive E.P, so it’s time to rectify that. It’s a collection of my DAWless jams, recorded between August 2021 and April 2022. As there is no MIDI or sequencer on the Werkstatt, I wrote a hacky MicroPython script to produce a hardcoded, but MIDI-synced arpeggio on CV1 and a user-controllable envelope generator on CV2.”

Ultraleap hand tracking is now compatible with the Raspberry Pi 4 and 5

Ultraleap hand tracking is now compatible with the Raspberry Pi 4 and 5, and includes Python bindings – X and GitHub.

WiFi

WiFi Setup with the Raspberry Pi Pico W and MicroPython – simonprickett.dev, GitHub and YouTube.

VCF-80 Model 100

Evan Scheel kept seeing gutted or “inspired by (Radio Shack) Model 100” builds, so he decided to start designing an ‘updated’ TRS-80 Model 100, the VCF-80, Model 100 – Hackaday.

“I have wanted to undertake a similar project (a cyberdeck) for some time using a Raspberry Pi to develop a portable and functional development platform for programming microcontrollers and other projects with Python.”

VocalVision

With VocalVision, you can record any speech, and this device will not only transcribe it, but also make a guess on who said it. It uses a PocketBeagle, Adafruit display and is programmed in Python and Adafruit Blinka – hackster.io and YouTube.

Smart Motorized Window Blinds with Environmental Control

Smart motorized window blinds with environmental control with MicroPython – hackster.io.

Liquid Propane Tank Remote Level Monitoring

Liquid propane tank remote level monitoring with ESP32 and MicroPython – hackster.io.

PicoTouch synthesiser

Raspberry Pi writes about Tod Kurt’s PicoTouch synthesizer project previously featured here and now in the November issue of The MagPi. It uses a capacitive touch PCB and a Raspberry Pi Pico running CircuitPython to make all kinds of synth sounds – Raspberry Pi News.

Round Space Clock

A round display clock that also displays live video from the International Space Station with Raspberry Pi (Japanese) – X.

An open source CO2/Air Quality sensor: STELLA-AQ

An open source, no solder CO2/Air Quality sensor: STELLA-AQ using Adafruit Feather, sensors and CircuitPython – NASA and Adafruit Blog.

Parking Status

A real-time parking availability web application with IoT integration with Raspberry Pi Pico W and MicroPython – X Thread and GitHub.

Thumby

An affirmation MicroPython program for two Thumbys which were made into earrings – X.

And yes, they run Doom!

New

Banana Pi BPI-M4 Zero

The Banana Pi BPI-M4 Zero is the successor model of the M2 Zero. The SOC is upgraded to an H618 processor and the CPU frequency is increased by 25%. The memory is upgraded to DDR4, the capacity is quadrupled, and an 8G eMMC was added. It supports 5G WiFi, and the USB interface has also been upgraded to Type-C – Banana Pi Wiki via X.

WiFiBoy Mini

WiFiBoy Mini is a gadget to create your own games using Arduino IDE and MicroPython. Several games are provided as samples. It uses an ESP32-WROOM-32 4 MB CPU and an MPU9250 9-axis gyro/Acc/compass with a 1.4 inch color TFT LCD – marutsu.co.jp.

Coming Soon

Raspberry Breadsticks

The test batch of Raspberry Breadsticks has arrived!! Cody’s got a CircuitPython pull-request in for the board’s config too! Sign up to the campaign to make sure you don’t miss the launch announcement – X, Website and GitHub.

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 no new boards added (the big dump was last week). More are in development.

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

Scroll an SMS Text Message on your RGB Matrix from Erin St Blaine

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

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

  • 79179 PyPI downloads over 321 libraries

Top 10 Libraries by PyPI Downloads

  • Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 9077
  • Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 8330
  • Adafruit CircuitPython Register (adafruit-circuitpython-register): 2809
  • Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1254
  • Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 819
  • Adafruit CircuitPython ESP32SPI (adafruit-circuitpython-esp32spi): 807
  • Adafruit CircuitPython framebuf (adafruit-circuitpython-framebuf): 803
  • Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 799
  • Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 777
  • Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 765

What’s the CircuitPython team up to this week?

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

Dan

I’m fixing bugs for the 8.2.x and 9.0.0 milestones, looking toward the medium-term goal of a 9.0.0 release. At the moment I’m looking at ESP32-S3 BLE issues, but I’ve fixed a number of other more minor issues. Re-testing has shown some problems have been fixed by the upgrade to ESP-IDF v5.1 and the recent MicroPython merges, and require no further work. Other issues require more thorough debugging. We are steadily reducing the issue list.

Tim

This week I’ve been working on refactoring some proposed code for circup that adds support for interacting with devices via the web workflow. I had to learn about the pytest mocking module in order to update the tests to work with the newly refactored version of circup. I’ve also been doing testing on proposed changes in the MiniMQTT library.

Jeff

I’ve started working on a web-based UI for the OV5640 camera together with the ESP32-S3 microcontroller. Hopefully, in the end, this will allow streaming camera data in low resolution, setting the camera parameters (such as effect, exposure, etc.) and downloading full-resolution images. At this time, it only works with commandline requests by curl, but it’s a start.

When not working on this demo, I’ve been working in various small ways on CircuitPython 9. For instance, I noticed that not all of our tests were being performed when we built CircuitPython, and fixed it.

Scott

I’m keeping up with emails and PRs but not much else. I’ve been spending lots of time with family due to my mom’s failing health.

Liz

Liz

This week I worked on a 1 minute video to showcase using a CIRCUITPY drive with an Android device. I also worked on updating the 3.5” TFT FeatherWing guide for the V2 version of the board that was released last week.

In personal hardware news, I happened to come across an infamous Meowsic cat piano on the side of the road during a walk this week that was in purrfect condition after a little clean-up. This is the same keyboard that JP featured in a few Learn Guides. I’m excited to do my own mods soon.

Upcoming Events

PyLadiesCon

The inaugural PyLadies Conference will take place December 1-3, 2023 – pretalx.

Pyjamas 2023

The Pyjamas Conference, the 24-hour online Python conference, will be returning for a fifth year on December 9-10.

MicroPython Meetup

The next MicroPython Meetup in Melbourne will be on December 27th – Meetup.

PyCon US 2024

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

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.2.8 and its unstable release is 9.0.0 alpha5. New to CircuitPython? Start with our Welcome to CircuitPython Guide.

20231124 is the latest Adafruit CircuitPython library bundle.

20231124 is the latest CircuitPython Community library bundle.

v1.21..0 is the latest MicroPython release. Documentation for it is here.

3.12.0 is the latest Python release. The latest pre-release version is 3.13.0a2.

3,720 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,124 Thanks

38,124 THANKS

Adafruit Discord

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