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! Linux users know the aches of trying to get their software to work well: crashes, audio issues, etc. The Raspberry Pi folks have listened to you and are working diligently to make an operating system which will work well on newer hardware, this is great news. And we’ve reported on the Raspberry Pi 5 having a PCIe connector. This issue has resources on learning what PCI Express (PCIe) is and how to best use it. That and so much more in this issue to inspire you on your own use of technology. Enjoy – 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:

Bookworm — the new version of Raspberry Pi OS

Bookworm — the new version of Raspberry Pi OS

Bookworm is the name of the new version of Raspberry Pi OS referred to in all the Raspberry Pi 5 discussions – Raspberry Pi.

Debian Bookworm itself is mostly made up of incremental updates of the software that was in the previous Debian Bullseye release. There are a few small changes, but they mostly won’t affect Raspberry Pi users. So Bookworm itself really hasn’t resulted in many changes.

However, for the last year or so the Raspberry Pi folks have been working on some major architectural changes to the Raspberry Pi Desktop, and these are launched for the first time in the Bookworm release.

Some of the changes under the hood

  • Wayland is the default display system for Raspberry Pi 4 and 5 with the Wayfire compositor
  • Use of the PipeWWire audio system
  • The NetworkManager network controller replaces dhcpcd
  • Firefox is a second browser option in addition to Chromium
  • Changes to how Python modules are installed
  • A new VNC server, called wayvnc, is being used instead of RealVNC
  • Subsequent documentation updates

It is suggested that a new image be created for using Bookworm, either to create an SD card using Raspberry Pi Imager, or to download and flash a Bookworm image from here with a tool of your choice.

Also: Optimising Raspberry Pi 5’s software environment – Raspberry Pi and YouTube.

PCIe Bus Use on Raspberry Pi Delights Community

The maker community is excited to have Raspberry Pi hardware with official access to the high-speed PCIe bus, for which there are thousands of add-on cards in the marketplace. Here are several articles discussing PCIe in general and its relation to Raspberry Pi 5. Raspberry Pi themselves talk about PCIe to a degree in their recent article – Raspberry Pi.

What is PCIe

Adafruit recently posted four articles to familiarize makers with PCIe:

Here is an article on Forcing PCI Express Gen 3.0 speeds on the Pi 5 by Jeff Geerling. Yes, the default PCIe Gen 2.0 bus can be set to 1.0 or even 3.0! But beware of the possible consequences.

PCIe Database

Jeff Geerling has established an online database of PCIe cards and their compatibility with the Raspberry Pi Compute Module 4 (CM4) and the Raspberry Pi 5 – Jeff Geerling.

How Not to Build a Custom RP2040 Development Board

How Not to Build a Custom RP2040 Dev Board

Learn design best practices via the tips on how not to build a custom Raspberry Pi RP2040 development board – Embedded Computing Design.

A Handheld CircuitPython Computer

Handheld CircuitPython Computer

PICOmputer V consists of a PICOkeyboard, ESP32-S3 and a 2.8” IPS color display. It runs on a Raspberry Pi Pico, consists of 8 PCBs total (no 3D printing). It can act as a retro computer emulator for ZX Spectrum, Atari and Commodore 64 as well as running CircuitPython – X thread and YouTube.

Raspberry Pi Pico with CircuitPython, a Primer

Raspberry Pi Pico with CircuitPython

DroneBot Workshop has developed a detailed primer on using a Raspberry Pi Pico with CircuitPython – DroneBot Workshop and YouTube.

Fresh From the Oven: Pi for Your Desktop

Fresh From the Oven: Pi for Your Desktop

Pi as a desktop: the Raspberry Pi 5 catches up to its original vision. IEEE Spectrum looks to see if the Pi 5 can replace a desktop computer – IEEE Spectrum.

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 works with the new version of Blinka_DisplayIO.

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 a Debouncer Timer – Adafruit Blog and YouTube.

Catch all the episodes in the YouTube playlist.

Project of the Week: Dynamically controlling a TV Backlight

TV Backlight

Developing a changing ambient light behind a TV monitor is a tricky process. Adafruit Playground member CGrover has written a detailed user guide on how he implemented a television ambient light using a AS7341 spectrometer sensor connected to an Adafruit Feather M4 Express board, programmed in CircuitPython – Adafruit Playground and YouTube.

News from around the web!

Disney Lorcana lore counter

Python customization for the Disney Lorcana lore counter with Adafruit Circuit playground Express – X.

KeyBoy

KeyBoy is a small handheld CircuitPython gaming system using an ESP32-S3 and 1.3” TFT LCD display – X and GitHub.

Debugging Python With Icecream

Debugging Python with Icecream – Les Pounder.

PCT2075 temperature-to-digital converter to an Adafruit Feather M0

PCT2075 temperature-to-digital converter to an Adafruit Feather M0 running CircuitPython – Learn MicroPython.

Python 3.13 Alpha

Python 3.13.0 alpha 1 is now available – Python Insider.

Sentio monitor

Using a PicoPad with CircuitPython to monitor a home over modbus TCP (Czech) – X.

MicroPython Bluetooth Classic

A Bluetooth Classic library for MicroPython on original ESP32 boards (the S2, S3, C3 all only support Bluetooth Low Energy) – GitHub.

Acaia Coffee scales

