If you missed Tuesday’s Python on Microcontrollers Newsletter, here is the ICYMI (In case you missed it) version.
To never miss another issue, subscribe now! – You’ll get one terrific newsletter each Tuesday (before this post). Over 8,674 subscribers worldwide!
The next newsletter goes out in a week and being subscribed the best way to keep up with all things Python for hardware. No spam, no selling lists, leave any time.
Welcome to the latest Python on Microcontrollers newsletter, brought you by the community! This issue marks some milestones in both Python and CircuitPython. And the plethora of projects, many with the Raspberry Pi Pico, continues.
CircuitPython Reaches 300 Libraries
We reached 300 libraries for CircuitPython this week. This includes Adafruit-developed libraries and community contributed libraries. Thank you to the community for all the contributions to both new and existing libraries – Adafruit Blog.
Python Turns 30 Years Old
The father of Python, Guido van Rossum, lays out the dates – Twitter.
CircuitPython 2021 Round Up
A round-up of all the CircuitPython 2021 responses received from the community – Adafruit Blog.
PyCascades, the regional PyCon in the Pacific Northwest, concluded Sunday – PyCascades.
Videos of the talks have started going up and will continue to this week – YouTube.
CircuitPython Deep Dive Stream with Scott Shawcroft
This week, Jeff joins Scott to chat RP2040 PIO and CircuitPython audio.
You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.
A New E-mail for Newsletter Submissions
A new email address has been created for folks to send in newsworthy information to the editorial team. If you have news, an event, a project, and/or other information, send in an email to the address below. You can still put in a Pull Request for the next newsletter in the GitHub repo.
News from around the web!
Putting CircuitPython on custom SAMD21 powered “USB-C Plug” testers – Twitter.
Using CircuitPython code on the Raspberry Pi Pico to pull a prank – Twitter.
Making a touch controlled piano with CircuitPython and Scratch – Google Docs.
Send messages to an LED Matrix using CircuitPython – YouTube.
Using the Low Cost Raspberry Pi Pico RP2040 Microcontroller with CircuitPython – YouTube.
How to Set Up and Use MicroPython on the Raspberry Pi Pico – howchoo.
NeoPixel fireflies jar with Raspberry Pi Pico and MicroPython – Raspberry Pi Blog.
The dinkyOSC interface experiments on the a Raspberry Pi Pico in MicroPython. Made with some 2 state slider/pot objects (incremental or absolute representation of the gpio input) and a highlight/select element to groups of obs – Twitter.
How To Write Doctests in Python. Documentation and testing are core components of every productive software development process. A programmer can be well served by first writing documentation and then tests, before finally writing code. – Digital Ocean.
Python Concurrency: The Tricky Bits. An exploration of threads, processes, and coroutines in Python, with interesting examples that illuminate the differences between each – Hamel.dev.
Python Programming And Numerical Methods: A Guide For Engineers And Scientists. This book introduces programming to students from a wide range of backgrounds and gives them programming and mathematical tools that will be useful throughout their careers – Berkeley.edu.
Building a sonar sensor array with Arduino and Python – towards data science.
F´: A Flight-Proven, Multi-Platform, Open-Source Flight Software Framework. It is tailored but not limited to small-scale spaceflight systems such as CubeSats, SmallSats, and instruments – GitHub.
Get HID Report Descriptors with “win-hid-dump” and “mac-hid-dump” – todbot blog.
PyAnchor – check the HTTP response on all links on a page – pypi.
PyDev of the week: Mariano Anaya on Mouse vs Python
More user made Feather RP2040 boards seen – fans of the Adafruit Feather board format continue to build boards based on the specifications Adafruit has released on GitHub under Creative Commons Share-alike license. Here is another pair, made by Guido Burger. – Twitter.
You can sign up for notification when Adafruit has them in stock – Adafruit.
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 3 new boards added!
Looking to add a new board to CircuitPython? It’s highly encouraged! Adafruit has four guides to help you do so:
- How to Add a New Board to CircuitPython
- How to add a New Board to the circuitpython.org website
- Adding a Single Board Computer to PlatformDetect for Blinka
- Adding a Single Board Computer to Blinka
New Learn Guides!
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!
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 300!
Here’s this week’s new CircuitPython libraries:
Here’s this week’s updated CircuitPython libraries:
- This week the list was too long to include!
What’s the team up to this week?
Here’s what the CircuitPython team has been up to this past week:
I finished the secondary USB serial implementation for CircuitPython and will be submitting a PR shortly. Its API tries to be an approximate subset of the
Another CircuitPython 6.2.0 beta will be in the works soon.
I turned the corner on PIO and have implemented something useful—the ability to control 8 strands of NeoPixels in parallel using the PIO peripheral, 3 GPIO pins, and a ‘595 “shift register”. Advantages of this feature include transmitting data to the NeoPixels in less time, and more freedom in how you wire multiple NeoPixel strips – in serial, or now in parallel. Once incorporated in CircuitPython, it will work similarly to Pixelbuf and can automatically be used by the Animation library.
This week I was able to get a bit of miscellaneous done including blogging some guide releases, fixing some guide page layouts, and updating some old code for the latest CircuitPython release. I added two concepts to the Welcome to CircuitPython guide – the CIRCUITPY filesystem use and what happens when your code is done running. I’m now working on finalising the Getting Started with Raspberry Pi Pico and CircuitPython guide with two more pages: Potentiometer and PWM LED, and Data Logger. Those pages should be live soon. Next up – updating the MLX90393 guide for the STEMMA QT revision. Keep an eye out for those over the next week!
This past week I worked on some of the persistent I2C errors that have been affecting the ESP32-S2 port, which cause either mysterious crashes or conflicts with WiFi, depending on how the peripheral is reset. I also got started on putting together control tests and other infrastructure for the low power modes on the STM32 port, along with a number of miscellaneous minor bugfixes and PR adjustments.
This past week I worked on several miscellaneous GitHub issues including fixing some of the Raspberry Pi installer scripts and attempting to get the ST7789 display driver working. While the driver did compile on the newer headers, it was still experiencing some drawing issues.
Next I wrote up a guide on the 1.54” E-Ink display. I was working on a mega guide a while ago, but it really makes sense to split the displays up into several guides. You can check out the E-Ink display guide.
This week I’m wrapping with PIO improvements that I’ve made for I2S audio playback support. I’ve gotten it working and will PR it by the end of this week. (I’m hoping to do PDM microphone input as well.)
Next week I hope to get UART going on the RP2040 and
rotaryio. Folks have been eagerly awaiting both so I hope I can knock them out.
The 2021 Open Hardware summit will be held online, Friday April 9, 2021. The summit will be livestreamed, but ticket holders will have access to additional interactive portions of the summit like meet-and-greets, workshops, and sponsor booths. Find details, including ticket and sponsorship information at 2021.oshwa.org – OSHWA.
The online GeoPython conference is focused on Python and Geo, its toolkits and applications. April 22-23, 2021 – https://2021.geopython.net/.
PyCon US, the annual official annual Python gathering, has been announced to be held online May 12-15, 2021. Sprints will be held May 16-18, 2021. More information and signups at https://us.pycon.org/2021/
EuroPython, the largest conference for the Python programming language in Europe, has been announced to be held online July 26 – August 1, 2021. More information at https://ep2021.europython.eu/
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.
20210222 is the latest CircuitPython library bundle.
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 – Find a dream job, find great candidates!
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, Microcenter, Raspberry Pi and more.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 27,582 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.
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.
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.
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.