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! So much is now happening in the Python on Hardware space! Novel ways to use displays in CircuitPython and MicroPython are out this week. The crop of projects is first class. And we hit 250 published newsletters! Thanks for your viewership in this wonderful community (and don’t forget to tell your colleagues, friends and students to subscribe for free) – 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:

250 Issues!

250 Issues!

Last week was our 250th issue of this newsletter! Our first was back on November 15, 2016. (Nearly) every week, Adafruit provides the Python on Microcontrollers Newsletter to the Python community. Please encourage your friends, colleagues and students to subscribe. It’s easy to join and leave, you will never get spam or Adafruit pitches (it’s a separate site). Thank you all for staying with us and sending content to cpnews(at)adafruit(dot)com each week – Adafruit Blog.

Driving Large LCD Displays with CircuitPython

Driving "Dot Clock" Displays

Adafruit now has the Espressif ESP32-S3 talking to large “dot clock” displays like the 7 inch 800×480 display above. There will be a display driver board with the S3 from Adafruit soon along with a selection of displays including rectangular, circular, and square – X, formerly Twitter and YouTube.

Get Your Mac Python From Python.org

Get Your Mac Python From Python.org

There are many ways to get Python installed on macOS. But, for most people, the version that you download from Python.org is best – Deciphering Glyph.

Adafruit Surpasses 600 Certified Open-Source Hardware Designs and a look at the Open-Hardware movement

Adafruit Surpasses 600 Certified Open Source Hardware Designs

3D printing, open-source, certifying hardware, OSHWA API, China, and more … by Phillip Torrone at Adafruit takes a look at the open hardware landscape, OSHWA, and more – Adafruit Blog via X, formerly Twitter.

Arm’s much anticipated IPO is around the corner

ARM’s much anticipated IPO is around the corner

The technology company Arm, majority owned by SoftBank, will soon have its IPO on the New York Stock Exchange – Adafruit Blog.

More Handy Cheat Sheets

Cheat Sheets are one of the more popular items when they pop up in the newsletter – they certainly help in programming. Here are some new ones out this week, one on Python and two on Arm Assembly.

Python Cheat Sheet

From basic syntax to advanced concepts, this Python cheat code has got you covered – X, formerly Twitter.

Azeria Arm Cheat Sheets

Azeria is a foremost expert on Arm assembly and hacking. With her new book Arm Assembly Internals and Reverse Engineering (Blue Fox Edition), Arm is asking her to retract the title because it contains the word ‘Arm’. To celebrate how the community has circled around her, she’s made two of her Arm assembly cheat sheets available for free – Thread on X, formerly Twitter.

Adafruit.io WipperSnapper Adds No-Code Support for the MPL115A2 Barometric Pressure/Temperature Sensor

Adafruit.io WipperSnapper Adds No-Code Support for the MPL115A2 Barometric Pressure/Temperature Sensor

You now can use the MPL115A2 – I2C Barometric Pressure/Temperature Sensor with Adafruit.io WipperSnapper for pressure and altitude measurements, all without the need for writing a single line of code! With WipperSnapper, you can effortlessly connect various components and sensors to any of the 20+ supported development boards to build an internet-connected electronics project. The best part is that you can configure and control these sensors from the web using Adafruit IO, all without the need for programming – Adafruit Blog.

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

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

CircuitPython Parsec

CircuitPython Parsec

Catch the latest episodes from John Park on the parsec YouTube playlist.

Project of the Week: Driving Five LED Displays with Python

Driving 5 LED Displays

Pimoroni writes “What if I told you this 96cm wide, five panel, 160×32 Interstate75 powered pixel display can be started for just £105 and driven from Python running on a Pi or desktop PC for impressively smoooth demos?”

Driving 5 LED Displays

Demonstrations include a fire animation and a long version of Conway’s Game of Life – Thread on X, formerly Twitter.

News from around the web!

MatrixPortal S3 Feather Weather

DJDevon3’s Feather Weather on 4 matrix panels with a Stemma BME688 sensor – Quad Matrix Panel Feather Weather.

