View this email in your browser.
Hi everyone! Presenting 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.
Visual Studio Code now supports Raspberry Pi and ARM Chromebooks
Microsoft Visual Studio Code (VSC) is one of the most popular pieces of programming software on the planet, in part because it’s available on nearly any platform a developer might want to use it on. One missing piece was ARM support for Linux devices, but with the latest update, 1.50, that’s been rectified.
This news has two huge applications in Making and education. The first is the Raspberry Pi, running an ARM CPU and Linux and now Visual Studio Code. The Raspberry Pi 4 is a potent machine, with up to 8GB of RAM, and Visual Studio Code makes it extremely easy to leverage remote machines for more intensive workloads.
The other big application is ARM Chromebooks. It’s been possible to install Visual Studio Code on Chromebooks with Linux support for some time, but ARM-powered devices have been lacking. Now it’s official: downloading the ARM installer from the Visual Studio Code downloads page – Windows Central, Twitter and Download.
QT Py CircuitPython Tricks
QT Py Tricks is a collection of projects for using the Adafruit QT Py mini-board running CircuitPython 6. The code will also work on a Trinket M0 and other CircuitPython-compatible boards with an adjustment to board pin assignments.
Today is Ada Lovelace Day
The world celebrates Ada Lovelace Day on the 2nd Tuesday of October (today!).
Instead of lamenting all the in person gatherings and halloween hoedowns that aren’t happening this year; get into all the virtual activities coming your way!
Today Adafruit is spending the day highlighting a number of women who are pioneers in their fields and inspiring women of all ages to make their voices heard.
Finding Ada has some ways you can get involved and spread the word:
- Send a Tweet
- Update Facebook
- Add a link to FindingAda.com on LinkedIn
- Write about Ada Lovelace Day on your blog
- Email your friends and/or relevant mailing lists
- Post an item on LinkedIn or Facebook Groups
You can read more, find events, and get involved!
Adafruit carries all the technology to make Halloween fantastic! See projects tagged #ElectronicHalloween all month for Halloween related projects using Adafruit gear – Twitter and Adafruit Blog.
Adafruit is stocked and shipping orders!
Now is the best time to get orders in for your favorite products, including items for students. Science is fun and educational when using Adafruit parts and free, easy to follow tutorials in the Adafruit Learning System.
Shop Adafruit now
CircuitPython Deep Dive Stream with Scott Shawcroft
This week, Scott streams his work on the Metro iMX RT 1011 and some CircuitPython issue triage.
You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.
SparkFun Customer Survey 2020
SparkFun has released their customer satisfaction survey for this year. They are looking for a range of feedback. They are offering a chance to win a $500 SparkFun credit voucher. The survey will close at 11:45 a.m. on Tuesday, October 20th – SparkFun and Twitter.
News from around the web!
CircuitPython_DiscordBot is a very simple Discord API for CircuitPython – GitHub.
CircuitPython BlinkaBot is a fun programmable chatbot where you interface with it using the Bluefruit Connect app (Android & iOS) and communicate with a Circuit Playground Bluefruit microcontroller – GitHub and Twitter.
Display your Cisco Webex meeting status to all, with a status screen powered by an Adafruit Pyportal and Cisco Webex APIs – YouTube.
Teacher Aaron Reuland puts together the Adafruit soil sensor/ water pump from the last Adabox: “totally awesome and started dreaming up cheap and easy ways of bringing these concepts to my students.” – Twitter and note that sign-ups for the next Adabox, Adabox016, close in two days. It’s Halloween themed! – Adafruit.
Buttons, the Adafruit Qt Py, shift registers, and some CircuitPython code and you’ve got a counter – Twitter.
Python 3.9.0 is now available, and you can already test 3.10.0a1 – Python Insider.
A wireless LED album art display – using a 32×32 LED panel, Raspberry Pi Zero WH, Adafruit RGB Matrix Bonnet and Python scripts – Hackaday and GitHub.
Accelerating Driver Development with CircuitPython – Bryan Siepert – YouTube.
Using MicroPython on a MacBook to program the ESP32-DevKitC ESP-WROOM-32 – note.com (Japanese).
Evo M51 CircuitPython Library Update: UART, SPI and I2C – you can now use I2C, SPI, and UART with Evo M51 to connect all kinds of devices – YouTube.
Matt Trentini writes: All of these boards run MicroPython – how many do you recognise? – Twitter.
A Feather to Raspberry Pi HAT converter – use HATs, Bonnets, etc. with a Feather processor board – Twitter.
An FPGA Tomu Workshop including running MicroPython on a RISC-V binary – fomu.im.
Python Tip: dicts have a useful method called setdefault that can retrieve or set a value in one statement – Twitter.
10 key takeaways from the first-ever Arm DevSummit – hackster.io.
PyDev of the Week: Sean Tibor on Mouse vs Python
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Unexpected Maker FeatherS2 – ESP32-S2.
The Metro M7 iMX RT1011 is an all-in-one Metro design and is Arduino UNO shaped, so it works with shields. It features an iMX RT1011 500 MHz processor with 128K of RAM and QSPI memory. Even though it doesn’t have a ton of RAM, it’s got a nice speediness to it. Currently testing out CircuitPython 6 with the AirLift WiFi co-processor to get data from the interwebs and display it on an OLED. The OLED plugs right into the Stemma QT connector so it’s really easy to get sensors and displays attached!
Out soon, more info – Blog and YouTube.
Here’s a CLUE about a design Adafruit will be working on soon. This little module contains an ESP32-S2 chip with 4 MB of built in FLASH memory, with native USB and WiFi support, it could make for a great little WiFi sensor driver – Twitter.
New Boards Supported by CircuitPython
The number of supported microcontrollers and Single Board Computers (SBC) keeps growing!
This week, no new boards were added to CircuitPython.org, but more are in development.
Looking for adding a new board to CircuitPython? It’s highly encouraged! Adafruit has four guides to help you do so:
New Learn Guides!
IoT Twitter Listener Party Parrot from Liz Clark
Adafruit BrainCraft HAT – Easy Machine Learning for Raspberry Pi from Melissa LeBlanc-Williams
LED Matrix Display for Bitmap Pixel Art from John Park
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 275!
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!
Over the last week, I worked on filling out the MCP2515 CircuitPython library and having it ready for release after a few tweaks get the OK from Jeff. I was also able to do some more testing of the prototype CAN FeatherWing and was able to successfully snoop on traffic between an ODB dongle and my car! There is still work to be done to allow for decoding the higher level protocols being used, but it’s a start!
I also wrote a CircuitPython library for the TLA2024 4-channel 12-bit ADC from TI. This is an adorable little chip that packs a good amount of capability in a small package. In addition to single-ended measurements of each of the four channels, it supports differential measurement between several different combinations of inputs. And it’s relatively inexpensive! Simple to use, capable, small and inexpensive, this little helper can add digital measurement of analog signals in existing and new projects with minimal hassle or expense.
We now have a second canio implementation merged into the core, this time for the STM32F405 feather and other boards featuring the STM32F405 microcontroller. To use it, you also need an external CAN transceiver chip such as the NXP TJA1051 as well as other device(s) that also talk a CAN protocol.
Aside from my work on CAN bus, I’ve also been fixing bugs in CircuitPython and moving us closer to a stable release of version 6. In particular, another Pull Request I made this week was to fix the crashes users experienced with RGBMatrix in 6.0.0.alpha.1. This was quickly followed by the beta.2 release.
This week I updated of the the LED matrix guides to feature the new Matrix Portal. Search the Learn system for Matrix Portal to find a number of projects to get you started. I also added a CircuitPython page to the 128×64 OLED FeatherWing guide as we now have SH1107 support in CircuitPython.
I soldered up a QT Py Haxpress – the first time I’ve ever soldered a chip or really anything that tiny. Bonus points: it works!
I am working on testing the LED Animation library with the Haxpress, which has been successful so far, running individual animations separately. I tested using the LED Animation library with the base QT Py and, unfortunately, the library doesn’t fit, so it’s not an option.
I’m writing up a QT Py and NeoPixels guide to get you started with using LEDs on your tiny new board. It will cover wiring, example code for using NeoPixels with your base QT Py, and a section on using the LED Animation library with the QT Py Haxpress. Keep an eye out for that!
This past week I added the AnalogIO functions to the ESP32-S2 port, the Analog to Digital converter (ADC) and Digital to Analog converter (DAC) respectively. The ADC was definitely the trickier of the two – most ADCs on embedded boards are not especially accurate, and the ESP32-S2 in particular has some serious issues when using raw data directly. Un-modified, the ADC’s range of voltage readings has several non-linear regions, and has difficulty hitting the extreme ends of the range, 0 and 3.3V (known as “rail to rail” readings).
To get around this, Espressif’s IoT Development Framework (known as the ESP-IDF) contains software to automatically compensate and correct issues in the ADC. However, this particular module wasn’t available in the version of the ESP-IDF we were using, which necessitated a complicated update involving a lot of header file changes and binary searching of commits to find an IDF version that wouldn’t break USB. Luckily it all seems more or less dealt with now and we should have Analog capability on the ESP32 by the end of the week.
Meanwhile, much as it was on the STM32, the DAC additions were so simple they didn’t even require notes, much less debugging. Something about DACs… their implementation always seems as proportionally easy as the ADCs are annoying.
And finally, for the STM32, we’ve started to mark the F4 series as stable in releases, alongside the SAMD and nRF series of SoCs. STM32 support has been maturing for over a year now, so the guide for the Feather F405 has also been updated to reflect the new modules we support and incorporate user feedback. This month, I’ll be revisiting some of the final modules that remain unsupported on ST, such as TouchIO and RotaryIO, to see if we can’t get those wrapped up as well.
This past week, I worked on finishing up the BrainCraft HAT guide. It was started by Ladyada, so I went through and tested the parts she wrote and added more to the guide.
I also worked on updating the MatrixPortal library to support more hardware such as the RGB Matrix FeatherWings. Even though there aren’t enough pins to use the Airlift FeatherWing, you can still use the automatic initialization of the Matrix and I’ve heard with some creative wiring, you can also get the Airlift breakout to work with it.
This week I’ve focused on getting the iMX RT 1011 Metro debugged and working. The Metro ESP32-S2 is going as well. It’s exciting to prep new platforms for CircuitPython and see Adafruit release hardware for it.
One side project I did was a SPI Flash command analyzer for Saleae Logic 2.
Next week, I’ll be trying to squash the remaining bugs for 6.0.0’s stable release and collaborating on deep sleep support.
Hacktoberfest® is a celebration of Open Source Softare, created by DigitalOcean. It’s open to everyone around the globe. Whether you’re a developer, student learning to code, event host, or company of any size, you can help drive growth of open source and make positive contributions to an ever-growing community. All backgrounds and skill levels are encouraged to complete the challenge. You can win a t-shirt or plant a tree.
Pull requests can be made in any GitHub-hosted repositories/projects. You can sign up anytime between October 1 and October 31. More – Hacktoberfest.
The Hackaday Remoticon will take place everywhere November 6th – 8th, 2020. It’s a weekend packed with workshops about hardware creation, held virtually for all to enjoy – Hackaday.
PyCon Sweden 2020 will be held 12-13 of November 2020 online – PyCon Sweden.
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 5.3.1 and its unstable release is 6.0.0-beta.2. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20201010 is the latest CircuitPython library bundle.
v1.13 is the latest MicroPython release. Documentation for it is here.
3.9.0 is the latest Python release. The latest pre-release version is 3.10.0a1.
1865 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 is for folks posting their skills (including CircuitPython) and companies looking for talented makers. The job highlight of the week:
Museum Tech Supervisor – MICRO
MICRO in New York is looking for a Museum Tech Supervisor who will own and manage some of the most exciting challenges in new museum design. They will be responsible for building and engineering MICRO’s growing fleet of six-foot tall museums.
Do you have a background in highly detailed fabrication? Have you worked in museum exhibitry, model making, or prop building? If you’re a hyper-organized, self-motivated doer who loves to tinker and solve problems and wants to work with beautiful museums, the Museum Tech Supervisor position at MICRO is your dream job – Adafruit Jobs Board.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 25,198 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.
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.