View this email in your browser.
Hello! Here’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 we go:
CircuitPython 6.0.0 Release Candidate 0 Available
The first release candidate of CircuitPython 6.0.0 was released late last week. No major issues are noted and the release is stable.
CircuitPython has a number of “ports” that are the core implementation for a variety of microcontroller families. Stability varies on a per-port basis. As of this release, atmel-samd, nrf, and stm for the F4 family are stable. cxd56, esp32s2, and stm for other chip families are being actively improved but may be missing functionality and have bugs. litex and mimxrt10xx are in an alpha state and will have bugs and missing functionality.
Read the full release notes – GitHub. Download for your favorite board at https://www.circuitPython.org/.
New micro:bit V2 and Raspberry Pi Compute Module 4
micro:bit version 2
The Micro:bit Educational Foundation announced the new micro:bit – available in November at the same price point as the original.
The latest micro:bit will fit right in to your existing lessons and materials; MakeCode and MicroPython code will work in the same way as they do on the original micro:bit. More features, including easy ways to take AI and ML into the classroom, will be released throughout 2021.
Some new features of the board:
- A more powerful Nordic nRF52833 processor
- A MEMS microphone and speaker
- Capacitive touch sensor pad
- Power saving mode
More details: Video – Meet the latest micro:bit, announcement page, tech specs, and Adafruit Blog.
Raspberry Pi 4 Compute Module
The Raspberry Pi 4 Compute Module was announced Monday. Containing the same processor as the Raspberry Pi 4, it has various RAM and Flash options at purchase (but no on-board expandability). The board breaks from previous modules, coming in a new form factor. I/O signals are brought out to two high-density perpendicular connectors (one for power and low-speed interfaces, and one for high-speed interfaces).
There is also an IO carrier board available which breaks out all the interfaces available, including a PCI-E x1 slot. CAD for the IO board is available in KiCad format.
More – Raspberry Pi Blog, Info Page.
AdaBox 016 shipping, last call for subscriptions
JOIN NOW, SHIPPING SOON! https://www.adafruit.com/adabox Halloween edition!
The next ADABOX ships in the next few days! There are a few openings for ADABOX 16 left! Curated Adafruit products, unique collectibles, and exclusive discounts. All delivered quarterly.
Halloween plans have probably changed this year, Halloween is still going to happen! With an ADABOX – learn some new skills and make something fun. An exclusive hint – the contents can be used with CircuitPython!
Subscribe now or give AdaBox as a gift!
Why Learning Python is Perfect for Beginners, Career-Changers, and Anyone Else
Maybe you’re looking for a language that’s useful and powerful, but still accessible to new coders. Maybe you’ve already started coding and you’re considering Python, but not sure if it’s the right language for you. Whatever your situation or current level of coding knowledge, this post will help you decide if you should learn Python or not – Learn to Code with Me.
CircuitPython Deep Dive Stream with Scott Shawcroft
This week, Scott streams his work on Release Candidate 0 and sleepio.
You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.
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, Making is fun and educational when using Adafruit parts and free, easy to follow tutorials in the Adafruit Learning System.
Hacktoberfest – Participate with the CircuitPython Team
Hacktoberfest® is a celebration of Open Source Software, created by DigitalOcean. It’s open to everyone – whether you’re a developer, student learning to code, event host, or company of any size, you can help drive growth of open source. All backgrounds and skill levels are encouraged. 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 participating GitHub-hosted repositories/projects. You can sign up anytime between October 1 and October 31.
More – Hacktoberfest.
Open Source Hardware 2000 Survey Results
Earlier this year, OSHWA conducted the third OSHW Community Survey, which collected 441 responses. A few highlights from this year’s survey compared to the 2013 survey:
- The portion of people coming to open source hardware from open source software increased from 14.6% to 23.9%
- In 2013, 42.8% of respondents indicated they have worked on or contributed to an open hardware project. This jumped to 85.6% in 2020.
- While 2013 showed a plurality of people using blogs to publish design files, this year’s survey shows public repositories as the most popular option. The increase in people with open source software experience and improvement in repository collaboration offerings may be contributing factors.
- This year’s survey shows a large increase in attendees for the 2020 Open Hardware Summit. This is likely due to 2020 being the first virtual summit. Although it was moved online due to unfortunate circumstances, the virtual platform offered the upside of greatly expanding the audience.
- A small gain in the community’s gender diversity was seen, with those identifying as either female or other making up 18% of respondents, compared to 7% in 2013.
See the results – OSHWA.
And October is Open Hardware Month – Learn More.
News from around the web!
Animated Eyes using Sprite Sheets – Adafruit Blog and Adafruit Forums.
Among Us the Game – left side panels randomly light up one of 4 colors. Right panels light up in random order. Wire all for blocks together to complete the circuit – Twitter.
7 and 14 Segment Displays with CircuitPython and Arduino – YouTube and Twitter.
Using the Cytron Edu:bit with the Adafruit CLUE and CircuitPython – Instructables.
How to install CircuitPython on the Seeeduino Xiao Board – YouTube.
The “Sensor Ring” is perhaps the smallest CircuitPython compatible board yet developed – Twitter.
An art piece by Awanigiizhik Bruce titled “Ginanaakonaamin SARS-CoV-2: We (inclusive) are fighting back against SARS-CoV-2”. Uses an Adafruit Gemma M0 board with CircuitPython, lighting with intricate bead work – Facebook and Twitter.
CircuitPython IoT Thermometer – a thermometer using a DHT11 temperature and humidity sensor and interfacing with Adafruit IO in the cloud – GitHub and Twitter.
PyPortal IoT Tutorial – Discord CircuitPython Helpers Kevin Thomas, Foamyguy, and Anecdata all pitched in to create an example and mini-tutorial on getting started with Adafruit streaming data – Github.
KiCad has a new default color theme. If you are not a fan, the “classic” theme is still available, as are many user-created themes – Twitter.
Flash/Upload MicroPython Firmware to ESP32 and ESP8266 – Random Nerd Tutorials.
The Python Release Cycle interactive graphics page – glitch.me.
Python virtual core sprint has officially kicked off! This week, Python core developers, triage members, and mentees are sprinting on various projects this week from all over the world. Google is sponsoring this event – Twitter.
The Ultimate Python Resource Hub – GitHub.
Stock Market and Python – Medium.
Python Hash Tables: Understanding Dictionaries – The Python Corner.
PyDev of the Week: Sunita Dwivedi on Mouse vs Python
CircuitPython Weekly Meeting for October 13, 2020 (notes) and on YouTube.
CircuitPython Weekly Meeting for October 19, 2020 (notes) and on YouTube.
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? QT Py Tricks.
Adafruit posted an ESP32-S2 “Zero”, shaped like a Raspberry Pi Zero – Twitter.
Oak Dev Tech’s CP Sapling is a SAM D21 for CircuitPython development – Oak Dev Tech and 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!
Tombstone Matrix Portal from Noe and Pedro
Multi-tasking with CircuitPython from Tim C
Color Mixing QT Py Cuff Bracelet from Debra Ansell
IoT Air Quality Sensor with Adafruit IO from Brent Rubell.
Adafruit 9-DOF Orientation IMU Fusion Breakout – BNO085tle from Bryan Siepert
Face Mask Efficacy Testing with SCIENCE! from Carter Nelson
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 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 past, week I finished the libraries for the TLA2021 and have moved onto the EMC2101, a neat little fan controller from SMSC. This lil’ guy will watch an external temperature diode and compare it against various thresholds and adjust the fan settings as dictated by its configuration.
The EMC2021 can interface with common 4-pin computer fans and will read the tachometer signal to report the fan speed and adjust the speed via the fan’s PWM input. There are a bunch of interesting features that you’ll probably only see on a fan controller, such as a programmable “spin up” setting that will give the fan some extra juice on startup to get it up to speed before settling down to the set temperature.
One of the significant features, at least in terms of register space, is the lookup table (LUT) that is used to specify the fan speed at different temperature thresholds. This allows you to modulate the fan speed based on a range of temperatures. This will allow you to make sure your only blowing as much air as needed which helps reduce noise and excess energy usage. Lastly, there are, of course, various alerts that can be set to trigger on temperature changes, as well as parameters to tune the sensor to the specific characteristics of the temperature diode.
I was off work for a few weeks, and am now back. I finished the Blinka _bleio library for Windows, Linux (including Raspberry Pi), and MacOS. I am working on a Learn Guide with setup steps and examples for all the platforms.
The library mysteriously did not work properly on Raspberry Pi 3B+ and Pi 4B, but did work on Pi Zero 0W and Pi 3B+. It turns out this is due to a firmware issue in the bluez-firmware package. Right now the workaround is to roll that package back to an earlier version, but I hope this will be fixed in the short term. Interestingly, very few people reported this problem, which indicates to me that very few people are using BLE on RPi at all.
This week I have been putting the finishing touches on an upcoming CircuitPython Desk Calculator guide. This is a project I started this summer and which took more time than anticipated, especially when I decided it should use an arbitrary-precision decimal arithmetic library adapted from Python 3, jepler_udecimal. Keep an eye on the Learn System for the guide to be published!
This week I published the Adafruit QT Py and NeoPixel LEDs guide. The guide walks though wiring up NeoPixels to your QT Py and shows how to do basic animations on the base QT Py, and how to use the LED Animation library on the QT Py Haxpress. If you’re looking to light it up with your QT Py, check out this guide.
Since I was testing the LED Animation library with a SAMD21 M0 Express board, I added an FAQ to the LED Animation guide to explain which animations will work on these boards, as not all of them do. As well I explained the limitations of using multiple animations in sequence, and covered why the animations slow down over time if left running for many hours. If you want to use the LED Animation library with your SAMD21 MO Express board, check out this FAQ to avoid any surprises.
This past week, I updated a guide on running TensorFlow Lite on the Raspberry Pi 4. The updates include adding setup instructions for the BrainCraft HAT as well as updating the instructions to use the latest version of TensorFlow.
I also updated the main PiTFT learn guide page, which is included in several guides to use the PiTFT Python install script that I had rewritten several weeks back. The guide has commands to automate selecting displays and orientations that work best as well as instructions for creating your own automated commands to install the display exactly the way you want.
In the last week, I knocked out three issue blocking the next stable release:
- Unreliable auto-reload on SAMD21.
- Flickering _pew module on SAMD21.
- I2C timeouts on STM32 due to incorrect time keeping.
With these issues fixed, we’re very close to our first release candidate. A release candidate is a very we think is stable but want to test more before releasing it as such. A release candidate is marked as stable after it’s been used for a week or so without major issues by folks willing to try it out. So, if you are adventurous, please give us a hand in testing the latest release candidate.
Next on my list is finishing the light and deep sleep API. It will enable the lowest power modes on the ESP32-S2 and make it easier to add for other platforms.
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.
20201019 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.
1,869 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
Technical Partner for a Startup – Architectural Modeling
I am seeking to form a partnership to develop/ collaborate on a prototype, this development would include marketing and finding partners to manufacture i.e. I am in search of start-up partners.
I am an architect (of buildings) and have prototyped a physical model with sensors embedded as interface for digital 3D modeling. I am looking for a sensor technician/ engineer to help me work out the bugs / develop the product further – Adafruit Jobs Board.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 25,310 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
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.