CircuitPython 4.0.0 Release!
4.0.0 is the latest major revision of CircuitPython and a new stable release! Download it now from circuitpython.org. See here for the full release notes.
It features a port to the Nordic nRF52840 microcontroller, including support as a BLE beacon or peripheral (bleio
), extensive new support for pixel-based displays (displayio
– guide here), which will show CircuitPython output on the display, USB MIDI support and messages translated into multiple languages. Current languages are Chinese (Pinyin), English, Tagalog (Filipino), French, German, Indonesian, Italian, Polish, and Spanish. Thank you to the many contributors who make CircuitPython excellent!
Many new boards are now supported by CircuitPython 4.0.0. Check out the new circuitpython.org/downloads page for full list of all available versions.
It’s not too late to contribute to CircuitPython! Check out this guide for details. We’re always looking to improve and expect many stable releases in the 4.x line to happen through the summer. Subscribe to the Python for Microcontrollers newsletter on adafruitdaily.com for the latest news for all things Python.
And with a release, here’s the latest CircuitPython boot sequence diagram.
CircuitPython on Python Podcast!
Podcast.init has stories of the people that make the Python community great, here’s one with CircuitPython and Scott! Hardware Hacking Made Easy With CircuitPython, Episode 212 –
“Learning to program can be a frustrating process, because even the simplest code relies on a complex stack of other moving pieces to function. When working with a microcontroller you are in full control of everything, so there are fewer concepts that need to be understood in order to build a functioning project. CircuitPython is a platform for beginner developers that provides easy to use abstractions for working with hardware devices. In this episode, Scott Shawcroft explains how the project got started, how it relates to MicroPython, some of the cool ways that it is being used, and how you can get started with it today. If you are interested in playing with low cost devices without having to learn and use C, then give this a listen and start tinkering!”
Python snakes its way to MakeCode
It turns out there is a Python mode in Microsoft MakeCode! Here’s how to find it: visit: https://maker.makecode.com/ and start a new Project. You’ll see the new option for Python at the top, that’s it! Here’s how to convert a MicroPython module(s) to PXT, pyconv.ts, and Static Python.
The History of CircuitPython
A great summary of Scott’s talk, “The History of CircuitPython” at the 2019 PyCon Python Language Summit by A. Jesse Jiryu Davis –
To build a Python for Adafruit’s needs, Shawcroft forked MicroPython and created a new project, CircuitPython. In his Language Summit talk, he emphasized it is a “friendly fork”: both projects are MIT-licensed and share improvements in both directions. In contrast to MicroPython’s hardware APIs that vary by chip, CircuitPython has one hardware API, allowing Adafruit to write one set of libraries for them all.
adafruit.io is now awesome
adafruit.io joins the awesome lists, including a lot of resources for CircuitPython for IoT – awesome-adafruitio.
News from around the web!
A dozen open source SAM32 boards for a Stanford Engineering microfluidics course. CircuitPython allows students to quickly start controlling hardware and collecting data – Twitter.
ChewyTurtle’s Twitter API project to display the latest tweet information on a PyPortal – GitHub.
Pantalla de Internet PyPortal IoT CircuitPython fácil de construir – tecnoaldia.com.es
Same computer password for the last 10 years? You might need a vibrating cybernudge – University of Bath & YouTube.
Dr Sarah Wiseman, lecturer in computer science at Goldsmiths, University of London, said: “The Adafruit Circuit Playgrounds are a fantastic opportunity to do some rapid prototyping with participants. The inbuilt functionality on the boards means that you don’t need much experience with electronics to take a concept from idea to reality.” The research team, including Dr. Joanne Hinds, Research Associate at Bath, is inviting people to take part in a creative element of the study by drawing their cyber security concerns and solutions. The findings will help the team to develop more innovative, creative ways to tackle cyber security problems.
3D printed UFO case for Circuit Playground Express – Twitter.
A Python 2.7 countdown timer with 13 different themes, switch’em using the touchscreen – Twitter.
HackSpace magazine posted up the web version of the PyPortal review, 9 out of 10, on their site – HackSpace. The best hackable out-of-the-box IoT display available at the moment.
CircuitPython hands-on workshop recap from last week, Uri writes:
“Thanks Phillip! We had the workshop, and it went great! We had about 30 attendees (some of them worked together), and some of them came up with really creative stuff (such as using the accelerometer input to play different notes on the speaker). Most importantly, we got excellent feedback from the attendees and some attendees also shared their experience on Twitter. We’re now compiling a short summary video, and will publish it in a few days, already looking forward to the next workshop!”
How to write a C-based module for CircuitPython – epxx.co.
Some recent Kickstarters could run CircuitPython, so if ya back’em, post in the project’s comments and request it. Depending on the chip, it’s pretty easy to add. For the PocketScreen, we already support the ATSAMD21G18 so the creator would only need to make a new ‘board definition’ with the name, VID/PID and the pinouts available. This recent pull request has the basics of what is required. Want to try it out? Build the variant on your own here. You can test it on your board before submitting the PR.
Next up, 32blit: retro-inspired handheld with open-source firmware. Paul from Pimoroni was on our show ASK AN ENGINEER and sounds like they’re up for adding CircuitPython support – if you backed this one, ask for CircuitPython!
Snek and NeoPixels. Snek is a tiny Python-like language and it joins all the other languages that can run on the Circuit Playground Express! keithp.com.
Moar Snek, ItsyBitsy Snek — snek on the Adafruit ItsyBitsy microcontroller board.
There was a brief sale for the latest MicroPython boards. If you were one of the lucky first 50 orders, a new PYBOARD D-Series T-Shirt was yours! – Twitter & MicroPython newsletter #9.
A TinyPICO production update with photos! – Crowd Supply.
Episode 5 of the MicroPython tutorial series is out from Unexpected Maker! JSON and Network modules, includes a practical example of them being used – YouTube.
Building An ESP8266 Game System With MicroPython. A MicroPython gaming system featuring a Wemos D1 mini, OLED display, joystick, buttons, fancy LEDs and a buzzer – Hackaday & YouTube.
ESP32 VGA/mouse/keyboard/VT100 computer capable of running MicroPython – hackernews.
Flappy Bird game programmed in Python. Lego Mindstorms EV3. MicroPython – YouTube.
Things you’re probably not using in Python 3 – but should from Vinko Kodžoman.
creme is a library for online machine learning, also known as incremental learning. Online learning is a machine learning regime where a model learns one observation at a time – GitHub.
A Python Library for Conway’s Game of Life – GitHub.
Tensor2Robot is a distributed machine learning infrastructure for large-scale robotics research – GitHub.
Text MOBA is a text-based game created with the Python curses library. Supports multiplayer and custom map importing from image and json files – GitHub.
Reverse engineering the Dropbox client, breaking its obfuscation mechanisms, de-compiling it to Python code as well as modifying the client in order to use debug features which are normally hidden from view – Looking inside the box.
New features planned for Python 4.0, codename “ouroboros: the snake will eat itself” – Charles Leifer.
Open Source Initiative License-Discuss summary: International Licenses Redux, Non-Commercial doesn’t compose, Can a contributor take back open source code? and Compatibility of LGPLv2.1 and Apache 2.0. – opensource.org
Accessibility testing tools for websites, a helpful list.
Talk to Transformer. See how a modern neural network completes your text – talktotransformer.com
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? CircuitPython Libraries on Linux and Google Coral – Make hardware and interface with sensors super easy using CircuitPython!
CircuitPython Weekly May 20th, 2019 on YouTube and on diode.zone
PyDev of the Week: Adrienne Tacke on Mouse vs Python
Coming Soon
PyGamer – programmable in MakeCode Arcade, CircuitPython or Arduino!
What if we took the PyGamer but made it a Pi Bonnet? Like a Gamer Bonnet? It could look something like this! Maybe good for playing emulators, PICO8 or pygame…
The Ultimate GPS, USB edition, which means it’s UART and works with CircuitPython too!
New Learn Guides!
CircuitPython Libraries on Linux and Google Coral from Ladyada
Circuit Playground Express USB MIDI Controller and Synthesizer from Kevin Walters
Updated Guides – Now With More Python!
You can use CircuitPython libraries on Raspberry Pi! We’re updating all of our CircuitPython guides to show how to wire up sensors to your Raspberry Pi, and load the necessary CircuitPython libraries to get going using them with Python. We’ll be including the updates here so you can easily keep track of which sensors are ready to go. Check it out!
Keep checking back for more updated guides!
CircuitPython Libraries!
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 drivers, download the Adafruit CircuitPython Library 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! Interested in helping with current libraries? Check out this GitHub issue on CircuitPython for an overview of the State of the CircuitPython Libraries, updated each week. We’ve included open issues from the library issue lists, 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. Feel free to contact Kattni (@kattni) with any questions.
You can check out this list of all the CircuitPython libraries and drivers available.
The current number of CircuitPython libraries is 155!
Updated Libraries!
Here’s this week’s updated CircuitPython libraries:
PyPI Download Stats!
We’ve written a special library called Adafruit Blinka that makes it possible to use CircuitPython Libraries on Raspberry Pi and other compatible single-board computers. Adafruit Blinka and all the CircuitPython libraries have been deployed to PyPI for super simple installation on Linux! Here are the top 10 CircuitPython libraries downloaded from PyPI in the last week, including the total downloads for those libraries:
Library |
Last Week |
Total |
Adafruit-Blinka |
2344 |
34819 |
Adafruit_CircuitPython_BusDevice |
1179 |
11188 |
Adafruit_CircuitPython_Register |
405 |
5501 |
Adafruit_CircuitPython_NeoPixel |
353 |
5111 |
Adafruit_CircuitPython_Motor |
319 |
3509 |
Adafruit_CircuitPython_PCA9685 |
274 |
3106 |
Adafruit_CircuitPython_ADS1x15 |
222 |
1663 |
Adafruit_CircuitPython_ServoKit |
209 |
2552 |
Adafruit_CircuitPython_LIS3DH |
194 |
1472 |
Adafruit_CircuitPython_SSD1306 |
157 |
886 |
Upcoming events!
Circuit Playground Express Workshop, Girls in Gaming. May 27th, at 9.30 – 3.30pm. Balmoral Hall School is a private school for girls in Winnipeg, Manitoba, Canada – girlsingaming.io
This workshop is designed to introduce students to the fundamentals of microcontroller programming, allowing them to see how these devices can be used for all sorts of creative pursuits from building robots and games, to making interactive props and costumes. We will be working with the Adafruit Industries Circuit Playground Express (CPX), exploring its many features and learning how to respond to sensors, and produce light and sound using the platforms Python programming language, all in the context of creating games, toys, jewelry, and art.
Circuit Playground: A Beginner’s Workshop on Electronics and Coding! Sunday, May 19th and Sunday, June 1 2019. MakerSpace NYC – Futureworks MakerSpace at Brooklyn Army Terminal – Eventbrite, via Twitter.
PyLondinium is back for 2019, with a diverse program of sprints, workshops and talks. We’ll be returning to Bloomberg’s European HQ in the heart of the City of London, June 14th, 15th, and 16th, 2019 – pylondinium.org
July, 8 to 14th 2019. The EuroPython conference series was initiated by the European Python community in 2001 and started with EuroPython 2002 in Charleroi, Belgium, as the first major Python conference entirely run by volunteers – ep2019.europython.eu
Open Source Summit and Embedded Linux Conference, August 21 – 23, 2019 at the Hilton San Diego Bayfront. The Open Source Summit North America combines with Embedded Linux Conference North America (ELC). ELC has been a vendor-neutral technical conference where developers working on embedded Linux and industrial IoT products and deployments gather for education and collaboration. Open Source Summit brings together developers and open source professionals to collaborate and learn about the latest technologies – Linux Foundation.
PYCON UK 2019 – Cardiff City Hall, Friday 13th to Tuesday 17th September. PyCon UK is back at Cardiff City Hall for five days of talks, workshops and collaboration. The conference also features a young coders’ day, themes dedicated to science and education, and numerous Python-related events – PyCon UK.
Latest releases
CircuitPython’s stable release is 4.0.0. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20190520 is the latest CircuitPython library bundle.
v1.10 is the latest MicroPython release. Documentation for it is here.
3.7.3 is the latest Python release. The latest pre-release version is 3.8.0a4.
1217 Stars Like CircuitPython? Star it on GitHub!
Call for help – CircuitPython messaging to other languages!
We posted on the Adafruit blog about bringing CircuitPython messaging to other languages, one of the exciting features of CircuitPython 4.x is translated control and error messages. Native language messages will help non-native English speakers understand what is happening in CircuitPython even though the Python keywords and APIs will still be in English. If you would like to help, please post to the main issue on GitHub and join us on Discord.
We made this graphic with translated text, we could use your help with that to make sure we got the text right, please check out the text in the image – if there is anything we did not get correct, please let us know. Dan sent me this handy site too.
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. Latest jobs include: Gyroscopic sensor for performance, CTE and Makerspace Teacher at Capital City Public Charter School. and an Exhibition Product Manager.
12,280 thanks!
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 12,156 humans, thank you! Join today! https://adafru.it/discord
ICYMI – In case you missed it
The wonderful world of Python on hardware! This is our first video-newsletter-podcast that we’ve started! The news comes from the Python community, Discord, Adafruit communities and more. It’s part of the weekly newsletter, then we have a segment on ASK an ENGINEER and this is the video slice from that! 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.
Contribute!
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. Join our Discord or post to the forum for any further questions.