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,394 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.
Happy New Year! It’s the latest Python for 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. Here’s the latest:
Where should CircuitPython go in 2021?
As 2021 starts, let’s take some time to share our goals for CircuitPython in 2021. Just like past years (full summary 2019 and 2020), we’d like everyone in the CircuitPython community to contribute by posting their thoughts to some public place on the Internet.
We want to hear from you. When you post, please add #CircuitPython2021 and email firstname.lastname@example.org to let us know about your post so we can blog it up here.
The post can cover any topic related to CircuitPython. Here are some specific topics you could address:
- Projects you’d like to build
- Things you think could be easier
- Additional community programs
- Weekly meeting
- Core CircuitPython features
- Core CPython libraries to add
- Additional microcontroller platforms
- New boards to support
- Library improvements
- Additional libraries
- Package management
- Documentation improvements
- Ecosystem needs
- Tooling enhancements
- Github Actions
- The bootloader
These, of course, are just ideas to start from. Please us know about all ideas you have for CircuitPython.
We, as a community, can use these ideas to coordinate and collaborate to make CircuitPython even better in 2021. Let’s use these ideas to spark further discussion and brainstorming. Keep an eye on the Adafruit blog and join the discussion on the Adafruit Discord.
More – Adafruit Blog
There are so many new pieces of hardware under development, we’re featuring them here. As with all things in the Top Secret category, these things are being conceptualized – release dates are not available. Keep an eye out on Adafruit New Products to watch for their possible introduction.
SAMD21 NeoPixel USB Stick – USB “TRINKET” – Adafruit Blog.
We saw this nifty chip on the nicechips sub-reddit a few months ago and got a few samples. Recently we were thinking how we could really use this chip in a more complex design that could use a GPIO expander. So…it’s time to make a STEMMA breakout! This I2C expander driver has 16 constant-current LED drivers and I/O pins. It seems pretty straightforward, just watch out for the address line ‘default pin values’ and the reset pin’s internal pulldown. This breakout is looooooong so that you get every IO pin plus a matching ground pad.
STEMMA AW9523 – Twitter.
An ESP32-S2 based CLUE board – Adafruit Blog.
We’ve been putting off getting a Feather board designed using the ESP32-S2… The ESP32-S2 mini modules make an easy job of this board. It’s very compact and the pins lined up perfectly (don’t you love when that happens) so that the IO numbers match the Feather pinout we prefer. We even got the high speed SPI pins on the SPI port, and the two DAC pins on A0 and A1. Given that we don’t need a USB to serial converter, and flash memory is built into the ‘mini, we had lots of space left in the middle. We ended up deciding on putting in a LC709203 battery monitor and a BMx280 sensor footprint that can place DPS310, BMP280 or BME280. For adding other sensors, we have a vertical-style STEMMA QT in the center. The current mini modules have 4Mbyte flash and no PSRAM, but given the existence of ESP32-S2FN4R2, we hope it’ll eventually happen.
Feather ESP32-S2 – Twitter.
Espressif Systems Announces the ESP32-S3 Microcontroller
The ESP32-S3 features a dual-core LX7 32-bit processor operating up to 240 MHz. (The previous -S2 was single-core.) On-chip is 512 KB of SRAM and 384 KB of RAM with support for octal SPI to connect to external memory devices. The RF capabilities include WiFi 2.4 GHz b/g/n, legacy Bluetooth, and Bluetooth Low-Energy 5.0. Artificial Intelligence applications can take advantage of the ESP32-S3’s vector instructions in the MCU. These provide acceleration for neural networks and signal processing loads.
For peripherals, the ESP32-S3 supports up to 44 programmable GPIOs for GPIOs, SPI, I2S, I2C, PWM, RMT, ADC, DAC, UART, SD/MMC host, and TWAI.
CircuitPython Deep Dive Stream with Scott Shawcroft
With New Year’s, Scott was off – expect Deep Dive to resume this Friday!
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!
Mention of CircuitPython in the book Practical IoT Hacking – Twitter.
Quico is the new name of the game console developed around the Adafruit Matrix Portal microcontroller board and an RGB LED Matrix display. A new Sound Shield uses a SN76489 chip on a custom shield board for the Matrix Portal – retro.moe.
Multi-mode Game of Life to show variations of the GoL, including viral contagion. Metro M4 and 16×32 RGB Matrix, running CircuitPython – Molecularist.
A keyboard designed as a FeatherWing – Twitter thread.
A CircuitPython Star Wars Pixel Tree Topper – Twitter.
The Virus in 39 LEDs – red, yellow, orange (and limiting resistors); NeoPixel Jewel (7 pixel); rainbow PLA icosahedron (model by @Clockspring3D), LiPo battery, slide switch, and orchestrated in CircuitPython by an Adafruit ItsyBitsy M0 with battery backpack – Molecularist.
Two pixel Christmas light display in action. Top is 300 Adafruit NeoPixels powered by a Feather M4 Express with CircuitPython. The bottom is two 64×32 matrices chained together running Arduino with the Adafruit protomatter library – Twitter.
Circuitpython driver library for AT42QT1070 Capacitive Touch Sensor – GitHub.
FPGA hacking: MicroPython on Vexriscv on up5k on an ice40 Feather – Twitter Thread.
Building an E-Ink Calendar, and a UI Toolkit along the way with MicroPython and 0Auth2 – rahulrav.com.
Raspberry Pi HQ Camera: Autofocus for the Telephoto Lens (JiJi). The M5Stack application is programmed in MicroPython – LeMaRiva.
Python behind the scenes: how Python attributes work – tenthousandmeters.
PyDev of the Week: Froilán Irizarry Rivera on Mouse vs Python
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.
No new boards were added this holiday week but there are some in development, stay tuned.
Looking for adding 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 289!
Here’s this week’s new CircuitPython 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!
The last two weeks have been fairly short for me due to schedule changes and the holidays. With that in mind, I’ve been largely focused on getting existing projects out the door as well as documentation and guide work. While it’s already into January, as I write this it’s the first work day of 2021 so I thought to reflect on the past year. It’s ended up being overlong for this format, and I think it’s important enough that I’ve split it off into a blog post. As I think the message is an important and with any luck a hopeful one.
Thanks all for being a part of my community and everything you’ve done to help in 2020.
I prepared and released CircuitPython 6.0.1. It fixed a significant BLE and FrequencyIO regressions. We also included Scott’s JSON speedup, which is substantial.
Since then, I’ve been working on fixes clearing the issue queue for 6.1.0. There are still a number of issues that need fixing or research.
This week I released the next beta test version of CircuitPython, 6.1.0-beta.3. Thanks to contributions from Adafruit people and the community, we continue to move ESP32-S2 towards a stable release! Check it out and give us feedback.
This week was a short week for me. I worked with Bryan on the new guide for the Adafruit LTR390, and created the Fritzing object for the board. I wrote the guide for the new MPR121 QT Gator breakout. I also did some miscellaneous support on Discord and the forums.
This past week, I’ve been working on a new MagTag guide for smart flashcards, and reviewing further changes to the Socket module.
This past week I took some time off and have been enjoying the holidays.
The big thing this week was getting the PinAlarm code merged in. PinAlarm allows you to wake from sleep (light or deep) based on the logic level of an external pin. This is commonly used to wake based on button presses or based on the interrupt line from an external sensor. Keep trying the latest versions of CircuitPython for the latest and greatest.
Australia’s grassroots Free and Open Source technologies conference linux.conf.au is scheduled for January 23-25 2021 online/worldwide. Limor “Ladyada” Fried, electrical engineer and founder of Adafruit, will be one of their keynote speakers. In her keynote, Limor will discuss how Python is snaking its way into hardware, Linux single board computers and more.
FOSDEM is a free and non-commercial event organised by the community for the community. Typically hosted in Brussels, Belgium, FOSDEM 2021 is taking place online February 6-7, 2021. This year, there will be a Python Developer Room. Details – Adafruit Blog.
PyCascades is a regional PyCon in the Pacific Northwest, celebrating the west coast Python developer and user community. Held online February 19th — 21st, 2021 – PyCascades.
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.
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/
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.
20210103 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.
Job of the Week
Director of Resource Development – Python Software Foundation
The PSF is seeking to hire a Director of Resource Development to spearhead fundraising and sponsorship efforts! They are accepting resumes through January 14th, 2021 – Adafruit Jobs Board.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 26,495 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.