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! Exciting news with the first alpha release of CircuitPython 8 out! Some very special artwork has been designed and unveiled here first!

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.0.0 alpha 1 released!

CircuitPython 8.0.0 alpha 1

The CircuitPython team has released CircuitPython 8.0.0-alpha.1, an alpha version for 8.0.0. It is relatively stable, but there will be further additions and fixes before final release. Note that major number changes, such as version 7 to version 8, may have application programming interface (API) changes that are incompatible with the previous major version – GitHub.

Notable changes to 8.0.0 since 7.3.0:

  • Added TileGrid.contains().
  • AnalogIn values are full range from 0 to 65535, instead of having zeros on low-order bits.
  • OneWire is only in onewireio, and is no longer in busio or bitbangio.
  • gamepadshift has been removed: use keypad.ShiftRegisterKeys instead.
  • dotenv support: os.getenv() values can be set in the .env file.

Exclusive! CircuitPython 8 Poster

CircuitPython 8 Poster

This issue gives subscribers the first look at the official CircuitPython 8 poster! Designed in cooperation with Espressif (maker of the ESP line of microcontrollers), it shows the CircuitPython togetherness similar to previous posters like CircuitPython 7 (MicroPython) and CircuitPython 6 (Nordic).

PyLeap is Available in the Apple App Store

PyLeap is Available

The PyLeap app is now available in the Apple App Store for iOS/iPadOS devices – Adafruit Blog.

Take complete projects from the Adafruit Learn System, and transfer them directly to a Circuit Playground Bluefruit microcontroller board without opening a code editor or connecting to a computer! PyLeap is Adafruit’s app for iOS & iPadOS. It allows programming a Circuit Playground Bluefruit anywhere with various completed projects, including:

  • Sending rainbows to your Circuit Playground Bluefruit
  • Loading up sound files
  • Using light and sound sensors

PyLeap is Available

PyLeap is available in the App Store today and more updates are on the way! Just make sure you have a Circuit Playground Bluefruit to use with it.

Instructions for using the app with CPB are available in the PyLeap Learn Guide – more documentation to come!

PyOhio Talks Announced

PyOhio

PyOhio has announced their talks for PyOhio 2022! PyOhio will be online July 30 with streaming talks and community discussion – PyOhio via Twitter.

And note that CircuitPython team member Kattni will be giving a talk “Simplicity and Fun: Learning with CircuitPython” – PyOhio.

PSF Board Election Dates for 2022

PSF Board Election Dates for 2022

Python Software Foundation Board elections are a chance for the community to help find the next batch of folks to steer the PSF. This year there are 4 seats open on the PSF board. You can see who is on the board currently here. Nominations for new board members opened June 1st.

Timeline:

  • Nominations are open, Wednesday, June 1st 12:00 PM Eastern
  • Board Director Nomination cut-off: Wednesday, June 15, 2022 AoE
  • Voter application cut-off date: Wednesday, June 15, 2022 AoE
  • Announce candidates: Thursday, June 16th
  • Voting start date: Monday, June 20, 2022 AoE
  • Voting end date: Friday, June 30, 2022 AoE

Nominations should be made through this form (Note: you will need to sign into or create your python.org user account first). You can nominate yourself or someone else, but no one will be forced to run, so you may want to consider reaching out to someone before nominating them – PSF.

Python 3.11 Speedup Benchmarks

Python 3.11 Speedup Benchmarks

Last month Python 3.11 Beta 1 was released as their first preview of this major update to the Python programming language. Besides new language features and other improvements, Python 3.11 performance is looking fantastic with very nice performance uplift over prior Python 3 releases. Besides changes affecting the Python language itself, Python 3.11 has been landing performance work from the “Faster CPython Project” to speed-up the reference implementation. Python 3.11 is 10~60% faster than Python 3.10 according to the official figures and a 1.22x speed-up with their standard benchmark suite – Adafruit Blog and Phoronix.

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 work on manipulating images with the bitmaptools Core Module.

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.

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 release Monday, June 13th features Anne Barela (your editor). Anne and Paul talk about Anne’s books, the Python on Microcontrollers newsletter, retro tech, and more – Show List.

TammyMakesThings is Streaming CircuitPython

Tammy Makes Things

