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. Jumping into the fray:
Last week, this newsletter finally exceeded 9,000 subscribers. Thanks to everyone who subscribes and contributes to news and information about Python on microcontrollers – Anne Barela, editor, and Adafruit, sponsor.
CircuitPython Developer Jeff Epler Visits Adafruit
CircuitPython core developer Jeff Epler (jepler/@jeffepler) visited Adafruit HQ last week! We all have to go visit HQ, stare at the pick and place machines, and awe at the hardware manufacturing which is the yang to the CircuitPython yin.
Catch Jeff’s appearances on Adafruit’s Wednesday programs: Show and Tell and Ask an Engineer.
Study about the impact of open source software and hardware on technological independence, competitiveness and innovation in the EU economy
This study aims to investigate the economic impact of Open Source Software and Hardware on the EU economy. Open Source Software (OSS) has become mainstream across all sectors of the software industry over the past decade. Conversely, the level of maturity of Open Source Hardware (OSH) currently appears far lower. However, the business ecosystem for OSH is developing fast. If OSH is to follow the same development as OSS, it could constitute a cornerstone of the future Internet of Things (IoT), the future of computing and the digital transformation of the European industry at the end of the digital decade.
The objective of the study was to investigate and quantify the economic impact of OSS and OSH on the European economy. The study also identified strengths, weaknesses, opportunities and challenges of open source in relevant ICT policies, such as cybersecurity, artificial intelligence (AI), digitizing European industry, the connected car, high performance computing, big data, distributed ledger technologies, and more.
See the Summary and the Report (pdf).
Push the Button – a Handy Bluetooth Button
A wonderful collaboration between makers Sophy Wong and Liz/Blitz City DIY has produced the handheld “Push the Button” box. Inside the box is an Adafruit Feather nRF52840 Express board programmed in CircuitPython to take the button input and send commands out via Bluetooth Low Energy (BLE). When the box is paired with a mobile phone playing songs, you have a complete solution for controlling your tunes without having to touch the phone.
Sophy designed the case and cover and Liz the CircuitPython code on an Adafruit Bluefruit Feather. The code is available on GitHub.
You can see Sophy’s video on the case design and the Blitz City DIY video on the electronics design – Adafruit Blog.
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 décor 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.
Python Language Reference Sheets
Aaron has crafted several reference sheets listing methods for handling data in Python.
There are currently three reference sheets for Python: Dictionary Methods, List Methods, and String Methods – GitHub and Twitter.
Bluetooth 5.3 Specification Switches to More Inclusive Terminology
Last month, the Bluetooth Special Interest Group (SIG) released an Appropriate Language Mapping Table v6 document describing the changes to the Bluetooth 5.3 Specification.
From the introduction – Adafruit Blog.
For more than 20 years, the Bluetooth SIG has brought together a global community of innovators to build a more connected world. We are committed to continuing to foster a global community characterized by inclusion and mutual respect.
In the pursuit of this, starting in August 2020, certain terms that were identified as inappropriate are now being replaced. The original terms may still exist in specifications that are already adopted. However, updates to adopted specifications and all new specifications use replacement terms. This document contains tables that map original and replacement terms.
To match the replaced term in a newer adopted specification with the original term in an older adopted specification, locate the mapping table that corresponds to the applicable Bluetooth technology.
CircuitPython Features Ported to Arduino
The CircuitPython library Adafruit_BusIO has been ported to Arduino for prettier, easier-to-maintain libraries – Adafruit Blog.
CircuitPython Deep Dive Stream with Scott Shawcroft
This week, Scott streams his work on ESP32-S3 and updating the IDF.
You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.
John Park’s CircuitPython Parsec:
Catch all the episodes in the YouTube playlist.
News from around the web!
Wrapping up the testing of a CO2 + AQI (particulate) monitor. Uses SCD-30 and PMSA003I sensors. The toughest part is figuring out how to take a decent photo of the LCD display – Twitter.
Controlling the Elgato Key Light Air using the ATMegaZero ESP32-S2 & CircuitPython – YouTube and Twitter.
Send love letters with Feathers (programmed in CircuitPython) and a beautiful Transmutable Swan case – YouTube, GitHub and Adafruit Blog.
Converting an inexpensive white LED fixture to use colorful NeoPixels powered by an Adafruit QT Py and CircuitPython – Twitter Thread.
cpyinaturalist is a CircuitPython library for the iNaturalist API for CircuitPython 6. No API key is needed – Twitter and GitHub.
Github Codespaces vs. Gitpod: Choosing the Best Online Code Editor – k and Adafruit Blog.
Adding a true random number generator (TRNG) to CircuitPython using LoRa – kongduino.
An RGB LED NeoPixel cube circuit sculpture with CircuitPython – Adafruit Blog, hackaday.io and YouTube.
Raspberry Pi displays album art on an Adafruit LED matrix – Raspberry Pi Blog and Twitter.
The open-source Python web scrapers that feed the Los Angeles Times California coronavirus tracker – GitHub and Twitter.
And running in time for PyconAU. Of course running MicroPython on a Raspberry PI Pico. More animations are now required – Twitter.
ADC on Raspberry Pi Pico using MicroPython: Reading ADC Value and Displaying on OLED Display Module – Circuit Digest.
How to debug a MicroPython program – Tech Explorations.
An introductory video of MicroPython and micro:bit in Japanese – Twitter and YouTube.
@roboruchka came to the idea of making this Robot SpongeBob. See how M5Stack Core2 for AWS, which comes with microphone and speaker, could be done simplest and programs with codeles. MicroPython based UIFlow – Twitter.
Reading out a Flow Meter/Water Flow Sensor via Python on the Raspberry Pi – Raspberry Pi Tutorials.
Python based scripts for obtaining system information from Linux – Python Awesome and GitHub.
How Long Does It Take to Learn Python? – Real Python.
Learn Python through Nursery Rhymes & Fairy Tales – Kickstarter.
Getting Started with nRF Connect for Visual Studio Code – Rajeev Piyare and Twitter.
Simple machine learning abstraction for kids – blogmywiki.
CircuitPython Weekly for September 7th, 2021 on YouTube and with notes
CircuitPython Weekly for September 13th, 2021 on YouTube and with notes
PyDev of the Week: Nikitta Sobolev – Mouse vs. Python.
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? CircuitPython 7.0.0 Release Candidate 1.
A favorite USB-to-Serial chip, the CP2014, is sorta-end of life and hard-to-find. The CP2012N is the recommended replacement. The ‘2N is soooo similar, with almost the same pinout- but you need two resistors on the VBus line for USB detection – Twitter and Adafruit Blog.
The new Portenta H7 Lite has been designed for developers who want the computational power of Arduino Pro’s Portenta H7, but don’t need the video output, additional security features or connectivity. The documentation states it can run MicroPython via an interpreter – Arduino.
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 forthcoming.
Looking to add a new board to CircuitPython? It’s highly encouraged! Adafruit has four guides to help you do so:
New Learn Guides!
Programmable Wireless BLE Gesture Mouse from Liz Clark
Adafruit 1.69” 280×240 Round Rectangle Color IPS TFT Display from Melissa LeBlanc-Williams
Updated Learn Guides!
Adafruit INA219 Current Sensor Breakout from Kattni
CircuitPython Project Bundle
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.
Click the button to download the Project Bundle zip.
Open the Project Bundle zip to find the example code, all necessary libraries, and, if available, any images, sounds, etc.
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 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!
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!
I am back from vacation, working on the final few things we need to finish for 7.0.0 final. I fixed an RP2040 I2SOut issue, and thought there was another software audio quality issue, but it turned out to be a wiring/grounding problem. The moral is to try the simplest possible wiring before concluding the issue is software.
I’ve been on vacation, but that vacation included a trip to Adafruit Headquarters. You may have seen me on Ask an Engineer. Next week, I’ll return to my regular work schedule and continue with anything that needs fixing as we approach 7.0.0.
This past week was a short week for me. I helped Melissa out with the 1.69” Round Rectangle TFT display guide. I finished updating the INA219 guide for the STEMMA QT revision of the board. The QT version has been out for a while, but the guide was never updated. Now there are pinouts, new wiring diagrams, and new downloads resources for the current version of the board.
I found a bug in CircuitPython for RP2040 regarding WAV and tone playback using I2S while working on the I2S template. Dan already figured out a fix and it’s been merged. So, I’ll now be able to continue working on that template. The first guide it will be in is the MP3 Playback on RP2040 guide, with Pico as the example board (the testing of which is how I found the bug in the first place). Keep an eye out for that!
This past week, I worked on a fixing issues on GitHub focusing mostly on the Raspberry Pi scripts. I fixed the Pinning script which wasn’t working with more recent versions of the kernel due to a version string format change. I also worked with Kattni to get the Adafruit 1.69” 280×240 Round Rectangle Display guide written.
This week has been a mix of updating the BLE workflow to handle file modification times and bug hunting. Mainly, I got the BLE_File_Transfer library updated with the modification time support and the new move command. I’m now getting that working in core CircuitPython but I need to tweak the protocol to work better on ARM by aligning the 64-bit field better.
Bug-wise, I fixed a bug with scanning while the workflow is advertising. I copied a fix for GCC 11.2 and the nRF bootloader into CircuitPython to fix it similarly. I also released CircuitPython 7.0.0-rc.1 for testing.
As a break from BLE and bugs, I modified the CircuitPython continuous build to only build boards related to the changed files. This should reduce our usage and shorten how long it takes to get results back. See more about this on my Deep Dive from last week.
Kiwi PyCon XI, Ōtautahi Christchurch, 17th, 18th, & 19th – python.nz.
PyCon India is the largest gathering of Pythonistas in India for the Python programming language. The 13th edition of PyCon India will be taking place online from 17th September to 20th September 2021 – PyCon India 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.
CircuitPython’s stable release is 6.3.1 and its unstable release is 7.0.0-rc.1. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20210908 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,572 Stars Like CircuitPython? Star it on GitHub!
Call for help – Translating CircuitPython is now easier than ever!
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 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
Electrical Engineers & Technicians – Power Tools at Stanley Black and Decker – Adafruit Jobs Board.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 30,809 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
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
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.