Daily tips and tricks from the experts at Adafruit!
View this email in your browser

View this email in your browser.

Presenting the latest Python on Microcontrollers newsletter, brought you by the community! We’re on Discord, Twitter, and for past newsletters – view them all here. If you’re reading this on the web, subscribe here. And the big news:

CircuitPython 7.0.0 Now Available

CircuitPython 7.0.0

CircuitPython 7.0.0 is now available as the new stable release!

Notable additions to 7.0.0 since 6.3.0 include:

  • Support for the CircuitPython development workflow over BLE.
  • Camera support on ESP32-S2.
  • qrio: QR code decoding.
  • The keypad key-scanning module.
  • Run-time customization of USB devices.
  • Merging in of MicroPython fixes and enhancements as of MicroPython 1.16.
  • _pixelbuf is now adafruit_pixelbuf.
  • colorwheel() routine moved to rainbowio.
  • supervisor.ticks_ms() to allow easier time-keeping.
  • Simplifications to the RGB status LED codes.
  • A clocking fix for a few samples of RP2040 boards.
  • Rework of vectorio and some of its API. VectorShape is no longer needed for user code.
  • atexit module.
  • getpass module.
  • traceback module.
  • supervisor.get_previous_traceback().
  • board.LED now consistently present on all boards that have such an LED.
  • PulseOut no longer needs a PWMOut.
  • Unicode filename support.
  • Board ID is now in boot_out.txt and available as board.board_id.
  • aesio on for full builds by default.

Port status

CircuitPython has a number of “ports” that are the core implementations for different microcontroller families. Stability varies on a per-port basis. As of this release, atmel-samd, cxd56 (Spresense), esp32s2, nrf, raspberrypi, stm for the F4 family are stable. stm for other STM chip families is being actively improved but may be missing functionality and have bugs. litex and mimxrt10xx are in an alpha state and will have bugs and missing functionality.

More on the Adafruit Blog and GitHub.

An Upgraded Astro Pi Deployed to the International Space Station with a New European Astro Pi Challenge

Astro Pi

To the ISS & beyond! Upgraded Raspberry Pi computers are heading to space for the Astro Pi challenge. New sensors, cameras & machine learning technology — young people can take advantage of all these features & more!

The Astro Pi units, in their space-ready cases of machined aluminum, will travel to the ISS in December on the SpaceX Dragon Cargo rocket, launching from Kennedy Space Center. Once the resupply vehicle docks with the ISS, the units will be unpacked and set up ready to run Astro Pi participants’ code in 2022 – Raspberry Pi Blog and Twitter.

New European Astro Pi Challenge

There are two Astro Pi missions for young people to choose from: Mission Zero and Mission Space Lab. Young people can participate in one or both of the missions! Participation is free and open for young people up to age 19 in ESA member states plus Slovenia, Canada, Latvia, Lithuania, and Malta – YouTube and Astro Pi Website.

GitHub Starts to Embed Thanks to People as Contributors to Releases

GitHub Thanks Contributors

GitHub will now automate making a Release Notes contributors section based on the GitHub @ handles found within the release notes – GitHub Documentation (see 7th point) and Twitter.

Playable Quotes for the Game Boy

Playable Quotes for the Game Boy

Playable Quotes for Game Boy allows creation and sharing of tiny interactive slices of existing games. Simply load a game into the Playable Quotes emulator, play towards the part of the game you want to demonstrate, click the “Record New Quote” button, continue playing, then eventually click the “Stop recording” button to complete the demo.

Under the hood, the software uses a Python emulator of the Game Boy. A description of how this is done is on joel.franusic. You can see more about the PyBoy emulator on GitHub.

IEEE Top Programming Languages 2021 Ranks Python #1

Python #1

Which programming language is on top in 2021? It’s Python, says the IEEE. The annual ranking of programming languages is led by Python, thanks to a “vast number of libraries” that make it incredibly versatile – TechRepublic and IEEE Spectrum.

Halloween Hackfest

Halloween Hackfest