Community member and CircuitPython contributor Tammy Cravit is streaming on Twitch. Her stream focuses on electronics, coding and making, with a focus on CircuitPython. The first few streams have been working on a MacroPad-based MIDI controller, and she’s got lots of other project ideas in the works. An exact schedule for her streams is still being worked out, but she’s targeting 2-3 streams per week. Check it out and follow now to be notified of future streams – Twitch.

Project of the Week: An RGB LED Ball

RGB LED Ball

RGB LED Ball

RGB LED Ball

Tom Verbeure demonstrates an RGB LED ball built with 3D printing and custom circuit boards. It all runs off a Raspberry Pi Pico programmed in MicroPython – Twitter and GitHub.

News from around the web!

Jellyfish

A CircuitPython-powered Sound Visualizer Jellyfish – Twitter.

JCPM macro pad

JCPM macro pad experimentation with a Raspberry Pi RP2040 on a SparkFun Pro Micro board and CircuitPython – Twitter.

LED lit vacuum tube

“Phil found some old bust Valves and had a wee break from OOP to make a CircuitPython RGB led with a Pimoroni Tiny2040 + 1 button & 1 slide pot for a fun controllable light” – Digital Maker and Twitter.

TI-82

A video and discussion of the TI-82 Advanced Edition Python calculator (which runs CircuitPython) – YouTube and discussion – TI Planet (French).

MintyPico

GitHub user kkehe has designed the mintyPico, a gaming machine built into an Altoids Smalls tin (very small). It’s based on a Raspberry Pi Pico processor and a SH1106 display. The code is written in MicroPython – Adafruit Blog, YouTube, GitHub and Hackaday.

Invector Labs

Invector Labs are a Swedish electronics company making a range of MicroPython-capable boards. Many are RP2040 based, some use the ESP32 range for WiFi and there are some nRF52 in the mix too – Twitter.

Run RV3028 RTC module with CircuitPython

Run a RV3028 RTC module with CircuitPython – Akii Diary.

MicroPython Newsletter

Bhavesh Kakwani is publishing a MicroPython Newsletter which has just reached 50 subscribers – check it out – Bhavesh Kakwani via Twitter.

A wooden programmable macropad

A wooden programmable macropad running CircuitPython – Adafruit Blog and hackaday.io.

PicoGraphics for MicroPython

Pimoroni has released new builds of PicoGraphics – a MicroPython library for displays and the RP2040 chip – Twitter Thread.

Try Something Different: Explore MicroPython

Talk Announced: Try Something Different: Explore MicroPython! (a rough guide for newcomers), by Andy Piper, at EuroPython 2022EuroPython.

A First Look at PyScript

A First Look at PyScript: Python in the Web Browser, by Real Python – Real Python.

Python Game

A fun game online to test your Python skills: Python-illionaire – millionairedev.app via Twitter.

PyDev of the Week: Allen Downey from Mouse vs Python

CircuitPython Weekly Meeting for June 10th, 2022 (notes) on YouTube

#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Secrets of MicroPython: MQTT on ESP32.

Coming Soon

Orange Pi 800

Announced on June 4th 2022, WiFi Sheep shares some thoughts on the new Orange Pi 800 all in one ARM Raspberry Pi 400 clone computer system – YouTube. Also details in an article on CNX Software.

USB 4

Thunderbolt and USB4 finally arrive on non-Intel and non-Apple laptops – PCWorld.

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 four 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

There are no new Python-related Learn Guides this week!

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

Updated Libraries!

This week there were far too many updated CircuitPython libraries to include here! Keep an eye out next week for more!

What’s the team up to this week?

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

Dan

I fixed an ESP32SPI library problem that showed up when using an HTTP server that sent chunked responses. I also cleaned up the ESP32SPI socket class and removed non-standard methods. I’ve been working over the past two weeks on debugging more network issues that show up most prominently on the MatrixPortal.

I was able to speed up a number of CircuitPython builds by tuning the parameters for LTO optimization.

I released CircuitPython 8.0.0-alpha.1, the first published release for 8.0.0.

Kattni

I published the QT Py ESP32 Pico guide last week. It doesn’t have CircuitPython support, but it supports Arduino, MicroPython, and Wippersnapper. It’s a cute little WiFi board, and if you picked one up, check out the guide for everything you need to know about it.

I did the final testing on PyLeap, and greenlit Trevor doing the release of 2.0. It’s now live!

I’m working on a new guide that covers how to create, modify, and enhance your GitHub profile. GitHub has a way to create a specific repository, add a README.md file, and it renders on your GitHub main page when folks view it. This guide will explain all of that, and introduce a number of tools to make the process simple, and help you make your profile memorable and representative of you. Keep an eye out for it, and learn how to make your GitHub profile super snazzy!

