View this email in your browser.
Here’s 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. On to the news:
Raspberry Pi Rolls Out New Documentation Online
Until recently, documentation for the non-Pico Raspberry Pi boards was on GitHub in GitHub Markdown language. As of Monday August 9th, a new documentation site has been built and deployed directly from a documentation repository, using Github Actions, when someone pushes to the master branch. However people will mostly be working on the develop branch in the repository, which is the default branch when you take a fresh checkout, and also the branch you should target for your pull requests – Raspberry Pi Blog.
Notable Women Business Owners 2021
With its list of Notable Women Business Owners, Crain’s recognizes those who have forged their career paths and, in turn, powered New York City’s economy. Women-owned companies represent more than 40% of all registered businesses in the city and generate more than $70 billion in revenue annually. Limor Fried, founder and Engineer at Adafruit Industries, is one of 63 women recognized among 600,000 women-owned businesses in New York – Crain’s New York Business.
CircuitPython Day 2021 Recap
CircuitPython Day 2021 was held Friday August 6th with events leading up to the big day. Thanks to all who contributed to make this year a rousing success. Here is a list of events you can review:
Chip Shortage Challenges Maker Manufacturers
Two resources discussing the effects of the chip shortage:
Chip Shortage Challenges Maker Manufacturers: Adafruit, Sparkfun, and other wellsprings of amateur innovation face a new normal – IEEE Spectrum.
Video: Why There are Now So Many Shortages (It’s Not COVID) – YouTube.
Python in Visual Studio Code – August 2021 Release
The August 2021 release of the Python Extension for Visual Studio Code is now available. This includes a revamped Jupyter notebooks experience brought by the Jupyter extension, now out of preview, and an improved way of sorting Python interpreters on the selection list – Microsoft Python Devblog.
The State of Python in 2021
A review of many things happening in Python this year, It includes several sections – De Programmatica Ipsum.
- The Ecosystem
- Machine Learning and Scientific Computing
- Getting Python
- Learning Python
- Guido van Rossum
- More
The Real Python Podcast with Nina Zakharenko
The Real Python Podcast hosts Pythonista Nina Zakharenko. The topic is Start Using a Debugger With Your Python Code – Real Python Podcast.
CircuitPython Deep Dive Stream with Scott Shawcroft
Last week on CircuitPython Day, Scott answered questions, talked about fixing for CircuitPython 7.0.0 and dived deep into system on a chip datasheet diagrams.
You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.
News from around the web!
Alternate take on “Not Asteroids”™, this time using CircuitPython’s displayio.TileGrid as intended (needs a 120-tile spritesheet to get rotations near rotozoom smooth!) This is still on Adafruit FunHouse but this’ll work better on RP2040 boards which have no floating point hardware – Twitter.
Pico RGB Keypad Stream Deck with OLED monitor – Twitter and GitHub.
The DefCon 29 badge is a four-key RGB mechanical macro pad using the SAMD21 microcontroller with MicroPython – Adafruit Blog.
2 dozen NeoPixel eye controllers for a friend’s puppet production. HSV color control + a few behaviors like fire flicker, blinking, etc. What I haven’t shown them yet is that when their requirements inevitably change, it’s drag-and-drop reprogrammable – Twitter.
circuitpy-compass: Turn an Adafruit TFT Gizmo into a connected compass for Microsoft Flight Simulator – Twitter and GitHub.
A graphical International Space Station (ISS) tracker with an eInk display running on a Raspberry Pi programmed in Python – Twitter and GitHub.
A DIY Stream Deck, powered by a Raspberry Pi Pico with 3D printed enclosure and keycaps. Programmed in CircuitPython, it uses LED Sequins from Adafruit which fit perfectly behind the key switches – Twitter.
John Park’s CircuitPython Parsec: Timing Events – Adafruit Blog.
Circuit DAWG: a pure-python reader for DAWGs on CircuitPython compatible boards – Twitter and GitHub.
I’ve started working with an Adafruit Feather board to make a custom keyboard, and I’m forking a library to support CircuitPython for the predictive text!
shoom: a foot-activated webcam to show off your sneakers in a video chat! Uses CircuitPython on an Adafruit Trinket M0 – GitHub.
A 3D printed working MultiPass prop, now up to version 3. Built with CircuitPython on a Raspberry Pi Pico – Twitter.
A metronome, powered by Raspberry Pi Pico and CircuitPython – Adafruit Blog, Project Page and YouTube.
AtmegaZero boards are being packed for GroupGets distribution with CircuitPython on them – Twitter.
Pimoroni has added some more breakout drivers to their Raspberry Pi Pico C++/MicroPython libraries, including BME280/BMP280 and BME680/BME688 – Twitter and GitHub.
Python 3.10.0 is almost ready. The latest, 3.10.0rc1, is the penultimate release preview, now out – Python Insider Blog.
Best Python courses for 2021- ZDnet.
benign-key-logger: a simple, transparent, open-source key logger, written in Python, for tracking your own key usage. Originally intended as a tool for keyboard layout optimization – GitHub.
The Unknown Features of Python’s Operator Module – Martin Heinz.
5 ways for Data Scientists to Code Efficiently in Python – Analytics Vidhya.
Python – Twitter.
PyDev of the Week: Patrick Arminio on Mouse vs Python
CircuitPython Weekly Meeting for August 9th, 2021 on YouTube and notes.
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? The TI-84 Plus CE Python Edition now on sale in the US.
Coming soon
Ladyada shows a complicated to route prototype board on The Desk of Ladyada – YouTube.
Ladyada previews a prototype Feather board with an ESP32-S2 microcontroller – YouTube.
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 there are some being worked on.
Looking to add a new board to CircuitPython? It’s highly encouraged! Adafruit has four guides to help you do so:
New Learn Guides!
Dragon Drop: a CircuitPython Game for MacroPad from Phil Burgess
Minecraft Turbopad from John Park
CircuitPython Webcam with OV2640 from Jeff Epler
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 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 330!
New Libraries!
Here’s this week’s new CircuitPython libraries:
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’ve fixed some more audio bugs, and am now working on a “crackling” sound bug that is intermittent.
We are gradually knocking off the remaining issues for 7.0.0. A number remain (and we still are getting new ones), but we are making progress!
Jeff
Continuing with the camera theme, I’ve created a pull request to add QR code reading to all CircuitPython boards which have camera support. This builds on a library called quirc by Daniel Beer (@dlbeer on GitHub) that is also used by OpenMV. With the OV2640 camera, it takes the ESP32-S2 about a second to decode a simple QR code which can contain text, a URL, or other information. Scanning from an LCD computer monitor or a piece of paper works best, I haven’t had much luck scanning from my phone’s OLED screen.
Melissa
This past week I worked on a guide for using the MacroPad with Home Assistant via Remote Procedure Calls. This way a script running on the computer can make the actual networking calls and send the responses back over a serial connection. I was out sick for part of the week and was unable to finish the guide, so it should be coming soon.
Kattni
This week I spent quite a bit of time doing some cleanup around the templates, including moving code around, updating templates to use embedded examples, and using dynamically generated images to show what the CIRCUITPY drive should look like for some of the examples. I’m happy with where things are at the moment, so when I have time, I can move on to creating new templates and adding current templates to more guides.
I also updated the PCF8523 and DS3231 guides to include the STEMMA QT versions of the boards. We added those two RTC breakouts to the shop as new products (versus replacing the original version), so the guides reflect both options still being available.
Scott
This week has been another one full of bug hunting. The biggest bug I found was that the nRF UF2 bootloader wasn’t copying UF2s >1MB over correctly. This lead to a number of issues we were seeing when trying to run debug nRF builds by loading with the UF2 bootloader. This issue has been fixed in 0.6.1 of the bootloader.
I also fixed a small issue with the BLE serial output and added the ability to disable the BLE workflow from boot.py.
I’m dabbling in a number of things at the moment as folks working on the BLE workflow apps make progress and inevitably find issues.
Upcoming events!
PyConline AU will be held 10-12 September, 2021 – pyconlineau
Kiwi PyCon XI, Ōtautahi Christchurch, 17th, 18th, & 19th of September 2021 and CFP ends July 16th – python.nz.
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 6.3.0 and its unstable release is 7.0.0-alpha.5. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20210806 is the latest CircuitPython library bundle.
v1.16 is the latest MicroPython release. Documentation for it is here.
3.9.6 is the latest Python release. The latest pre-release version is 3.10.0rc1.
2,535 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
Seeking an influencer and content creator Rockstar at Digi-Key Electronics – Adafruit Jobs Board.
30,352 thanks!
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 30,352 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
Codecademy “Learn Hardware Programming with 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.