View this email in your browser.
What do you want from CircuitPython in 2020?
As 2020 starts, let’s take some time to set goals for CircuitPython in 2020. Just like 2019 (full summary here), we’d like everyone in the CircuitPython community to contribute by posting their thoughts to some public place on the Internet. Here are a few ways to post:
We want to hear from you. When you post, please add #CircuitPython2020 and email circuitpython2020@adafruit.com 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
- Core CircuitPython features
- Core CPython libraries to add
- Additional microcontroller platforms
- New boards to support
- Library improvements
- Blinka
- Additional libraries
- Package management
- Documentation improvements
- Ecosystem needs
- Tooling enhancements
Here are a few from the community so far!
These, of course, are just ideas to start from. Please us know about all ideas you have for CircuitPython. We’ll read these over the first half of January. After the January 13th CircuitPython weekly, we’ll draft an overarching vision post for CircuitPython in 2020 and discuss it in the following meeting. Thanks to the Rust folks for the inspiration.
Initial CircuitPython MIMXRT10XX port implementation
It begins! The commit adds the NXP i.MX RT10XX series port, so far supporting the RT1011 and RT1062 chips, but the whole family is very similar so it’s easy to expand. CircuitPython snakes its way to the powerful NXP i.MX RT family of MCUs, 500+ MHz, up to 1 MB RAM. Arturo is working on 2 Feathers: RT1011 + ESP32, and RT1062 with more GPIOs broken out (including the LCD interface) and a SD card – GitHub.
The top product of the decade for Adafruit is CircuitPython powered
Out of all the products we’ve had in the last 10 years, Circuit Playground Express is the top selling, and it’s only been around for a few years. One of the biggest reasons is that so many people love writing code, and learning, using Python. CircuitPython runs great on this board and it’s been a joy to see so many people use this board to learn and share, thank you! – Adafruit.
ItsyBitsy nRF52840 Express – Bluetooth LE
What’s smaller than a Feather but larger than a Trinket? It’s an Adafruit ItsyBitsy nRF52840 Express featuring the Nordic nRF52840 Bluetooth LE processor! Teensy & powerful, with an fast nRF52840 Cortex M4 processor running at 64 MHz and 1 MB of FLASH – this microcontroller board is perfect when you want something very compact, with a heap-load of memory and Bluetooth LE support This Itsy is your best option for tiny wireless connectivity – it can act as both a BLE central and peripheral, with CircuitPython support – Adafruit.
CircuitPython Thermal Camera
Here is the final test of the Thermal Camera project. It uses an AMG8833 Thermal Cam FeatherWing and an Adafruit SAMD51 PyGamer with CircuitPython. Features include image/histogram display, alarm, focus, adjustable display range – Twitter, GitHub, and YouTube.
The PewPew M4 is OSHWA Certified
PewPew M4 is a CircuitPython graphical handheld game console and it’s now OSHWA certified as open-source hardware!
7,000 Thanks!
Thanks to everyone who shares their projects, code, sends in links, and for the joy of coding with Python on hardware, the Python for Microcontrollers newsletter has reached over 7,000 subscribers! (past newsletters here), you can sign up here at adafruitdaily.com. We started the Python on Microcontrollers newsletter in November of 2016. Since then, we’ve published 152 newsletters. We’re so thankful for all the readers and contributors.
News from around the web!
Happy New Year 2020! And ‘the sun turns into a Circuit Playground Express’ version. The Chika-chan 3D model originated in the cover art of the CircuitPython Book for Beginners. The book is available here.
CircuitPython makes this MIDI-to-control voltage module, the Winterbloom Sol beta by @theavalkyrie fun and easy to program, allowing integration between USB MIDI and modular synth gear – YouTube.
“a joy to prototype with” – Twitter.
Build your own REZZ inspired glasses with NeoPixels and CircuitPython. 3D print the parts and use the Adafruit ItsyBitsy M4 to make hypnotic NeoPixel animations! Learn how to solder components and get started programming with CircuitPython – YouTube and learn guide.
PyPortal CircuitPython Tutorial – DEV DUNGEON.
Serpente snakes its way to wearables! – Twitter.
First Serpente shields! – Twitter, and GitHub.
Self-stirring back-lit kalliroscope proof-of-concept – Twitter.
In celebration of Public Domain Day, Michael Weinberg hacked together a picture frame that displays a rotating set of public domain images from the Cleveland Museum of Art open access API using Python, and then Dan immediately made a CircuitPython powered PyPortal version too! – Twitter.
Twitter and YouTube stats, made easy with CircuitPython by CodeChomper – Twitter.
Speeding up large numbers of NeoPixels and DotStars in CircuitPython, a project in progress and looking good! GitHub and Twitter.
An eBay Addiction, a Logic Analyzer, and a VR Game: How I Made Some Christmas Decorations Dance by Adam Leventhal.
“an Adafruit FT232H Breakout, $15, which Limor Fried, founder of Adafruit, called the “modern parallel port”. It’s a USB bridge that you can use to speak useful, well-known protocols like SPI and I2C, or — in our case — less-useful, dance protocols via general purpose input/output (GPIO) pins. This thing is super cool: extremely approachable, easy to use, no IDE. It’s a great starting point for anyone who wants to write software that can control simple electronics.”
ESP Newsletter, January, 2020 edition – Espressif.
MicroPython for Zigbee light bulbs, GitHub and fork.
Helen filmed a series of videos that teach you how to use the micro:bit, MakeCode & how to get started with Python. The course is totally free, plus if you complete all 12 modules you get a certificate from the British Council, Tweet and course.
Reachy, the new open source interactive robot, can be programmed with Python, site and YouTube.
Christmas Lights using MicroPython & WS2812B LEDs – LeMaRiva.
Wio Lite RISC-V, GD32VF103, with ESP8266, a Feather-format board from Seeed.
OrangeCrab r0.2 boards in! – Twitter.
UWB Localization Feather by Jed Hodson.
Writing reusable USB device descriptors with some XML, Python, and C by Kevin.
Survey of Alternative Displays by Blair Neal.
Maker Update 154: CyberSlider – YouTube.
In 2019, a total of 9,218,822 packages were downloaded, taking the total to 14,745,528. This saved 128 years 5 months during 2019, taking us to over 172 years saved overall. 37TB of files were downloaded, taking the total to 51TB – piwheels.org
Custom NHL soundboard – YouTube.
Series of guides for modern Python tooling with a focus on simplicity and minimalism – Hypermodern Python.
Making Python Programs Blazingly Fast by Martin.
Creating a Moon Animation Using NASA Images and Python by Nick.
klaxon – Send Mac OS (or notifiers) notifications from the terminal or Python programs – GitHub.
Tooling Tuesday: Magic Wormhole – bigl.es
gathio is a quick and easy way to make and share events which respects your privacy – gathio. Might be good for meet ups and community meetings.
TidalCycles (or ‘tidal’ for short) is free/open source software, that allows you to make patterns with code, whether live coding music at algoraves or composing in the studio – tidalcycles.org
The Bluetooth Industry Report by Mohammad Afaneh at Novel Bits is fantastic each week. You can sign up here and the latest one is here.
Coral Accelerator Module, a new multi-chip module with Google Edge TPU – Google.
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Adafruit Top Secret! December 24, 2019 – Get a clue 🙂.
CircuitPython Weekly January 6th, 2020 on YouTube and diode.zone.
PyDev of the Week: Bryan Weber on Mouse vs Python
Coming soon
Since we’ve experimented with adding all sorts of sensors to our new CLUE board (see previous newsletters for more info about CLUE) – we thought we’d try adding the same bevy of sensor goodness to a Feather nRF52840. We removed the SWD connector and also the optional 32 Khz crystal. In their place we added a PDM mic, LSM6DS33 accel/gyro + LIS3MDL magnetometer, SHT3x humidity sensor, BMP280 or DPS310 barometric pressure sensor, and APDS-9960 color/light/proximity/gesture sensor. It should be a fun little Feather board, and it will pair very nicely with an ADALOGGER FeatherWing for RTC+SD card datalogging – YouTube.
CircuitPython REPL test on CLUE! – we put together a board definition for the CLUE rev A prototypes and we were able to get the REPL displaying nicely on the screen and printing out some sensor data real fast. This will be a fun board for sensing.
Titano case!
New Learn Guides!
Adafruit PyPortal Titano from Kattni
Rezz-Inspired NeoPixel Glasses from Noe and Pedro
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 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. 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 205!
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 |
2208 |
38013 |
Adafruit_CircuitPython_BusDevice |
1227 |
22685 |
Adafruit_CircuitPython_Register |
317 |
4735 |
Adafruit_CircuitPython_NeoPixel |
282 |
4788 |
Adafruit_CircuitPython_ESP32SPI |
244 |
2578 |
Adafruit_CircuitPython_MCP230xx |
216 |
9083 |
Adafruit_CircuitPython_FeatherWing |
202 |
1243 |
Adafruit_CircuitPython_Motor |
171 |
3138 |
Adafruit_CircuitPython_seesaw |
163 |
2606 |
Adafruit_CircuitPython_ServoKit |
162 |
2897 |
Upcoming events!
Cambridge Python’s first meeting of 2020 will be with Nicholas Tollervey: Developing Developers – Meetup. Tues, Jan 7, 2020.
Scott is speaking at PyCascades about Python’s Next Decade and Us. It’s February 8th and 9th, 2020.
“PyCascades is a two-day, single-track Python conference. We previously hosted PyCascades in Vancouver and Seattle. For our third iteration in 2020 we’ll be in Portland, Oregon USA. PyCascades is organized by members of the Python communities in Vancouver, Seattle, and Portland. We aim to bring together Python users and developers from both the Pacific Northwest and around the world.”
April 15-23, 2020, Pittsburgh, Pennsylvania, USA – The PyCon 2020 conference, which will take place in Pittsburgh, is the largest annual gathering for the community using and developing the open-source Python programming language. It is produced and underwritten by the Python Software Foundation, the 501(c)(3) nonprofit organization dedicated to advancing and promoting Python. Through PyCon, the PSF advances its mission of growing the international community of Python programmers – PyCon 2020.
Latest releases
CircuitPython’s stable release is 4.1.2 and its unstable release is 5.0.0-beta.2. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20200104 is the latest CircuitPython library bundle.
v1.12 is the latest MicroPython release. Documentation for it is here.
3.8.1 is the latest Python release. The latest pre-release version is 3.9.0a2.
1,552 Stars Like CircuitPython? Star it on GitHub!
What’s the team up to?
What is the team doing? Let’s find out!
Bryan
This week I did a bunch of PR reviews and debugging to continue the CircuitPython libraries’ migration to GitHub Actions. The end is in sight! I’ve also started working on migrating the Arduino libraries that I’ve worked on to Actions as well. I also did some editing to the MCP4728 guide to clarify some sections and add additional examples to my explanation of how Vref works.
Dan
Kattni
I had a lovely holiday and I hope everyone else did as well. I’m picking up this week where I left off, updating the CircuitPython Made Easy on Circuit Playground Express and Bluefruit guide to support both Express and Bluefruit using the latest updates to the Circuit Playground library. The guide update is still in progress as of Friday, but is nearly complete. The final thing to add is a page for the new sound features available for Circuit Playground Bluefruit. It should be ready to go very soon. The guide is already live, so you can check it out now. After that, I’ll be starting a new project involving motors and CircuitPython. We have a lot of motor support, but not nearly enough examples, so we’re going to take care of that with an upcoming motor party. Keep an eye out for that!
Jeff
…back to work polishing some pull requests related to JEplayer and getting back to feature work there if nothing else grabs my attention. In the realm of personal projects, I’m creating a hand-wired keyboard with a 3D printed enclosure. So I am excited to learn about KMK: Clackety Keyboards Powered by Python and plan to put it to use soon.
Melissa
This past week I caught up with all of my messages and since I didn’t have my hardware with me on Monday, I focused on updating the circuitpython.org website and added a counter to display the number of boards that support CircuitPython as well as the Blinka boards. I finished up working on the Animated Gif Player and refactored it into a class. I am currently working on writing up a guide for this. There is still lots of room for improvement and I plan on improving it over time, but feel it’s in a great place to be able to implement any improvements.
I started working on HT16K33 updates and implemented a function from a previous library called set_digit_raw() and have added that to the library. I also spent some time working on getting the Onion Omega2 up and running to test a Pull Request and I am in a good position to help with any remaining Blinka development.
Call for help – CircuitPython messaging to other languages!
We recently 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.
15,709 thanks!
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 15,709 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.
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.
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.