EuroPython 2023 Post conference newsletter

The EuroPython 2023 Post conference newsletter is now out – EuroPython.

Crank

Kevin writes “I attached a 5-volt regulator to a motor, and it works as a battery charger input. So I attached this to a LiPo charger, battery and Raspberry Pi Pico W to create a wind-up Webserver. Great when you need power and you’re not near a charger” – X, formerly Twitter.

Video Glasses

Ralf Ackermann writes “I have a Raspberry Pi Pico running MicroPython and generating VGA output that drives a MicroOptical 640×480 display. It can even use the MicroPython prompt to change the things shown dynamically” – X, formerly Twitter.

"WASM in your wheel?" - Jim Mussared (PyCon AU 2023)

“WASM in your wheel?” – Jim Mussared (PyCon AU 2023) – YouTube.

Clock

An NTP Clock using CircuitPython – Elektor.

JMS Pico TKL

A Raspberry Pi Pico keyboard powered by CircuitPython and KMK – Codeberg via Mastodon.

VFD-Equipped Cyberdeck

RobsonCouto’s VFD-equipped KOAT0 cyberdeck terminal is a stylish and functional device – hackster.io and hackaday.io.

Jumperless - a jumperless (solderless) breadboard

Jumperless is a jumperless (solderless) breadboard – DigiKey and YouTube.

PyData Seattle Language Creators Charity Fundraiser

PyData is hosting a Language Creators Charity Fundraiser which includes Guido van Rossum, creator of Python – PyData.

PiBoy Mini

PiBoy Mini: just add a Raspberry Pi and you’ve got a handheld retro gaming system – Raspberry Pi.

Panda

RsPico round liquid crystal module with Raspberry Pi Pico W attached and running with CircuitPython. Red panda is in high spirits – X, formerly Twitter (Japanese).

Pico Held

Pico Held: Sega Mega Drive emulator – Raspberry Pi.

Deploying Python

Using an Internet Service Provider (ISP) to host Python apps for deployment – GitHub.

CircuitPython Weekly Meeting for August 28, 2023 (notes) on YouTube.

#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Getting to grips with Bluetooth on Pico W.

New

Adafruit Metro ESP32-S3

Adafruit’s Metro ESP32-S3 puts two cores, 8MB PSRAM, and 16MB flash in an Arduino UNO Footprint. The second new Metro design in a month, the Metro ESP32-S3 includes WiFi, Bluetooth Low Energy (BLE), and native USB support – Hackster.io.

LuckFox Pico Rockchip RV1103

LuckFox Pico is a small Linux camera board based on the Rockchip RV1103 Cortex-A7 and RISC-V AI camera SoC and offered with an Ethernet port in a longer version of the PCB called LuckFox Pico Plus. Both models come with 64MB RAM (apparently embedded in RV1103), a microSD card slot for storage, a MIPI CSI camera connector, a USB Type-C port for power, and a few through holes for expansion through GPIO, I2C, UART, etc. – CNX Software.

Orange Pi Compute Module 4

Orange Pi Compute Module 4 with Quad-core 64-bit Cortex-A55 processor and available with 1, 2, 4, or 8 GB RAM – Orange Pi.

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

Prop-Maker Feather Talking Adabot Clock from Liz Clark

Teddy Ruxpin Rebuild from Erin St. Blaine

MatrixPortal CircuitPython Animated Message Board from Melissa LeBlanc-Williams

Adafruit Metro ESP32-S3 from Kattni

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

Updated Libraries!

Here’s this week’s updated CircuitPython libraries:

Library PyPI Weekly Download Stats

Total Library Stats

  • 129910 PyPI downloads over 312 libraries

Top 10 Libraries by PyPI Downloads

  • Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 7523
  • Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 6917
  • Adafruit CircuitPython Register (adafruit-circuitpython-register): 2032
  • Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1397
  • Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1356
  • Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1257
  • Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1117
  • Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1105
  • Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1047
  • Adafruit CircuitPython PCA9685 (adafruit-circuitpython-pca9685): 1014