Using ESP32 Xiao, MicroPython and Bluetooth LE to interact with Acaia scales – X and GitHub.

VS Code on Raspberry Pi 5

Kevin McAleer reports “Developing in VS Code on the Raspberry Pi 5 is an absolute delight. It’s swift and on par with developing on a desktop now. Very impressive” – X.

Screen Time monitoring

Application to monitoring your screen time with your computer. It uses a W5100S-EVB-PICO with HLK-LD2410B to Adafruit IO via CircuitPython – hackster.io.

Lily∞Bot with Raspberry Pi Pico W: Obstacle Avoidance

Create obstacle avoidance on the Lily∞Bot with Raspberry PI Pico W using MicroPython, 2 motors and a sonar – hackster.io.

epaper

MicroPython programming an e-paper display to show the currently playing RadioFreeFedi track and a barcode (not displayed) to quickly get to the artist’s Fedi and/or Bandcamp profile – Mastodon.

The world’s first Raspberry Pi 5 tablet

The world’s first Raspberry Pi 5 tablet using a RasPad 3 – Raspberry Pi and YouTube.

RISC-V interrupts with a timer example

RISC-V interrupts with a timer example – Uros Popovic.

A new Tiny Basic for the 6502

A new Tiny Basic for the 6502 – drogon.net.

Real Python

Podcast: Building Python Best Practices and Fundamental Skills – Real Python.

PyDev of the Week: Pradeep Kumar Srinivasan on Mouse vs Python.

CircuitPython Weekly Meeting for October 10th, 2023 (notes) on YouTube.

#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? MicroPython 1.21 Out Now.

New

Unexpected Maker NanoS3

Unexpected Maker NanoS3 now with a u.FL antenna connection, ESP32-S3, ships with CircuitPython pre-installed – Unexpected Maker via X.

Home Assistant Green

Home Assistant Green from The Pi Hut contains everything you need for Home Assistant in one box. Home Assistant Green automatically installs the latest version of Home Assistant and the app (mobile or web) will guide you through the setup process, detecting smart devices immediately – ThePiHut.

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 but several are in the works.

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

Talking HAL 9000 with RP2040 Prop Maker Feather from Ruiz Brothers

Super Nintendo USB Controller from Robert Dale Smith

Updated Learn Guides!

Adafruit IO Basics: Feeds from Brent Rubell

Adafruit IO Basics: Dashboards from Brent Rubell

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

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

  • 60738 PyPI downloads over 314 libraries

Top 10 Libraries by PyPI Downloads

  • Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 6923
  • Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 6342
  • Adafruit CircuitPython Register (adafruit-circuitpython-register): 1905
  • Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 968
  • Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 862
  • Adafruit CircuitPython PCA9685 (adafruit-circuitpython-pca9685): 816
  • Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 735
  • Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 707
  • Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 614
  • Adafruit CircuitPython binascii (adafruit-circuitpython-binascii): 552

What’s the CircuitPython team up to this week?

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

Dan

Scott and I are continuing to work on the MicroPython v1.20 merge. I built representative boards from a number of ports and fixed minor errors which prevented those ports from building. Scott and I simultaneously fixed an issue with frozen modules. I am now looking at build size differences, both significantly larger and smaller, compared with before the merge.

Melissa

This past week, I worked on writing the Adafruit Qualia ESP32-S3 for RGB-666 Displays Guide. Much of the underlying work for this guide was done by Jeff, which made the guide much easier to write. I also created my first Fritzing part for this guide with the help of Liz.

Tim

This week I’ve been testing library PRs, include a rewrite for the ADT7410 sensor, and new examples in the HttpServer and LIS3MDL libraries. I’ve also been trying out the latest versions of Blinka DisplayIO and making necessary changes to the PyGameDisplay module to work along with the recent changes.

Scott

This week I’ve been working on the MicroPython 1.20 merge into CircuitPython alongside Dan. My focus has been getting GitHub Actions running so that it builds all of the boards. It was originally failing because the tests weren’t passing. Now the board builds are attempted, but many fail. Once they all build, we’ll smoke test a few and PR the changes into main.

Liz

This week I’ve been working on writing some CircuitPython drivers for new breakouts that are in the shop, starting with the AD5693 DAC. Previously I had only written a driver for the Wii Classic controller, which only involved adapting the Wii Nunchuck driver to send different buffers, so this has been a bit of a learning curve. I’m really excited though for all that I’ve learned and appreciate the feedback and help I’ve gotten from the team. My process has been referencing the Arduino drivers and using ChatGPT4 to convert to CircuitPython to get started and then testing and making adjustments from there.

Upcoming Events!

Maker Faire Bay Area

Maker Faire Bay Area will be October 13-15 & October 20-22, 2023 – Eventbright.

MicroPython Meetup

The next MicroPython Meetup in Melbourne will be on October 25th – Meetup.

Hackaday Supercon 2023

Hackaday has announced that the Hackaday Supercon is on for 2023, and will be taking place November 3 – 5 in Pasadena, California, USA – Adafruit Blog and Hackaday.

PyLadiesCon

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

Pyjamas 2023

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

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.6. New to CircuitPython? Start with our Welcome to CircuitPython Guide.

20231013 is the latest Adafruit CircuitPython library bundle.

20231012 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.0a1.

3,681 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,872 Thanks!

37,872 THANKS

Adafruit Discord

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