Join Hackaday, Digi-Key, and Adafruit for a Halloween-themed contest! They want to see your crazy, creepy, ghostly, spooky, and awesome projects.

If costumes are your favorite part of Halloween, then why not dress up your outfit with some hacked upgrades? You could even design a ghoulish prop to add to your home’s Halloween decor or light up a Jack-o-lantern with LEDs. Whether it’s technical, artistic, or just plain terrifying, Hackaday wants to see your projects!

Check out the Halloween Show & Tell with Hackaday, Friday, October 29th at 1pm PT, to show off your awesome projects entered in the contest. Don’t forget to also share your projects on social media and use the #HalloweenHackfest!

Hackaday and Digi-Key have partnered on this Halloween-themed contest to offer three winners an online shopping spree to the Digi-Key warehouse! – Hackaday and hackaday.io.

CircuitPython Deep Dive Stream with Scott Shawcroft

Deep Dive with Scott

This week, Scott streams his work on Raspberry Pi Bare Metal programming.

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:

Catch all the episodes in the YouTube playlist.

News from around the web!

PyPortal Titano Program Launcher

A CircuitPython graphical program launcher – it can display 8 pages of 8 programs (64 entries). It builds itself from the files present at the root of the CIRCUITPY drive – GitHub and YouTube.

Air Quality

When doing a CircuitPython project, I don’t like to do the UI. Even if displayio is easy, it take time to fine tune font, graphic and location. So I took an existing learn guide and replaced the sensor. Now it is a CO2 sensor. Cows produce CO2, right? – Twitter.

Matrix Display

Blitz City DIY ported some CircuitPython ulab code from Jeff Epler to run on a 13×9 RGB matrix Rainbow, grabbing audio with an Adafruit Feather Sense – Twitter.

FM Radio Breakout

JP’s Product Pick of the Week: FM Radio Transmitter Breakout – build a pirate radio station with the Si4713 FM Radio Transmitter breakout with RDS Text support. Running with a Feather RP2040 and CircuitPython – YouTube and Twitter.

micro:bit and Python classroom tutorials

micro:bit and Python classroom tutorials for pushbuttons just released using free Parallax CYBERscope software – Parallax and Twitter.

Keychain project

UPS-Lite, ATmegaZero S2, plus an Adafruit MiniPiTFT 1.13” all make a lovely little CircuitPython gadget/keychain. Will be working on design a keychain case for it, a keychain able to send HID keystrokes, mouse moves, and make a little bad boy lol (can connect WiFi too) – Twitter.

Menu

Here is the above project in a 3D printed case running app launcher software similar to that noted above for the PyPortal – Twitter.

Memory-saving tips for CircuitPython

Guide: Memory-saving tips for CircuitPython – Adafruit Learning System.

An HTTP server for CircuitPython

An HTTP server for CircuitPython, using the wifi/socketpool libraries instead of SPI – GitHub and Reddit.

Keybow with the AtmegaZero ESP32-S2

A Pimoroni Keybow with the AtmegaZero ESP32-S2. Coded with CircuitPython – Twitter.

Using a Servo

CircuitPython School Lesson 16 – Motoring with Servo Motors – YouTube.

Two-player pong

Two-player pong in MicroPython on a Raspberry Pi Pico – Twitter.

Can you edit Mu in Mu..?

Can you edit Mu in Mu..? – YouTube.

11 Alternatives to the Raspberry Pi Pico

11 Alternatives to the Raspberry Pi Pico (using the same RP2040 processor) – Make Use Of and Adafruit Blog.

Python Game

A simple Python game to introduce machine learning to students aged 11+ by teaching a computer number bonds to 10. No magic in the cloud, no logins, simple to set up, it’s all in the code – blogmywiki and Twitter.

Ultimate Python Cheat Sheet

Ultimate Python Cheat Sheet – Dev.

Python Community Show

Real Python interviews Dustin Ingram, a developer advocate at Google and a director of the PSF. In this interview, they discuss how Google’s use of Python might differ from others, maintaining PyPI, Dustin’s love of PyCons and cooking, and more – Real Python.

