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! Supplies of Raspberry Pi boards indeed are improving as seen by the growing number of social media folks stating they were able to buy what they wanted. Previously, we’ve reported the Raspberry Pi folks as saying things will improve through the third quarter of this year and get to pre-pandemic levels. That’s good, as a number of this week’s projects use Pi products. CircuitPython is so close to a 8.2.0 stable release with a lot of goodness in the new synthio library. On a personal note, the newsletter will be guest edited the next three issues as your editor takes a long delayed honeymoon, so please be gentle on them. - 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:

CircuitPython 8.2.0 Release Candidate 1 Released

CircuitPython 8.2.0 Release Candidate 1 Released

CircuitPython 8.2.0-rc.1, a release candidate for CircuitPython 8.2.0, is now out. It is stable, and this should be the final candidate before an imminent 8.2.0 release - Adafruit Blog and GitHub release page.

Notable changes to 8.2.0 since 8.1.0

  • Continued enhancement of synthio.
  • RP2040 alarm.sleep_memory.

The Pi Cast Talks Raspberry Pi Pico W Bluetooth in MicroPython with Phil Howard

Podcast

The Pi Cast Podcast talks with Pimoroni’s Phil Howard about Raspberry Pi Pico W Bluetooth and MicroPython in their latest broadcast - YouTube.

Linux 6.4 Released This Week

Linux 6.4

Linux 6.4 released – Main changes, Arm, RISC-V and MIPS architectures - CNX Software. Also a Changelog.

Continuous Capacitive Touch Controller Circuit Boards

Capacitive Touch Controller Circuit Boards

Bradán Lane is making a set of I2C add-on board (similar to the Adafruit seesaw series). The latest one has a circular and square sensor area with multiple elements, allowing for continuous touch sensing - Twitter.

The circle uses 3 interwoven touch sensors to create a continuous value (0..255 or 0..359). The grid uses 12 diamond touch sensors (6 rows & 6 columns) to create a continuous X-Y pair (0..255 0..255). The actual touch controllers are driven by an ATtiny1616 and expose high level I2C client interface.

An Adafruit ESP32-S3 Feather running CircuitPython is used to read the I2C data from the board and provide output via the serial REPL.

A Raspberry Pi E-Ink Frames Keep Loved Ones Connected

Raspberry Pi E Ink Frames Keep Loved Ones Connected

This Raspberry Pi e-ink frame project helps keep loved ones connected by sending a new picture each day. The project is made using two custom digital picture frames, each featuring a Raspberry Pi and an E Ink display panel. The Pis connect to the internet throughout the day and pull a new image to be loaded from a specific email address. The project heavily uses Python - Tom’s Hardware and GitHub.

A Raspberry Pi Pico W Bluetooth Tutorial with MicroPython

Raspberry Pi Pico W Bluetooth Tutorial

Learn how to build your own Bluetooth remote controlled robot using a Raspberry Pi Pico and MicroPython - Kev’s Robots.

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 testing web stuff and working on types.

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 is off this week - you can still catch all the episodes of CircuitPython Parsec in the YouTube playlist.

Project of the Week: Olga The Fortune Teller

Olga The Fortune Teller

Olga The Fortune Teller

Olga The Fortune Teller is a new Raspberry Pi project by Rosie Hattersley. It’s a shiny new ChatGPT model designed to appeal to the Insta-savvy influencer keen to check out both the latest skincare options and receive reassuring messages about their future fame and follower count - Raspberry Pi News.

…mobile connectivity was vital, so they chose a (Raspberry Pi) Pico W: “simple, low-cost and small but, at the same time, [it] can run a full wireless stack which is easy to use.” With MicroPython on the Pico W, things work painlessly and the development time is short. It’s used here to communicate with a Zebra thermal printer via an RS232 connection and prompt it to print out a stand visitor’s fortune ticket. ChatGPT is instructed to: ‘Pretend you are a fortune teller and tell the person you are talking to – who is called $NAME – their fortune in a poem of three or four short lines. Make sure their fortune is vague but positive! Include a lucky item (retail related).’

News from around the web!

CircuitPython Online IDE

New upcoming features for the CircuitPython Online IDE by River Wang include allowing web widgets to interact with CircuitPython variables and enhancing the console output by providing syntax highlighting and visual enhancements - Mastodon.

Timer

Multiple timers for cooking programmed in CircuitPython on a Propmaker Feather RP2040, which provides a nice I2S audio amp and built-in battery charging, as well as a deep sleep mode to preserve battery life - Twitter.

Portable game machine using Raspberry Pi Pico

A portable game machine using Raspberry Pi Pico and MicroPython - hatenablog.jp.

Traffic signal

Fun with a Pimoroni Cosmic Unicorn LED matrix and Raspberry Pi Pico W propgrammed in MicroPython – a traffic signal for the kids on bikes - Twitter and GitHub.

Baby Einstein

hackster.io writes about Adafruit hacking the Baby Einstein toy with a custom PCB programmed in CircuitPython - hackster.io.

Make also writes about cramming CircuitPython into baby’s toys - Make.

Rangefinder

A LoRa/RFM95 portable range finder using Adafruit Feather and CircuitPython - GitHub.

