ICYMI (In case you missed it) – Yesterday’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,980 subscribers worldwide!
MicroPython 1.12 released!
94 boards on Circuitpython.org !
There are over 94+ boards on circuitpython.org. Less than half of the boards are from Adafruit; there are 40 Adafruit-made boards and 54+ from everyone else! This means there an entire ecosystem of boards out there from makers and companies around the world, all that run the open-source language CircuitPython! – circuitpython.org/downloads. 100 boards here we come!
Speaking of circuitpython.org, we’ll have an update to the pages soon, this is a super-seckret preview!
CircuitPython 4.1.2 released!
4.1.2 is a minor stable release. Most notably, it updates the adafruit_circuitplayground frozen library for Circuit Playground Express. It shouldn’t break any code compatible with previous 4.x releases. If you don’t have a Circuit Playground Express or a PyRuler, or a board with frozen libraries, there is no strong reason to update to 4.1.2 – GitHub.
CircuitPython 5.0.0 Beta 2 released!
This is release 5.0.0 beta.2. It improves our internal filesystem definitions and may overwrite your existing files so make sure to back them up before updating! Beta releases are largely feature-complete, but are meant for testing. Use the latest stable 4.x release when first starting with CircuitPython – GitHub.
Bluefruit Playground released!
Circuit Playground Bluefruit is the most fun you can have with a circuit board – and Bluefruit Playground makes it even better. Connect Bluefruit Playground to a Circuit Playground Bluefruit board and you can:
- Control LED color & animation
- View continuous light sensor readings
- View state of built-in buttons & switch
- Turn a CPB into a musical instrument
- View orientation based on accelerometer data
- View temperature readings
All without soldering or writing a single line of code! – Apple App store.
Bluefruit Playground is our new iOS app designed for use with Circuit Playground Bluefruit – and now it has brand new learning guide! Head over to the Bluefruit Playground app guide for details on firmware, pairing, all of the interactive modules, and details on every BLE service and characteristic used by the app to talk to Circuit Playground Bluefruit.
Make music with CircuitPython – HackSpace Magazine
Issue 26 – HackSpace magazine: 3D Printers – Make music with CircuitPython. Use maths and a bit of code to create your own waveforms. Pages 74 and 75.
Also in this issue: What’s the best 3D printer? HackSpace Magazine asked real users about their experiences with their own printers, and here are the results. Find your perfect 3D printer with their guide. What else?
- Create your own clothes with a sewing machine.
- Discover a USB power supply.
- Add OctoPrint to your 3D printer.
- Build a video baby monitor.
Take Flight with Feather – Hackaday and Digi-Key
THIS IS IT! The last week or so to enter!
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 60+ entries at this time!
Stop by hackaday.io for more details!
News from around the web!
Cool cardboard box handheld controller for the 100yarddash CircuitPython game for the Circuit Playground. Each row of LEDs represents 20 yards. Press left and right sides of the field to move player while avoiding defenders – Twitter.
Scott H made a great family tree ornament with ADABOX 14 – Twitter.
Corey made a Baby Yoda snow globe with the CircuitPython powered ADABOX 14 – Twitter.
Xut: The Animatronic Penguin – element14.com
And some photos – Twitter.
This is not a repeat, sorta. We have a new logo for CircuitPython + Roomba projects 🙂 CircuitRoomba is a CircuitPython library for interfacing with Roomba Open Interface devices – GitHub.
For 2019, Ben built Chanukah Display 3.0 featuring a Giant Menorah and a Dreidel Game, and made of 4,500 LEDs of Arduino powered goodness. Here’s a glimpse at how it was made.
NeoPixel monster hunter – Instagram.
NeoPixel tree, Instagram.
Getting Started with RoboHAT MM1 CircuitPython – hackster.io
ZSK e-Textile embroidery machines incorporate sensors, flexible substrates and Circuit Playground – YouTube.
“ZSK Laying machines for fibers and wires. The Technical Embroidery Systems of ZSK Stickmaschinen GmbH enables with the use of new and innovative techniques the laying and fixing of different media on textile and/or flexible carrier material. The laying with ZSK embroidery machines, meaning the fixing through embroidering is one of the most accurate and efficient production methods. Media like wires and any kind of fibers, tubes and optical fibers can be made flexible and will be fixed secure and strongly through embroidery techniques like the ZigZag stitch. Materials with different conditions like Polyamide, Polyester, PPS or Aramid are available as a yarn. For products with special load requirements, yarns with a steel core can be used, if applicable.”
Thanks Shawn for the intro and for the photos – Read more.
prefect is a Python library for interacting with your MyFordMobile-enabled vehicle – Twitter.
PyPortal App Launcher – furcean.com
The CircuitPython based EZ Make Oven was updated this week to support the PyPortal Titano – learn.adafruit.com
Beta testing the “Winterbloom Sol” Eurorack module – Twitch.
Interesting BatGirl, maybe? A CircuitPython tagged board on Instagram from roboticsunited.
The Make: Guide to Boards has an AR secret hiding inside – if you have a copy of Make: Vol. 68 and install the Digi-Key AR Guide to Boards app on your phone or tablet, you can watch some magic happen. Subscribe to MAKE and to get digital access to all the back issues (plus more!) Check out Make: Community – YouTube.
Speaking of MAKE, 3D Print has a series called “The Maker Movement Unmade?” … we emailed with them, we said the maker movement is not solely, or only “Make Magazine” or “MakerBot”, or TechShop … some were just poorly run businesses, not a movement.
Cute RC K-9 bot – Twitter.
DNA Lounge Eyemas… Twitter.
Build Your Own Live NHL Scoreboard with Raspberry Pi and LED Panels – YouTube.
Web Serial API examples – talk to serial devices from your browser – GitHub.
There was a “Hack your own holiday lights with MicroPython” gathering in California earlier in the week! – Meet up.
A minimal MicroPython project to get a webserver on a Sonoff S20 WiFi Smart Socket – GitHub.
Gesture recognition with M5Stack + TensorFlow Lite – Boochow.
Leibniz: Work in progress emulator for RUNT based Newtons – GitHub. Can work on a Pi, sorta.
Here’s another PyBadge to Crickit via Stemma test from Cedar Grove – YouTube.
Flash Download Tools (ESP8266 & ESP32) update from Espressif. This is mostly so we can use the Espressif little creature logo when possible.
Some of the Top 10 Python libraries of 2019 – Tryo labs.
A JupyterLab extension for displaying dashboards of GPU usage – GitHub.
From 1965 to 2019, the most popular programming languages – Twitter.
“The State of Responsible IoT 2019” report is out now! – thingscon.org
“What do video game controllers, WiFi routers, and radios all have in common? Microcontrollers! Microcontrollers are what power many of our electronic devices and can be used to build all sorts of projects. They are also a fun way to learn and practice coding and building circuits! This beginner’s guide will walk you through popular and easy-to-use microcontrollers so you can better decide which one best suits your learning and project goals. Blast off to learning and fun, wooo!!”
Broadcom Looks to Sell a Unit That Could Fetch $10 Billion. Credit Suisse is helping the chip maker find a buyer for its RF wireless-chip unit – WSJ.
Best apps of the year for iOS/Mac, JSON explorer looks handy – MacStories.
1997 Westwood Studios Blade Runner released.
First Drive Test of NASA’s Mars 2020 Rover – YouTube.
“On Dec. 17, 2019, engineers took NASA’s next Mars rover for its first spin. The test took place in the Spacecraft Assembly Facility clean room at NASA’s Jet Propulsion Laboratory in Pasadena, California. This was the first drive test for the new rover, which will move to Cape Canaveral, Florida, in the beginning of next year to prepare for its launch to Mars in the summer. Engineers are checking that all the systems are working together properly, the rover can operate under its own weight, and the rover can demonstrate many of its autonomous navigation functions. The launch window for Mars 2020 opens on July 17, 2020. The rover will land at Mars’ Jezero Crater on Feb. 18, 2021.”
PyDev of the Week: Kelly Schuster-Paredes on Mouse vs Python
All DoF’s all nite long! We’re working on a trifecta of STEMMA QT boards – the 3 axis magnetometer LIS3MDL, 6-DoF accel+gyro LSM6DS33 and one board that has both for 9 DoF! These could be good for orientation data calculations, that’s what we’ll be working on next … – YouTube.
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!
Keep checking back for more updated guides!
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!
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’s the team up to? Let’s find out!
I’ve finished up the MCP4728 DAC drivers and nearly finished the guide, I’m just waiting for product pictures. I’ve also written the tester code, so we’re just waiting for them to get in the oven! I’ve also done some work on the ICM20649 tester, however that one is likely seeing a new revision before release so the tester code is on hold for a bit. Lastly, I worked with Melissa and others on addressing some questions about the migration to GitHub actions. Next week I’ll be taking some time off for the holidays to work on some personal projects, reflect on the year and start planning for 2020. Happy holidays!
I’m working on BLE bonding. There are two parts: one is doing the protocol negotiation, and the other is storing the keys and other information to make pairing automatic after the first time. I’m also bring the UF2 bootloader up to date and I’m looking at some mysterious zeroing of flash locations that happens very rarely, and it might be due to a bootloader issue.
This week I did some PyPortaling and Feathering. I added the PyPortal Pynt to the current PyPortal guide – you can now see pinouts images and download Pynt-specific files. I finished up the PyPortal Titano guide – we made a few nifty changes from the original PyPortal and the Pynt (including USB-C!), so this big sister warranted her own guide. I also added the Feather eInk Friend to the eInk guide, so check that out for details on the new FeatherWing.
I spent a lot of time testing Circuit Playground code. I updated the Circuit Playground library to be able to use a standard import line and figure out whether you’re using the Express or Bluefruit automatically and import the appropriate module. This way, we can include a set of examples with the library that work with both boards without any changes necessary. This involved a number of updates to both the library and to CircuitPython itself, which meant a lot of testing! This allowed us to find some issues and fix them before release. We released CircuitPython 4.1.2 stable and 5.0.0-beta.2, both of which have the updated library available for Circuit Playground Express. Now the library is ready for future updates and future Circuit Playground boards!
Here we have a wireframe for how “JEplayer” (PT renamed it) might look – we’re aiming for showing album/track art as well as icons for interacting with the player. “Frequency by Bartlebeats is the soundtrack to your soldering” and is a free download! Other activities included audio bug fixing on nRF, heading off a bug that would have used ~4kB excess flash on Circuit Playground builds, and helped Kattni get binaries she needed for testing of CPX changes before the 4.1.2 release.
I’ve spent this past week working on adding support for the Meowbit from Kittenbot to the STM32 port. Unfortunately, while the Meowbit has a huge array of features, the way they’re combined on the board itself has made it tricky to support in CircuitPython, so it’s forced me to take a step back and re-evaluate my approach. To start, I’ll be examining all the ways of getting code onto the STM32 series, so it’s easier to recommend programming approaches for different board layouts and accommodate boards with custom bootloaders (like the Meowbit).
My end goal is not just Meowbit support but UF2 support across the STM32 line. This may require a return to the internal flash code, since the STM32 flash layout makes the inclusion of both a bootloader and internal flash filesystem somewhat tricky. With a better grip on the programming support, I’ll also be looking into some issues with DisplayIO and PWM that recently surfaced. Once all of that is wrapped up, I’m hoping to start adding support to a series of new boards, including the Espruinos and more Discovery boards. I’ll also be keeping an eye out for any new STM32 boards that seem promising for the port!
Last week started with attempting to publish a release of the PyBadger changes I had made last week and discovered that due to a software dependency, publishing new releases for CircuitPython was not working. I determined the issue was due to a recent addition to the requirements of Blinka. For the time being, that requirement has been removed from being automatically installed while we start to put in place some better infrastructure to handle the situation. I worked with Bryan, Kattni, and a couple of others to decide on a pre-installer script and that script itself is now in place. However, it will take some time to add it to all of the repositories. But, afterwards, these kind of changes should be easy.
I also worked on fixing the Adafruit GFX Arduino library because it wasn’t working properly on some 8-bit processors such as the Arduino Uno or Metro 328. There were some recent changes to improve support on 16-bit processors, so it just involved some minor adjustments to the code. I updated the Python Your Own Adventure CircuitPython library to support the new PyPortal Titano and the larger screen area. I also created a set of enlarged images for the basic demo that are just for the Titano. I worked on porting the Animated GIF Player that I created for the CharliePlex Displays over to the PiTFT. I am working on some speed improvements as well as some additional enhancements. I will be taking this week off for holidays, but will be back next week to finish up the Animated Gif Player and start working on some HT16K33 Library and guide updates.
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.
20191223 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,536 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.