Melissa

This past week I revisited the MIPI drivers and touchscreens and made some more progress. I tried combining the MIPI driver and the touch screen fixes the touch screen issues I was experiencing, unfortunately it didn’t. I’ve enlisted the help of the original author of the MIPI and the current FrameBuffer drivers and he is finding stuff. Once that’s taken care of, I will likely go through and create and new Device Tree Overlays for each of our products that combines both the touch and MIPI drivers.

I also played a bunch with the TSC2007 controller to try and get it operating with a kernel driver, but after having little success I decided to try using it with the simple test examples in the Guide and found it failing those. I have a new display, which was the issue, and I will continue playing with that for a bit.

Tim

This week I worked on modifying a slider puzzle example that I created for the PyGamer a while ago to work on a PyPortal with the touch screen instead, using the new TileGrid.contains() functionality recently added to the core. I made some usability improvements on circuitpython.org by adding autofocus on the search box for the downloads page, as well as a new note on the Picosystem page about how to get into bootloader.

I’m also starting to create examples for the core module bitmaptools, I’ve created some rotation examples and experimented with scale using bitmaptools.rotoazoom() function. Lastly I did some testing on changes to the esp32_spi library with various different project codes.

Scott

This week I finished up optimizing translate function code size for non-LTO builds. The last change I did was to speed up the build process. In the end, it saved around 30 kilobytes on the ESP builds.

My main work was continuing to work on making CircuitPython auto-connect to WiFi when credentials are stored in the .env file. The first thing I’ve been reworking is showing connection status in the title bar of the console. With displayio, it’ll change the top line to be the “title”. I’ve also added the starting code to only reset WiFi when the user code has started it.

Upcoming events!

MicroPython Meetup

The next MicroPython Meetup in Melbourne will be on June 22nd – Meetup. See the slides of the May 25th meeting.

SciPy 2022

SciPy 2022, the 21st annual Scientific Computing with Python conference, will be held in Austin, Texas, USA from July 11-17, 2022. The annual SciPy Conference brings together attendees from industry, academia, and government to showcase their latest projects, learn from skilled users and developers, and collaborate on code development. The full program will consist of 2 days tutorials (July 11-12), 3 days of talks (July 13-15) and 2 days of developer sprints (July 16-17) – SciPy 2022.

EuroPython 2022

EuroPython 2022 will be held on 11th-17th July 2022 and it will be both in person and virtual. The in-person conference will be held at The Convention Centre Dublin (The CCD) in Dublin, Ireland – EuroPython 2022.

PyOhio 2022

PyOhio is a non-profit annual Python community conference usually held in Columbus, OH. It is being held online starting Saturday, Jul 30, 2022. It is free to attend and welcomes anyone with an interest in Python. Content ranges from beginner to advanced and is intended to be relevant to all types of Python users: students, software professionals, scientists, hobbyists, and anyone looking to learn more – PyOhio.

Send Your Events In

As for other events, with the COVID pandemic, most in-person events are postponed or cancelled. If you know of virtual events or events that may occur in the future, please let us know on Twitter with hashtag #CircuitPython or email to cpnews(at)adafruit(dot)com.

Latest releases

CircuitPython’s stable release is 7.3.0 and its unstable release is 8.0.0-alpha.1. New to CircuitPython? Start with our Welcome to CircuitPython Guide.

20220611 is the latest CircuitPython library bundle.

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

3.10.5 is the latest Python release. The latest pre-release version is 3.11.0b3.

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

jobs.adafruit.com – Find a dream job, find great candidates!

jobs.adafruit.com

jobs.adafruit.com has returned and folks are posting their skills (including CircuitPython) and companies are looking for talented makers to join their companies – from Digi-Key, to Hackaday, Micro Center, Raspberry Pi and more.

Job of the Week

Engineering Laboratory Technician – Litegear – Adafruit Jobs Board.

34,639 thanks!

34,639 THANKS

Adafruit Discord

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

Codecademy “Learn Hardware Programming with CircuitPython”

Codecademy CircuitPython

Codecademy, an online interactive learning platform used by more than 45 million people, has teamed up with Adafruit to create a coding course, “Learn Hardware Programming with CircuitPython”. The course is now available in the Codecademy catalog.

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.