Morse Code

Python Morse code projects for the BBC micro:bit – GitHub and Twitter.

Case/Switch

Case / Switch Comes to Python in 3.10 – Mouse vs. Python.

Learning Python Through Illustrated Stories

Learning Python Through Illustrated Stories on the The Real Python Podcast – Real Python.

PSF

Work with Python packaging? There are going to be some packaging-specific questions on this year’s Python Developer Survey; read and comment on the draft questions – python.org.

Tereza Iofciu Awarded the PSF Community Service Award for Q1 2021 – PSF Blog.

Nixie Clock

A Raspberry Pi Atomic Nixie Clock – GitHub.

Exciting New Ways To Be Told That Your Python Code is Bad – Something Something Programming.

PyDev of the Week: Tonya Sims from Mouse vs Python

CircuitPython Weekly for September 20th, 2021 on YouTube and notes

#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Python Cheat Sheets.

Coming soon

VL53LCX STEMMA QT Breakout

Adafruit is spinning up a new STEMMA QT connected design for the VL53L5CX time of flight sensor. It has up to 4 meter ranging and also has ‘depth mapping’ of 4×4 or 8×8, which is a first for ToF sensors – Adafruit Blog.

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:

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

How to Scan and Detect I2C Addresses from Carter Nelson

UART Communication Between Two CircuitPython Boards from Dylan Herrada

CircuitPython Project Bundle

BundleFly

When you get to the CircuitPython code section of an Adafruit Learn Guide, sometimes things can get a bit complicated. You not only have the code you need to upload to your device, but you likely also need to add some libraries that the code requires to run. This involved downloading all the libraries, digging through to find the ones you need, and copying them to your device. That was only the beginning on some projects, as those that include images and/or sound files required further downloading and copying of files. But, not anymore!

Now, with Project Bundles, you can download all the necessary code, libraries and, if needed, asset files with one click! We automatically check which libraries are required for the project and bundle them up for you. No more digging through a huge list of libraries to find the ones you need, or fiddling with looking for other files or dependencies. Download the Project Bundle, copy the contents to your device, and your code will simply work. We wanted to make this the easiest way to get a project working, regardless of whether you’re a beginner or an expert. We’ll also be adding this feature to popular IDEs as an add-on. Try it out with any Circuit Python guide on the Adafruit Learning System. Just look for the ‘Download Project Bundle’ button on the code page.

To download and use a Project Bundle:

In the Learning System – above any embedded code in a guide in the Adafruit Learn System, you’ll find a Download Project Bundle button.

Project Bundle download button

Click the button to download the Project Bundle zip.

Project Bundle zip downloaded

Open the Project Bundle zip to find the example code, all necessary libraries, and, if available, any images, sounds, etc.

Project Bundle unzipped

Simply copy all the files over to your CIRCUITPY drive, and you’re ready to go!

If you run into any problems or bugs, or would like to submit feedback, please file an issue on the Adafruit Learning System Guides GitHub repo.

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 channel 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 333!

Updated Libraries!

Here’s this week’s updated CircuitPython libraries:

What’s the team up to this week?

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

Dan

I fixed a few more minor issues for 7.0.0 final, and released 7.0.0-rc.2. 7.0.0-rc.2 turned out to have a regression for RP2040 boards, and we are releasing an rc.3 to fix that.

Jeff

I’m still getting back into the swing of things after a vacation (you may have read about my visit to Adafruit HQ in last week’s issue). Today was working on preparing a version of a rather subtle pair of bugfixes to the garbage collector to go into MicroPython, since this is code shared between the two projects.

Kattni

This week I published the Adafruit IS31FL3741 guide. It has everything you need to get started using your IS31FL3741 LED matrix driver breakout, including pinouts, examples for CircuitPython and Arduino, and downloads for resources. If you’re looking to get sparkly with your new IS31FL3741, check out this guide!

Up next are any one of the following guides: Proximity Trinkey, ANO rotary encoder, or PAM8302. Find out soon which one!

Melissa