Building a Toy Programming Language in Python

Building a Toy Programming Language in Python - miguelgrinberg.com.

Watchy

Making a monochrome watch with CircuitPython - Twitter.

WolfSSL

wolfSSL announces micropython-wolfssl, an external module for MicroPython that enables wolfSSL to be used for TLS and cryptographic operations - WolfSSL.

Python at Netflix

The Talk Python to Me Podcast presents Python at Netflix - TalkPython.

Python Robots

Latest Raspberry Pi MagPi magazine features Python Robots - Geeky Gadgets.

A Roller coaster motion simulation in Python

A Roller coaster motion simulation in Python - YouTube.

Ligatures

Using ligatures with Eclipse and Visual Studio Code - MCU on Eclipse.

Workshop kits

Preparing for a workshop next month. That’s a dozen Pi Pico W running MicroPython connected to a dozen Pimoroni GFX Packs. Next steps - install test software and make sure WiFi etc. is good - Twitter.

6809 Emulator

DragonPyEmulator is a Dragon 32/64 and Tandy Color Computer emulator written in Python. The MC6809 project is used to emulate the 6809 CPU. BASIC is included - PyPI.

Heatshrink

heatshrink is a data compression/decompression library for embedded/real-time systems with very low memory usage - GitHub.

investpy

investpy is a Python package to retrieve data from Investing.com, which provides data retrieval from up to 39952 stocks, 82221 funds, 11403 ETFs, 2029 currency crosses, 7797 indices, 688 bonds, 66 commodities, 250 certificates, and 4697 cryptocurrencies - GitHub.

PyDev of the Week: Marcelo Trylesinski on Mouse vs Python

CircuitPython Weekly Meeting for July 3rd was cancelled due to proximity to a US holiday and will resume on July 10th.

#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Adafruit Top Secret: Toy Hacking.

New

Keyboards

Anavi Technology has launched two open-source hardware Raspberry Pi RP2040-based mechanical keyboards running KMK CircuitPython firmware - Mastodon.

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

New Learn Guides!

New Learn Guides

Adafruit EYESPI BFF from Liz Clark

Adafruit Mini I2C STEMMA QT Gamepad with seesaw from Kattni

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

Updated Libraries!

Here’s this week’s updated CircuitPython libraries:

Library PyPI Weekly Download Statistics

Total Library Stats

  • 68298 PyPI downloads over 310 libraries

Top 10 Libraries by PyPI Downloads

  • Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 6434
  • Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 5552
  • Adafruit CircuitPython Register (adafruit-circuitpython-register): 1525
  • Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1272
  • Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 800
  • Adafruit CircuitPython PCA9685 (adafruit-circuitpython-pca9685): 733
  • Adafruit CircuitPython ESP32SPI (adafruit-circuitpython-esp32spi): 661
  • Adafruit CircuitPython SSD1306 (adafruit-circuitpython-ssd1306): 618
  • Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 611
  • Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 601

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 8.2.0 Release Candidate 0 on Friday June 23, and Release Candidate 1 on Tuesday, June 27. If all goes well, we’ll release 8.2.0 final shortly after the July 4 holiday.

I’ve been continuing on the MicroPython merge. I am getting closer to finishing my initial review of all the changes. Then I’ll work on getting it to compile and start testing.

Kattni

This week I published the Gamepad QT guide. If you picked up one of these nifty little STEMMA QT gamepads, check out this guide for all the details and code examples to get you started.

Next up is are guides for the STEMMA Audio Amp and Swirly Grid. Keep an eye out for those soon!

Melissa

This past week I worked on fixing bugs and adding features to the CircuitPython Code Editor. I also updated the 1.2” 7-Segment LED display backpack in the Adafruit LED Backpacks Learn Guide.

Tim

This week I’ve been testing and putting finishing touches on a change for the ESP32SPI library to have a more compatible socket API as compared to CPython and other socket sources. The majority of this weeks testing was on learn guide projects that use higher level helper libraries to interact with the WiFi like PyPortal and Adafruit IO. I also tracked down an issue with displayio.Shape and submitted a fix for it.

Jeff

I improved audio output on RP2040-based boards including the Feather RP2040 Prop Maker, by working around a bug that would make a loud audio glitch each time files on the CIRCUITPY drive were updated. There’s still a small glitch, but instead of being a loud noise it is a short period of silence.

During USB enumeration there is still a glitch, so adding a short delay before any program begins audio synthesis remains recommended to work around it.

Liz

This week I published the EYESPI BFF guide. This board has an EYESPI connector for connecting displays. I think folks will be able to make some fun, compact display projects with this. According to the backend stats in the Learn System, this guide was my 100th published guide, which I’m very proud of.

Upcoming events!

EuroPython 2023

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

MicroPython Meetup

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

PYCON UK 2023

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

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. They’d like to hear your proposals for talks and workshops! The Call for Speakers and Call for Workshops forms are online now, and you have until July 18th to sign up - Adafruit Blog and Hackaday.

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

20230703 is the latest CircuitPython library bundle.

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

3.11.4 is the latest Python release. The latest pre-release version is 3.12.0b3.

3,580 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,480 thanks!

37,480 THANKS

Adafruit Discord

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