ICYMI (In case you missed it) – Tuesday’s Python on Microcontrollers Newsletter from AdafruitDaily.com went out.
If you missed it, subscribe now! – You’ll get one fab newsletter each Tuesday (before this post Wednesday).
The next newsletter goes out in a week and being subscribed the best way to keep up with all things Python for hardware. No spam, no selling lists, leave any time.
Over 6,970 subscribers worldwide!
CircuitPython 5.0.0 Beta 1 released!
5.0.0 is the latest major revision of CircuitPython. It features many improvements and enhancements to displayio, including grayscale OLED and e-paper displays, extensive additions and improvements to BLE support, support for the STM32F4 and Sony Spresense microcontrollers, and PWM audio support – GitHub.
1,500 thanks CircuitPython stars
Thanks to everyone in the CircuitPython community, we’re up to 1,500 stars! – GitHub.
CircuitBrains Deluxe, CircuitPython castellated module package
Introducing programming using CircuitPython course
Serpente is back and the family has expanded
The R2 adds castellated edges, breadboard compatibility, and a new board: male USB Type-C! Still the same SAMD21, 256KB Flash and 32KB RAM, 4MB for files and code, 6 GPIOs. Runs CircuitPython – Tindie.
Watering plants with BLINKA
Python powered Sister Night Goggles from Watchmen
CircuitPython powered NeoPixel goggles inspired by HBO’s television series Watchmen. Control the NeoPixel LED animations with a rotary encoder. Display up to four different modes with control like speed, colors and brightness of the NeoPixels. The 3D printed parts fit over costume goggles and snap fit together! – learn.adafruit.com and YouTube. MAKE and hackster.io.
30,000,000 Raspberry Pi units sold
30,000,000 Raspberry Pi units sold – latest numbers and more.
nRF52840 LED hat
This is a great little project showing how to use CircuitPython to control some of the low-cost LED hats on Amazon, Ebay, etc. We have a couple of them showing up and we will document it soon! – GitHub.
- Farnell has now sold 15 MILLION Raspberry Pi units, total Pi units out there? 28+ million – September 2019.
- 25 million + Raspberry Pi computers sold – March 2019.
- 23 million + Raspberry Pi computers sold – December 2018.
- 14 and 15 million Raspberry Pis in total – July 2017.
- 5 million Raspberry Pi units – September 2015.
- 3.8 million Raspberry Pi units sold – October 2014.
- Raspberry Pi sales hit three million milestone – June 2014.
- Happy 2nd birthday Raspberry Pi over 2.5 million units – February 2014.
- 2 million Raspberry Pis as of October 2013 – November 2013.
- How many Raspberry Pis are there? 1.75 million sold so far – and 1 million made in the UK – October 2013.
- 1 million Raspberry Pis – January 2013.
Take Flight with Feather – Hackaday and Digi-Key
The Adafruit Feather is the latest platform for microcontroller development, and companies like Particle, Sparkfun, and Seeed Studios are producing Feather-compatible devices for development and prototyping. Now it’s your turn. Design a board to fit in the Feather ecosystem and we’ll manufacture it. The best project in the Take Flight With Feather contest will be sent off to pick and place machines and head straight to the Digi-Key warehouse!
There are over 54+ entries at this time!
Stop by hackaday.io for more details!
2 new PyPortals!
Here’s a family photo of the Python powered PyPortals, there is now a LARGER one called the Titano, and a tiny one called the Pynt. AND! MAKE Magazine has a review of the Portal too! – MAKE. Also, hackster with the PyPortal news as well – hackster.
News from around the web!
CircuitPython powered snow globe for the Christmas Tree using ADABOX 14 – Twitter.
EDGE BADGE at the Arm AIoT Dev Summit recap – Adafruit.
Nice trees, Circuit Playground Express ornaments! – Twitter.
CircuitPython comes to Eurorack, JP is testing – Twitter.
A CircuitPython library for the mini-dfplayer, a minimalistic MP3-player available for a few bucks from Ebay, Amazon and other distributors – GitHub.
Bluetooth NeoPixel LED Mickey Mouse Ears – Instagram.
Cedar Grove’s test of a PyPanel concept with PyBadge, Crickit, and Stemma-connected DAC. It uses standard Adafruit CircuitPython libraries: adafruit_crickit, adafruit_pybadger – YouTube and Twitter. And check out this discovery idea as well – Twitter.
Caden has a bunch of great CircuitPython guides on GitHub.
It’s holiday season, and that time of year where Ugly Sweaters become the top fashion item. And the only thing better than an ugly sweater is an IoT ugly sweater – GitHub.
python_polargraph – The simplest printer ever – GitHub.
Amazing fire blade from misslaneyluck – Instagram.
“Why we switched from ATMEGA328 to SAMD21” – Electronic Cats.
VIBE: Video Inference for Human Body Pose and Shape Estimation – GitHub.
loop-baby is a portable audio looper using Raspberry Pi, NeoTrellis, and sooperlooper – GitHub.
CircuitRoomba is a CircuitPython library for interfacing with Roomba Open Interface devices – GitHub.
MicroPython: An Intro to Programming Hardware in Python – Real Python.
Joey got voice commands working on the Feather-compatible OpenBook e-ink reader using our TFL port – Twitter.
Example on-device model personalization with TensorFlow Lite – TensorFlow Blog.
21 METROS, all connected – Twitter.
MicroPython port for the Silicon Labs EFM32 – GitHub.
ptpython – A better Python REPL – GitHub.
Python 3.8.1rc1 – Python.org.
A really, really awesome Raspberry Pi NeoPixel LED mirror – YouTube.
Pixcryption, Pixel Safe Encryption – Now with AES Encryption on Strings – GitHub.
Video to Pose3D – GitHub.
Abbott Labs kills free tool that lets you own the blood-sugar data from your glucose monitor, saying it violates copyright law – BB.net
An interesting case of Apple vs one of their former chip designers – PDF.
Kinda fun, the same location as Adafruit almost 85 years ago, was also making electronics – Urban Archive. RADIOS & RADIOTRONS.
Designing a world for all makers – UPS.
Circuit board nails – Tumblr.
CircuitPython Weekly December 16th, 2019 on YouTube.
PyDev of the Week: Ted Petrou on Mouse vs Python
Design News – 2 game-changing trends that will define embedded systems in the 2020s
Yep, one of them is Python…
” the compute power available in microcontrollers has grown to the point where a stripped-down version of a Python kernel can be ran on a microcontroller that costs only a few dollars. Second, there are already popular open source ports for Python.”
The other is Machine Learning at the edge.
New Learn Guides!
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!
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 201!
Here’s this week’s new CircuitPython 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:
What is the team working on?
A LOT THIS WEEK!
This past week has seen me “ship” the CircuitPython and Arduino drivers I wrote for the LSM6DSOX and ICM20649, as well as publishing the MLX90640 driver written by Ladyada. All three can be found in the latest CircuitPython bundle and soon in the Arduino Library Manager as well. I then got to work testing and writing drivers for the upcoming breakout board for the Microchip MCP4728 quad 12-bit I2C DAC. This little gem gives you 4 separate DACs that you can use to control voltages being used for…whatever you want! Furthermore, you can save the settings for each channel to an internal EEPROM so that it will default to whichever voltages you want when first powered on.
Last week I finished a large refactoring of how regions are specified in internal flash memory in CircuitPython. The changes add reasonable defaults and centralize where the regions are specified. This simplifies how new boards are defined. I fixed an issue with internal flash filesystems on nRF chips. In addition, several of us worked together quickly to fix issues caused by moving our compiler toolchain to gcc 9. Coming up (I know I keep mentioning this, but this time it’s for real): bonding for BLE, which remembers pairing information.
Do you miss the days of standalone MP3 players like Zune and iPod? If I get my way, those days are coming back. Now that MP3 decoding is in CircuitPython 5.0 beta 1, it’s time to do something useful and fun with it. Here’s a picture of my “work in progress” music player in CircuitPython on a PyGamer, with MP3 files on a micro SD card. Right now I’m working on the file picker. Ultimately, it will have a basic set of functions such as play/pause/stop, next/previous track, etc. The track titles are from They Might Be Giants’ album Here Comes Science. If you don’t know who they are, check them out, the link goes to their official YouTube for the title track. They have music for kids, adults, and adults who are actually kids inside.
This week, among other things, I published the Circuit Playground Bluefruit NeoPixel Animation and Color Remote Control guide. This project was so much fun. It uses two Circuit Playground Bluefruit boards and a couple of NeoPixel strips to make a festive Bluetooth controlled wreath. One CPB acts as the NeoPixel Animator and the other as the Remote Control. The Remote Control is used to change LED colors and animations on the Animator wirelessly over Bluetooth! In the process of writing this guide, we updated the Adafruit CircuitPython LED Animation library to have a set of animations available in CircuitPython. Now if you want to create an LED sparkle, comet, and more, you can use this library and let it do all the hard work for you. There are still more improvements and animations being added, so keep an eye on that!
This last week I started by updating the IS31FL3731 CharliePlex Display guide by adding a page that explains the examples. One of these examples is an Animated GIF Player. You can check out that guide page here. I also worked on a collaboration project with John Park and we designed a project around the Circuit Playground Bluefruit and TFT Gizmo to interact with the iPhone and the Apple Notification Center Service to display bitmaps of the notifications along with automatic screen dimming to help out with battery conservation. This was based on some examples that were originally written by Scott.
I wrote an example for the Arduino ImageReader library to demonstrate how to load bitmaps onto e-Ink Breakouts and did some minor guide updates to direct the user to use that example. You can check that out this guide page here. Next up, I updated the PyBadger library to work better with external fonts by changing the calculations of where to display the correct height of the labels. I also made it so using external fonts is as easy as passing in the location of the font file. Next week, I’ll be porting the animated GIF player over to some PiTFT displays and starting on the HT16K33 Segmented and Matrix LED Driver guide updates.
Last week I released CircuitPython 5.0.0 Beta 1 and followed up with a couple bug fixes. They will be released with Beta 2 this week. In the meantime, I’ve focused on adding support for the BLE Apple Media Service which allows you to see the current playing track and control the media player. It is the first packet based BLE protocol we’ve supported so I’m adding a PacketBuffer to _bleio. It should also allow us to do BLE MIDI. Hopefully, I’ll have a demo of that this week as well.
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.
20191216 is the latest CircuitPython library bundle.
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 – Find a dream job, find great candidates!
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.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 15,458 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.
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.
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. Join our Discord or post to the forum for any further questions.