View this email in your browser.
Happy end of the month! 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 this week’s news:
A VSCode plugin for CircuitPython workflow
Joe DeVivo has released a free plug-in for the Microsoft VSCode editor (also free) to bring the entire CircuitPython workflow into a single place within the editor: vscode-circuitpython. It includes:
- A library manager
- Serial console
More – Visual Studio Marketplace and GitHub.
M.2 form factor boards go mainstream in the Maker space
SparkFun has come out with a line of processors on a card called MicroMod, the idea being a different processor may be swapped into a design with few if any code changes. SparkFun has open-sourced the pinout – that step makes it easy to use the pre-made modules or to design your own board or carrier module – SparkFun.
Other manufacturers released boards prior to SparkFun in the M.2 form factor. Adafruit has developed a GitHub repo of information on various M.2 board pinouts – a very handy reference – GitHub.
Makers are looking at M.2 processors and adapting the connector to other form factors, like the Feather pinout, on Twitter here, here, and here. Nice work! Maybe a Metro/Uno form factor is next?
This may be great for CircuitPython and MicroPython, in addition to Arduino, in that the Python languages abstract out many of the hardware differences.
Open Hardware Month wrap-up
The 2020 Open Source Hardware Weather Report by Clarissa Redwine and Michael Weinberg – Engelberg Center, in collaboration with the Open Source Hardware Association (OSHWA) – NYU Law.
About 40% of OSHWA certified open-source hardware is from a Minority and Woman-owned Business Enterprise! Adafruit Blog.
Learn about data science and coding with Fei from Over the Moon
Inspired by the new Netflix Original, “Over the Moon,” Microsoft is launching three new Microsoft Learn modules that guide learners through beginning concepts in data science, machine learning and artificial intelligence. The new Explore Space with “Over the Moon” learning path includes three parts:
- Plan a Moon Mission using the Python Pandas Library – Like Fei Fei, use data to plan your own mission to the moon. Ensure your rocket can not only get you there, but also bring you and all your moon rocks safely back to Earth. Analyze and visualize datasets with common data cleansing practices.
- Predict Meteor Showers using Python and VC Code – Build a machine learning prediction model after cleansing a space-themed dataset on meteor showers. Incorporate Chang’e’s potential affects on meteor showers for an added complexity.
- Use AI to Recognize Objects in Images using Azure Custom Vision – Repurposing the camera on the lunar rover, search through the moon’s surface for Fei Fei’s buddy Bungee before it’s time to head back to Earth. Use Azure Custom Vision to classify pictures of animals without ever writing code.
Read more – Microsoft.
A hand sanitizer use counter
Teacher Sean Tibor set up an Adafruit Matrix Portal driving an LED Matrix to display the times a hand sanitizer unit is used during the current and previous day – Twitter.
The Python Software Foundation: Resources for Virtual Events
The PSF has put together a list of free resources the Python community may use to host virtual conferences, user group meetings, and sprints! – Python.org
Speeding up Python by a factor of 5 over the next 4 releases
A proposal has been put forth to speed up CPython (mainline Python) by a factor of 5 over the next four releases. The proposal is independent of the Python Software Foundation at present; it is a community initiative – GitHub and Twitter.
CircuitPython Deep Dive Stream with Scott Shawcroft
This week, Scott streams his work on M.2 connector pinouts and e-paper.
You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.
Adafruit is stocked and shipping orders!
Now is the best time to get orders in for your favorite products (and new ones), items for students, Halloween, holiday projects and more.
And Adafruit parts have free, easy to follow tutorials in the Adafruit Learning System.
Shop Adafruit now
News from around the web!
Flatreus is a single-piece, low-profile, portable split-layout keyboard. It uses a bootloader and CircuitPython firmware – Hackaday.io and Twitter.
Liz at Blitz City DIY interviews Thea Flowers of Winterbloom – lots on CircuitPython – YouTube and Twitter.
A Spoopy Proximity Ghost! With CircuitPython on an Adafruit QT Py board, it uses capsense as an analog proximity detector to proportionally drive a servo. A large antenna wire gives you a few inches of detection range – Twitter and GitHub.
How to make a CircuitPython Light Meter Project with a Seeeduino Xiao board and a photoresistor – YouTube.
A Python self-hosted GitHub Runner for the Raspberry Pi – Adafruit Blog and GitHub.
Twitter user @chardane built a beautiful maple wood birthday wish box. The outside had cutouts of leaves done by a Glowforge laser cutter. Inside uses an Adafruit ItsyBitsy M4 Express board and NeoPixel lights, making rainbow patterns via CircuitPython code – Twitter Thread.
A MicroPython IoT Thermometer with a ESP32 and an Adafruit MPU-6050 6-DoF Accel and Gyro Sensor – GitHub and Twitter.
Python For Feature Film:
Python is a programming language that has become integral to the movie making process over the last few years. There’s rarely an animated feature or visual effects film, if any, that hasn’t had Python play a large part in getting it to the screen – GFX and Twitter.
Machine Learning for Accounting with Python course – Coursera.
The PythonBytes podcast: Take the PSF survey and Will Vincent & Carlton Gibson drop by – pythonbytes.fm.
Python Core Developers Q&A – Ask a Core Dev Anything – broadcast on October 20th – YouTube.
PyDev of the Week: William Horton from Mouse vs Python
CircuitPython Weekly Meeting for October 26th, 2020 Notes and on YouTube
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Why Learning Python is Perfect for Beginners, Career-Changers, and Anyone Else.
Adafruit has been working on a number of CAN bus enabled products and the latest is the CAN BitsyWing – SPI to CAN for any ItsyBitsy Board. CircuitPython Support: of course – Twitter.
A STEMMA QT to Nunchuck adapter makes it easy to connect Wii Nunchucks to your microcontroller via STEMMA QT plug & play cables – Twitter.
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 we did not have any new boards added, but there are several in progress.
Looking for adding a new board to CircuitPython? It’s highly encouraged! Adafruit has four guides to help you do so:
New Learn Guides!
Matrix Portal Scoreboard from John Park (video)
DIY Desktop Calculator with CircuitPython from Jeff Epler
Matrix Portal RGB Display Handbag from Erin St. Blaine
Creating MatrixPortal Projects with CircuitPython from Melissa LeBlanc-Williams
Image Correction for RGB LED Matrices from Phil Burgess
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 276!
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!
This past week, I completed the EMC2101 fan controller libraries for CircuitPython and Arduino, which means I will shortly start working on the guide. I continue to be impressed with this and other similar small, focused chips that do one or two related things and nothing else. While some may see such a chip and compare it unfavorably to another that has more bells and whistles, there is value in the flexibility that comes from having a discrete bit of functionality in its own modular piece. Sometimes you do want the flexibility of a Swiss Army Knife that can do many things, however many other times you just need a knife to cut something.
Earlier in the week I was able to assemble the latest version of the CAN Feather Wing and verify that the changes worked as expected. With any luck, this means that we should see one showing up in the Adafruit store before too long. One interesting side effect to working on this project is that I’ve started noticing CAN bus showing up in more and more places. At this point, I’m fairly sure that I’m late to the party and CAN bus has been popular for a while, however I also get the feeling that it’s seeing more and more use. I’m fairly certain that it will become even more widely known and used as more people become familiar with its benefits. As Ladyada is fond of saying, people need to use more wires. Wireless is great and all, but just like planes can be more fussy than good ‘ole trains, wires will get your bits where they need to go, even if they lack the glamour of Narrow Band IoT or Z-Wave.
I am finishing up a Learn Guide for the Blinka _bleio library. While working on the examples, I found a regression in the bleak library, which I reported and is now fixed. I have a few more examples to write and then I’ll be all done.
I’ve been learning the ropes of ESP32-S2 development and started implementing canio. I ran into some problems that may be in the ESP-IDF, but created a workaround. The CAN hardware in the ESP32-S2 is also more limited when it comes to reception filters. In any case, the pull request is waiting for review. It will be 6.1.0 or later before it is incorporated in a stable release of CircuitPython.
I’ve been working on a guide for a QT Py project involving NeoPixels and an LIS3DH accelerometer. It’s an activity timer that doubles as a hydration reminder. The activity timer designed to be a simple reminder to take a break every so often or eat lunch, and then get back to work. The hydration reminder counts down an interval to remind you to regularly drink water. The guide walks you through the build, and covers all the customisations available in the code. You can easily change the colors and times to fit your aesthetics and schedule. Keep an eye out for the guide soon!
This past week, I worked on a guide for running Google Assistant on the BrainCraft HAT. Running the software on the Raspberry Pi was the easy part. The difficult part was getting all of the different Google interfaces configured correctly because halfway through, the wrong project is selected. I’m glad that I was able to work through this and document it in the guide because I think it would have been very frustrating for a user to have run into this. Voice Bonnet support will be added soon.
I also worked on another guide for creating projects using the MatrixPortal library. This goes through some of the capabilities of the library and choosing the different layers that you want to use in your project including some of the tradeoffs for choosing one method over the other. It also goes into a fairly detailed code analysis of one of the example projects that uses quite a few of the features of the library.
Last week I released 6.0.0 Release Candidate 0. I’ve done a few minor fixes after it that will lead to a second release candidate.
Most of my week has been working on adding grayscale e-paper display support to CircuitPython for the newest e-paper display FeatherWing. It’s a neat display!
I’ve got more work to do on the e-paper display because there are a few outstanding bugs. The current bug I’m looking at is that the display only refreshes once and then fails going forwards.
My goal was to work on the deep sleep API but I’ve gotten sidetracked by the new e-paper display. Both things will be done eventually though because of this top secret product 🙂
Civic Hacking with Python with Code for Philly, October 29th. Hear from the Code for Philly (CFP) Team and their project leaders about opportunities to use your Python skills to improve the city (virtual) – Twitter.
Free Workshop: A Practical Guide to Python. Know a bit about coding already? Always wanted to learn Python? Join Nina Zakharenko this Friday October 30th at 10:30 AM US CT for a free all day workshop. RSVP to join the stream – Frontend Masters.
Hacktoberfest® is a celebration of Open Source Software, 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.
CircuitPython is participating in Hacktoberfest. If you submit a pull request to the CircuitPython core, it will automatically be considered for Hacktoberfest. However, if you submit a PR to a CircuitPython library and you are participating in Hacktoberfest, you must notify one of the maintainers that you would like your PR to be considered. We would love to help you reach your Hacktoberfest goal, but we need your assistance. Please make a note and tag a maintainer on your pull request though GitHub, or join us on Discord and let us know in the #circuitpython channel.
Pull requests can be made in any GitHub-hosted repositories/projects. You can sign up anytime between October 1 and October 31. More – Hacktoberfest.
Python Brasil 2020 is the largest conference on Python programming language in Brazil and Latin America. This year, due to the Covid-19 pandemic, Python Brasil will be held remotely. There will be seven days of immersion November 2-November 8, 2020 – Site and Tickets.
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-rc.0. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20201026 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.
1878 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, Microcenter, Raspberry Pi and more.
Job of the Week
Routesafe are creating a new start up company to develop a new anxiety management product and need some technical help in doing this.
We are currently looking at using the Circuit Playground Express board as a development platform for this idea alongside the haptic controller. We need a Python coder to help create a concept demonstrator using this board – Adafruit Jobs Board.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 25,432 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 each Wednesday. 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.
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.