What’s the CircuitPython team up to this week?

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

Kattni

The Metro ESP32-S3 guide went live this week. I found a bug in the hardware through testing. It turns out the increased flash memory uses the SPI pins, which meant when trying to use SPI or I2S, such as with the built-in SD card slot, CircuitPython crashed into safe mode with a gnarly error. The board will be revised and released in the shop once it’s updated. If you picked up one of the original boards, check out the warnings in the guide for details.

Next up is the EYESPI Pi Beret guide, which has a GIF player demo in Python for the Raspberry Pi.

Melissa

title

This past week I finished up writing the MatrixPortal CircuitPython Animated Message Board guide and it is now published. This includes full 3D printing and assembly instructions as well as a code overview and a detailed usage page.

Tim

This week I’ve been investigating an issue with the Read The Docs build process and working on a fix that can be pushed out to the libraries which will be needed in order to get their docs build succeeding. I’ve also been testing and review library PRs and working on finishing some typing PRs that have been stalled after their initial review.

Jeff

After going down a number of blind alleys, I finally have working code (with caveats) for dot clock displays with the Espressif ESP32-S3 microcontroller. My test board has an 800×480 display; the CircuitPython text terminal looks nice and chunky with 2×2 virtual pixels:

Display

You can follow along with progress in the pull request.

Scott

This past week has primarily been working on the ESP32-S3. Kattni found an issue on the new Metro S3 and I tried to debug it during my stream on Friday. Monday morning I realized the issue is likely misconfiguring a pin and breaking the PSRAM. This causes the VM to load garbage that can cause all sorts of issues. It turned out to be the source of the problem. The full fix requires a hardware change. An interim fix is to have CircuitPython correctly protect those pins and prevent their use. It’ll prevent the hard crash but not fix the inoperable pins. The problem occurred because the design was based on a 2MB PSRAM module that connects to the RAM over 4 data pins. The 8MB PSRAM module fits the same footprint but uses 4 more pins to connect to the RAM over 8 data pins. CircuitPython was resetting those extra pins and causing the crash. Soon it’ll fail friendlier with “in use” instead.

I’ve also worked a bit on the IDF5 update and tweaked how flash and ram settings are specified. The settings will make it easier to clock the flash and ram as fast as a board can handle. Right now, we’re pretty conservative. Hopefully in 9.x we’ll get a nice performance speedup from clocking the flash faster.

The next week is busy for me as I move my office into a new space out of my house. There’s a long weekend as well. My goal is to work from the office starting next week!

Liz

This week I worked on the Talking Adabot Clock project. This was a remake of the Wave Shield Talking Clock originally done by Phil B. in Arduino. I updated the project to use the RP2040 Prop-Maker Feather with a DS3231 RTC STEMMA breakout and remixed the Adabot head from the Adabot Toy Robot Friend project to house the electronics. It was a really fun build from start to finish.

Upcoming Events!

Espressif Developer Conference - DevCon23

The supplier of popular ESP32 and ESP8266 microcontrollers, Espressif, announces their yearly Developers Conference. During the two-day online event, there will be nearly 30 talks created by Espressif technical experts and its partners, covering a wide range of topics, including Thread, the low-power features of ESP32-C6 and Wi-Fi 6, ESP-Mesh-Lite + ESP RainMaker Cloud solution, ESP-IDF, RUST, SquareLine Studio, AWS IoT, and more. September 12-13, 10:00-19:00 CEST – devcon.espressif.com.

PYCON UK 2023

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

MicroPython Meetup

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

Maker Faire Bay Area

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

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.

Pyjamas 2023

The Pyjamas Conference, the 24-hour online Python conference, will be returning for a fifth year. The Call for Papers will begin on September 2nd – Twitter.

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

20230829 is the latest Adafruit CircuitPython library bundle.

20230829 is the latest CircuitPython Community library bundle.

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

3.11.5 is the latest Python release. The latest pre-release version is 3.12.0rc1.

3,648 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,765 Thanks!

37,765 THANKS

Adafruit Discord

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