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 the next day).
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 7,272 subscribers worldwide!
Hi everyone! It’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. Let’s get started!
Open Hardware Summit prototypes!
The CircuitPython powered OHS2020 badge PCB prototypes are in! – Twitter.
Announcing Mu version 1.0.3
“Version 1.0.3 is a bug-fix release with no new features. We didn’t intend to cut this release but changes in the way the latest OSX works meant that code highlighting didn’t work correctly. We also managed to apply a fix to an annoying bug relating to where Mu set the current working directory for scripts run in Python3 mode.
OSX Catalina has posed a number of problems, from the incorrect rendering mentioned above, to the way the application should be installed and problems with permissions when flashing a BBC micro:bit. The simple answer to the installation story is, once you’ve installed Mu in your Applications folder, you should first open it with CTRL-click (not a double click) and select the “Open” button in the resulting pop-up. Subsequent runs of Mu can be started in the usual “double click” way. If you don’t do the “CTRL-click” trick you’ll see a pop-up complaining about Mu not being checked for malicious software.”
If you find Mu useful or would like to support the goals of this project, you might want to think about sponsoring the creator and lead maintainer Nicholas Tollervey.
Sponsor Nicholas Tollervey on GitHub Sponsors
Nicholas Tollervey (ntoll) is now sponsorable on GitHub, so for all the times folks out there said “I really want to support ntoll’s work!” here is your chance. If you’ve ever downloaded Mu, please sponsor, we did –
“I develop software that helps folks learn the skills and knowledge they need to imagine, develop and program the stuff they want. In addition to writing software, I spend a lot of time researching and thinking about how folks learn, use and create with code. Examples of my work include the Mu code editor (aimed at beginner programmers and educators), various MicroPython related tools for easily working with embedded / microcontroller based systems, and PyperCard (a simple cross platform GUI toolkit for beginners, based upon HyperCard concepts and written in Python). These are exercises in digital emancipation, exploration and education. I value simplicity, compassion, openness, collaboration and fun.”
Read more and sponsor. At this time, there are 2 sponsors.
CircuitPython in HackSpace Magazine: Serpente 10 out of 10, and more…
HackSpace rated the Serpente board 10/10, saying the Serpente is “So small and runs Python.”
You can find Serpente boards on tindie.com.
Three ways to blink an LED: Use CircuitPython to handle intermittent tasks by Ben Everard page 74 and 75.
Winners of the Take Flight with Feather contest!
Thank you Digi-Key, Hackaday, Hackaday.io, Supplyframe, and all the folks who entered the contest! Here are the winners of the Take Flight With Feather Contest at Hackaday!
It’s hard to beat the fidelity and durability of printed text on paper. But the e-paper display comes pretty close, and if you couple it with great design and dependable features, you might just prefer an e-reader over a bookshelf full of paperbacks. What if the deal is sweetened by making it Open Hardware? The Open Book Project rises to that challenge and has just been named the winner of the Take Flight with Feather contest. This e-reader will now find its way into the wild, with a small manufacturing run to be put into stock by Digi-Key who sponsored this contest.
Let’s take a closer look at the Open Book, as well as the five other top entries. You may remember seeing the Open Book back in October when Tom Nardi looked in on early testing for the board. It was prototyped using the Adafruit Feather, which of course was the main requirement of the contest. The controller is now built into the board for standalone functionality with the Feather header providing an opportunity for expansion. The screen is 4.2″ with a resolution of 300×400. It reads files from a microSD card and uses seven buttons on the front of the board for user input.
A dedicated flash chip stores language files with the character sets of your choice. The small LiPo cell can be charged via the USB port, and of course e-paper helps greatly in reducing the power consumption of the reader. You’ll find a few extras on the back. There’s a headphone jack for listening to audio books, and get this, a built-in microphone and a TensorFlow-trained model allow for voice control! There are STEMMA headers to add your own hardware options, and designs for laser-cut and 3D-printed enclosures.
- Take Flight with Feather – contest overview.
- All 84 entries.
- Time coded video URL with the winner, Joey, and from hackaday.io – Sophi.
- Time coded video URL from ASK AN ENGINEER (part 1 and part 2).
Together as a community, we reached over 16,000+ humans, thank you! We share projects, coordinate events, make new friends, build open-source together like CircuitPython, we’ve worked really hard to make this a special place for everyone to share their projects, code, and things they make.
Join today! https://adafru.it/discord Thank you everyone!
- 15,000 – NOVEMBER 20, 2019.
- 14,000 – SEPTEMBER 17, 2019.
- 13,000 – JULY 14, 2019.
- 12,000 – MAY 4, 2019.
- 11,000 – MARCH 11, 2019.
- Adafruit community server on Discord – Now included in the Open Source listings – FEBRUARY 5, 2019.
- 10,000 – JANUARY 13, 2019.
- 9,000 – NOVEMBER 27, 2018.
- 8,000 – OCTOBER 10, 2018.
- 7,000 – JULY 5, 2018.
- Celebrating a year together as a community on Discord! – JUNE 22, 2018.
- 5,000 – APRIL 13, 2018.
- Adafruit is a Discord partner yay! – JULY 22, 2017.
- Adafruit is on Discord – JULY 20, 2017.
*Note: Count is all registered users and includes duplicates, not activity.
We have a post that has an overview about communities and Discord as well – Adafruit.
All a board! New boards on CircuitPython.org
Some of the latest boards to appear on circuitpython.org/downloads. The total is now 103+ boards!
ARAMCON Badge – nRF52840-Based Smart Badge with Bluetooth, Thread Mesh Network, a 2.9” ePaper Display, NeoPixels, a built-in MP3 Sound decoder and more!
Meowbit – From the creative and cat-lovin’ engineers at KittenBot comes the Meowbit – a handheld retro gaming computer for coding your own games.
CircuitPython goes purrrfect with Meowbit
We’re getting close to adding support for a new STM32F4 board to CircuitPython. This is the KittenBot Meowbit, it’s micro:bit-like at the bottom, but has a display and d-pad for Microsoft Arcade games. And now it even works with CircuitPython! Stay tuned for when the PR is merged and try it yourself – YouTube.
Now Playing: Bluetooth Apple Media Service Display
Build a “Now Playing” display with Circuit Playground Bluefruit showing your currently playing song information – learn.adafruit.com
Boston Dynamics SPOT SDK is open-source and it’s Python powered
“OPEN SOURCING SPOT’S SOFTWARE DEVELOPMENT KIT – At Boston Dynamics, we want to build on the momentum of these developers. Starting today, the Spot Software Development Kit (SDK) will be publicly available to view on Github, so that interested developers can see what’s available on the platform as soon as possible. The SDK enables a broad range of developers and non-traditional roboticists to communicate with the robot and develop custom applications that enable Spot to do useful tasks across a wide range of industries. From VR control to automated registration of laser-scanning, connecting Spot’s data to cloud work order services, using Edge computing to help Spot semantically understand its environment, and much more, the possibilities of integrations on Spot are many.”
“The Python QuickStart is a step-by-step guide that will get you up and running on the Python libraries, and cover a number of key concepts along the way. The Python Reference is a detailed reference manual for API calls.”
News from around the web!
Super-hot custom front panel stickers just arrived for the CircuitPython Thermal Camera project by CedarGrove – Twitter.
Sock Puppet Robot using CircuitPython by Alex at hackster.io! – YouTube.
“Time to build a new bot! Alex has been wanting to make a sock-puppet robot, to show off all the cool socks people are giving away as swag nowadays. We’re starting with a base of Adafruit Industries parts, and programming in CircuitPython; let’s see how it is coming together!”
Code to get a Pixy2 driving a Sphero RVR through CircuitPython running on an Adafruit Metro – GitHub.
Here’s Max talking about CircuitPython and PyCubed for space at the new Bay Area Software for Space meetup – Twitter.
Luke’s 5 year old daughter’s latest project: a snowglobe with Disco Cupid on a purple dragon – Twitter.
Bash script to automate stripping OSX extended attributes on all files so they might more easily fit on a CircuitPython flash drive – Adafruit Forums.
“Plug and Play Python (PnPP) on hardware IoT under 5 mins” … “took less than 2 minutes and 40 lines of code!” – Twitter.
JP is trying out Thea’s Winterbloom Sol MIDI CV module, coded with CircuitPython – Twitter.
Joey made a 90-second video showing and explaining the simple software for book reading on the Feather-format Open Book – Twitter.
And there might be a chip that holds it all with CircuitPython too – Twitter.
And CircuitPython and the Babel chip are doing well together too – Twitter.
3D printed, NeoPixel shoes – Twitter.
The “Matrix Collection” uses cutting-edge new technology: thin LED panels with Bluetooth and audio connectivity – lumencouture.
“Paying it Forward: Documenting your Open Hardware Module” – Sean “xobs” Cross – YouTube.
Running Ada on a Feather – adacore.
Check out Max’s new business cards – Twitter.
Python Top GUI Frameworks for 2020 – Introduction & Installation – YouTube.
Mac users are getting bombarded by laughably unsophisticated malware – arstechnica.
Arcade: A Primer on the Python Game Framework – Real Python.
Analytics for PyPI packages – pypistats.org
Reading Binary Data with Python – reachtim.
Drawing with Ants: Generative Art with Ant Colony Optimization Algorithms – Art by Amy.
Measure Code Execution Time Accurately in Python – knasmueller.net
Rich is a Python library for rich text and beautiful formatting in the terminal – GitHub.
Nice collection! “All of Apple’s “Stylus” from the early 1990’s used during the Newton era, to the modern day “Pencil” for the iPad’s!” – Twitter.
Smooth and Effective Device Onboarding through a Mobile Application – Embedded Computing Design.
Generative Placeholders – Use generative art as your image placeholders – glitch.me
Taco Bell Programming by Ted.
Community, productivity, kindness, and mindfulness – Scott Hanselman.
How do Discord and Slack Compare? Mule’s Musings.
What is it like raising money for an Animation Studio? by Pasquale D’Silva at Thinko and we have a post here – Adafruit.
What color is your name? – synesthesia.me
The Maker Movement Unmade? Part 5: The Community Responds – 3Dprint.com
Adafruit and Digi-Key have teamed up to present All the Internet of Things – a six-part video series covering everything you could ever want to know about the Internet of Things, visit digikey.com/alltheiot & YouTube.
We are excited to release Episode 6, the final episode of this series, which incorporates all the different subjects we discussed in our previous episodes and shows off an incredible resource: Digi-Key IoT Studio.
Happy Chinese New Year 2020: Celebrating the Year of the Rat! – Adafruit.
CircuitPython Weekly January 27th, 2020 on YouTube.
PyDev of the Week: Thomas Wouters on Mouse vs Python
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Snekboard by Keith Packard, an open-hardware python microcontroller for LEGO®.
The NXP based Feather is coming along, here are some in-progress photos from Arturo!
A new “Of the Day” data feed/service for Python powered IoT devices.
Easy Machine Learning Electronic Project with Teachable Machine – YouTube.
Bright Wearables bags and backpacks contain a colorful circle of light that you control with code, works with micro:bit, and we wanted to make sure it worked with the upcoming board, CLUE. One cool thing with CLUE is kids could drag and drop any image they want, like a Powerpuff girl to the USB drive that shows up when you use a CLUE. CircuitPython works with Bright Wearables! – YouTube.
A different type of coming soon, We’re trying to not rely on Google ads and Facebook ads for online advertising. We continue to do experiments in the community for other types of ads in other places. Tindie, via Supplyframe has an ad network that can put ads on hackaday, Tindie, and the arduino.cc forums. We worked with them and have a test run on Tindie now that points folks to CircuitPython.org! – Tindie.
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 208!
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 up to?
What is the CircuitPython team up to? Let’s check in!
Earlier this week, I wrote the guides for the LIS3MDL 3-axis magnetometer and the LSM6DS33 6-DoF Gyro & Accelerometer combo. These guides will accompany the new breakouts for those sensors, including one with both!
I later did some refactoring of the ICM20649 library to allow its sensors (gyro, temp, accelerometer) to be accessed and read individually. This will allow for single sensors to be passed into code that can do fun stuff with sensor fusion. I will be continuing on and doing a similar refactor on other libraries.
After the ICM20649 refactor, I added tester code, so that it can be put into production. This one was interesting, as it allows for an external I2C bus for talking to other sensors. To test it, I hooked up a sensor I had handy to the external I2C bus and then put the sensor into a mode that allows the main I2C slave bus to bypass the internal I2C master hardware and connect it to the external bus. I was then able to verify that I could find the sensor I had connected.
Lastly, by the time you read this, we’ll be just about done with the migration of the CircuitPython libraries to GitHub Actions. It’s been a bit of a slog, but it’s to be expected when you’re maintaining repositories for over 200 libraries! This will be a good long term move, as it’s also made us reconsider how we want to maintain the libraries going forward. More to come on that front.
CircuitPyton 5.0.0-beta.4 is now available: I made a new release on Tuesday evening. This release fixes some regressions that were in beta 3, and includes BLE bonding. BLE HID with bonding is now working! Check out the latest BLE HID projects for more details. You’ll need to use the latest 5.x library bundle with 5.0.0-beta.4 for those projects.
We’re finishing off the remaining 5.0.0 issues so we can get 5.0.0 final out to you. There will more upcoming beta and release-candidate releases – as many as needed – to make sure we have things working well before the final release. As always, it’s done when it’s done!
After diving deep into low level audio code for the past few weeks, I took a different direction in the last few days and started implementing icon-based navigation for JEplayer.
The interaction with the icon bar itself is pretty solid, but some of the functions weren’t clear for my first alpha tester. So I expect to re-work this a bit, based on feedback. The code is pushed and the pull request and issue trackers are open, if this interests you and (pre-)alpha quality code doesn’t scare you away.
Over the last week, I published the ItsyBitsy nRF52840 guide. It includes everything you need to know about the ItsyBitsy nRF, including an overview, pinouts and more. I completed multiple Fritzing objects to get us caught up with having Fritzings for all the new boards and breakouts we’ve recently added to the store.
I updated the Circuit Playground library to include a friendly
NotImplementedError in the Express module when attempting to use features not available for the Circuit Playground Express, which involved another stack size increase in CircuitPython for CPX. I added a page to the CircuitPython Made Easy on Circuit Playground Express and Bluefruit guide called The Technical Side that explains how the Circuit Playground library works behind the scenes. If you’ve ever used the Circuit Playground library, you know it simplifies using any of the features of the Circuit Playground boards, but you may not know how it does so. This page is an in depth explanation of how the library works under the hood from import to use, and covers why it works a little differently on Circuit Playground Express. If you’re interested in understanding the underlying concepts, check it out.
Currently, I’ve started the guide for the MLX90640 Thermal Camera, which will cover details about the breakout and examples for how to use it. If you are looking to get started with your new MLX90640, keep an eye out for this new guide.
We’ve begun planning for PyCon 2020. This will be an ongoing thing between now and the conference. There’s a ton to do and we’re getting a head start this year. I will be presenting a tutorial on CircuitPython and Circuit Playground Bluefruit for the conference this year. Some of the Adafruit team will be attending, and, like last year, we’ll be hosting Open Spaces and Sprints. If you’re planning to attend, consider joining the Adafruit Discord, dropping in to the #pycon-us-2020 channel, and letting us know. I’m really looking forward to it!
This past week, I worked on updating the HT16K33 LED Backpack guide and updating the CircuitPython HT16K33 driver by adding a lot of features that were missing when compared to the MicroPython port. I also back-ported some features from the FeatherWing library such as marquee scrolling and matrix shifting that I had worked on last year, so that non-FeatherWing displays could use them. You can check out the guide here.
There were a lot of pull requests for Blinka and related libraries from community members; I spent some time reviewing and testing the code. It’s awesome to see this project growing and community members contributing.
I also worked with John Park to help write a demo to display the current song playing on the phone on the TFT Gizmo using the Apple Media Service and Bluetooth. This was adapted from the example included with the Apple Media Service library which displayed the information in the REPL.
The end of last week, I was heads down on the early iMX RT port to CircuitPython. I’ve gotten a pull request out for it that includes Teensy 4.0 support. It should be merged soon!
I got a bit behind on email, and everything else, so this week was getting caught up. Now that I’m caught up, I’ve been wrapping up the CircuitPython BLE library for the Apple Media Service which John Park will be using shortly. I’ve sorted out some library maintenance things for it with Dylan and Brian’s help, which will make adding more BLE libraries easier.
Currently, I’m tweaking PixelBuf to simplify it’s API a bit before 5.0.0 is official. Folks will be very excited for the NeoPixel speedups it brings.
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.”
“The Open Hardware Summit is the annual conference organized by the Open Source Hardware Association a 501(c)(3) not for profit charity. It is the world’s first comprehensive conference on open hardware; a venue and community in which we discuss and draw attention to the rapidly growing Open Source Hardware movement. Speakers include world renowned leaders from industry, academia, the arts and maker community. Talks cover a wide range of subjects from electronics, mechanics to related fields such as digital fabrication, fashion technology, self-quantification devices, and IP law. As a microcosm of the Open Source Hardware community, the Summit provides an annual friendly forum for the community.”
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.
20190127 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 16,109 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.
GitHub Student Pack + Adafruit
“GitHub is committed to students having access to the best real-world tools and training required to get started as developers. As students prepare to return to school for the spring semester, we’re doubling the value of the GitHub Student Developer Pack (the Pack). This January, we’re welcoming 22 new partners, increasing the total value of tools and training included to more than $200k per student. And each offer is available to every student developer, anywhere that GitHub is available. Whether you’re building your first website, localizing your app for the global market, or even hardware hacking—the Pack provides you with the tools you need to be successful.”
Read more on the post at GitHub by Scott Sanicki, check out the Adafruit landing page on where to get started, see all the benefits on the GitHub Student Developer Pack page, and also we’d like to thank Elena for all the help and support!
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.