This past week, I worked on fixing up some Raspberry Pi related issues including fixing an issue with some displays where the backlight wasn’t turning on automatically leaving a black display. It had been a while since I had worked on the eInk display guides, so I created another one for 2.9” eInk displays. You can check it out at here.

Scott

This last week has had three threads I’ve been working on. First, I wrapped up the BLE workflow changes to add modification times and file moving. Second, I started reworking CircuitPython in preparation for expanding ESP support to the ESP32-S3. Unexpected Maker has picked up that work from me and is continuing it. The latest thing I’m working on is bringing TinyUSB support to the Raspberry Pi 4. This will be a building block for CircuitPython on the Raspberry Pi 4. I hope it will also extend to the whole Raspberry Pi range without too much trouble once I have it working on one chip. I believe the USB peripheral itself is pretty similar across the whole line. The CPUs change more often.

Upcoming events!

PyGotham 2021

PyGotham is a New York City based, eclectic, Py-centric conference covering many topics. PyGotham TV 2021 is an online-only edition of PyGotham being held October 1-2, 2021. The call for proposals is here. Registration is here.

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 Discord or on Twitter with hashtag #CircuitPython.

Latest releases

CircuitPython’s stable release is 7.0.0. New to CircuitPython? Start with our Welcome to CircuitPython Guide.

20210920 is the latest CircuitPython library bundle.

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

3.9.7 is the latest Python release. The latest pre-release version is 3.10.0rc2.

2,582 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

Lower Power Consumption on nRF52840 During delay() – Freefall Data Systems LLC – Adafruit Jobs Board.

30,892 thanks!

30,892 THANKS

Adafruit Discord

The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 30,892 humans, thank you! Adafruit believes Discord offers a unique way for CircuitPython folks to connect. Join today at https://adafru.it/discord.

ICYMI – In case you missed it

ICYMI

The wonderful world of Python on hardware! This is our Python video-newsletter-podcast! The news comes from the Python community, Discord, Adafruit communities and more and is reviewed on ASK an ENGINEER Wednesdays. The complete Python on Hardware weekly videocast playlist is here.

This video podcast is on iTunes, YouTube, IGTV (Instagram TV), and XML.

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.

And lastly, we are working up a one-spot destination for all things podcast-able here – podcasts.adafruit.com

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 the leading manufacturer in STEAM electronics, Adafruit Industries, to create a coding course, “Learn Hardware Programming with CircuitPython”. The course is now available in the Codecademy catalog.

Python is a highly versatile, easy to learn programming language that a wide range of people, from visual effects artists in Hollywood to mission control at NASA, use to quickly solve problems. But you don’t need to be a rocket scientist to accomplish amazing things with it. This new course introduces programmers to Python by way of a microcontroller — CircuitPython — which is a Python-based programming language optimized for use on hardware.

CircuitPython’s hardware-ready design makes it easier than ever to program a variety of single-board computers, and this course gets you from no experience to working prototype faster than ever before. Codecademy’s interactive learning environment, combined with Adafruit’s highly rated Circuit Playground Express, present aspiring hardware hackers with a never-before-seen opportunity to learn hardware programming seamlessly online.

Whether for those who are new to programming, or for those who want to expand their skill set to include physical computing, this course will have students getting familiar with Python and creating incredible projects along the way. By the end, students will have built their own bike lights, drum machine, and even a moisture detector that can tell when it’s time to water a plant.

Visit Codecademy to access the Learn Hardware Programming with CircuitPython course and Adafruit to purchase a Circuit Playground Express.

Codecademy has helped more than 45 million people around the world upgrade their careers with technology skills. The company’s online interactive learning platform is widely recognized for providing an accessible, flexible, and engaging experience for beginners and experienced programmers alike. Codecademy has raised a total of $43 million from investors including Union Square Ventures, Kleiner Perkins, Index Ventures, Thrive Capital, Naspers, Yuri Milner and Richard Branson, most recently raising its $30 million Series C in July 2016.

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 our Discord or post to the forum for any further questions.