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,380 subscribers worldwide! Here it is:
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!
HERE WE GLOW! It’s the latest Python for Microcontrollers community newsletter! We’re on Discord, Twitter, and for past newsletters – view them all here. If you’re reading this on the web, subscribe here. Saddle up! Snake on’.
Everyone is getting a CLUE at PyCon!
Here’s a video from our show when we announced a CLUE for EVERY attendee at PyCon 2020!
Adafruit and Digi-Key have teamed up for PyCon to bring Python on hardware to all participants! And this year, Bluetooth, sensors, IoT, and machine learning!
Thank you Digi-Key!
Digi-Key Electronics, headquartered in Thief River Falls, Minn., USA, is an authorized global, full-service distributor of electronic components, offering more than 10 million products, with over 2.2 million in stock and available for immediate shipment, and stocks over 2,500 Adafruit products. https://www.digikey.com/adafruit
“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.”
Python’s Next Decade and Us by Scott Shawcroft at PyCascades
“Let’s brainstorm where Python will grow in the 2020s! Who will be using Python in 2030 and why? How will people use Python? Where will Python fit in the global computing community? What can we do to make our ideal Python over the next decade? What TLC will help Python the most?”
“Scott Shawcroft is the project lead for CircuitPython and is sponsored by Adafruit Industries, an open source electronics company. CircuitPython is an implementation of Python that runs independent of any OS and is plug and play. It is based on MicroPython rather than CPython. CircuitPython ships on thousands of electronics every month, introducing new coders to Python on inexpensive electronics.”
“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.”
CircuitPython gears up for bicycles!
Here’s some BLE cycling speed and cadence sensor data on the CLUE board! – Twitter.
Joey, started a CLUE-based, bike-mountable commuter computer. It’s CircuitPython powered, connected to an iPhone for weather reports, displays reminders and turn-by-turn directions. The CLUE has tons of environment sensing, including ambient noise, on-board – Twitter.
Wouldn’t it be cool to take any trash-find stationary bike and make it a sensor-filled smart bike? PYLOTON!
Open Hardware Summit 2020 wrist-watch badge updates …
The Open Hardware Summit wrist-watch badge is CircuitPython powered… and it’s the 100th BOARD in circuitpython/downloads. As we see new photos, updates, videos, and more, we’ll post’em up! Here are the latest (above)! The team is also starting on documentation via the QR code on the board.
10,000 Stars for MicroPython
Latest from the Melbourne MicroPython Meetup!
Some videos and more from the latest Melbourne MicroPython Meetup!
The MicroPython Garbage Collector – YouTube.
“Jim Mussared gives the low-down on how the MicroPython GC (Garbage Collector) operates. He discusses the pros and cons of the implementation and considers methods that could potentially improve the GC, particularly around reducing fragmentation. It’s a super-interesting deep-dive into this important feature of MicroPython.”
News from around the web!
Here’s a cap touch photo viewer made with CircuitPython and CLUE! – Twitter.
PCB pins designed by deshipu made with flex at OSH Park – Twitter.
Moheeb’s project is a PyPortal connected to the AWS Cloud using CircuitPython! – Twitter.
Some upcoming video games for the PyGamer by library.of.babel – Instagram.
Storm Glass: A Spherical Swirling Storm on Your Desk – hackster.io
Over the weekend, PyCascades had a badge decorating contest. The winner received a Circuit Playground Express board running CircuitPython! – Twitter.
Ayan has an update to the IoT CloudBadge powered by CircuitPython running on a PyBadge. There is now a side NeoPixel strip on the lanyard – Twitter.
Lots of kids with Circuit Playgrounds – Twitter.
A few updates for the Snekboard, an open-hardware python microcontroller for LEGO. First up, a sensor kit was added, a GP2Y0A41SK0F distance sensor can be used for example. And next up, Snek lessons! – Crowd Supply.
Nice project! This is a nRF52840 Feather Express with an AirLift FeatherWing to get the current CheerLights color via JSON. It then advertises,via BLE, the new color displayed on an ItsyBitsy nRF52840 and a Circuit Playground Bluefruit. – Twitter.
The Feather tripler, DotStars, and CircuitPython. This is a project we posted in the newsletter last week, and now has code posted up. – GitHub.
AT Makers has some updates to the Freedom Wing case. The Freedom Wing Adapter allows power wheelchairs to control an Xbox. AT Makers and AbleGamers released this last week and it’s one of the most joy-filled Feather projects we’ve seen. The AbleGamers Charity creates opportunities that enable play, in order to combat social isolation, foster inclusive communities, and improve the quality of life for people with disabilities – Twitter. Check our coverage with updated links and more here – Adafruit.
electromaker has a contest and folks can receive a Feather-format, CircuitPython-powered, Giant Board –
“Entering is simple. Just come up with a unique project idea that incorporates the Giant Board and submit your idea to us using 150 words. Once you receive your board you can start building your project while using the Electromaker platform to document your build along the way. We will then judge all submitted project entries and award the cash prizes.”
PoE FeatherWing: Ethernet FeatherWing with 4W of PoE power and globally unique MAC – Crowd Supply.
Feather-powered Small Low Powered Mini OLED Retro Handheld – GitHub.
How to Build a Testing Jig: Pogo pins galore – Adafruit.
The “Raspberry Pi PCB Ruler” which displays helpful information, including the Raspberry Pi GPIO pin assignments – fabcross.
A Pi Zero with a Speaker Bonnet, programmed in Python – Twitter.
Adding a Remix on Glitch button to your GitHub project – dev.to
How it works at Tesla – Twitter.
Poga – Import Jupyter Notebooks as Python modules – GitHub.
Clean Code concepts adapted for Python – GitHub.
The 22 Most-Used Python Packages in the World – BetterProgramming.
When your Python code is much faster with PyPy – ao.gi.
Vulkan is coming to Raspberry Pi: first triangle – Raspberry Pi.
Real-Time Object Detection in 10 Lines of Python Code on Jetson Nano – YouTube.
How to use OpenCV’s “dnn” module with NVIDIA GPUs, CUDA, and cuDNN – pyimagesearch.
How I’m testing in 2020 – b-list.org
The Parallelism Blues: when faster code is slower by Itamar Turner-Trauring.
Linus Torvalds Just Made A Big Optimization To Help Code Compilation Times On Big CPUs – phoronix.
vardbg is a simple Python debugger and profiler that generates animated visualizations of program flow, useful for algorithm learning – GitHub.
Chris put in a FOIA request to the NSA for their Python training materials and got back a 400-page printout of their COMP 3321 training course – PDF. And here’s a post that has some takeaways from it…
JOVE is Jonathan’s Own Version of EMACS – GitHub.
Colab now has paid tiers – Collab Pro.
Troll Hunter – Mycroft’s Position on Patent Trolls – mycroft.ai
Mouse vs Python PyDev of the Week: Paul Sokolovsky. This one in particular is interesting as Paul was part of the MicroPython project –
…when I heard about MicroPython Kickstarter campaign and read some technical descriptions which were very solid, I got instantly hooked and pledged to its author to open up source soon after the conclusion of the very successful campaign, instead of at the time of shipping the devices – all to allow open-source cooperation. I’ve contributed to MicroPython for around 4 years since, having written some 30% of the codebase. Sadly, going forward, I felt that the ideas of minimalism with which we started are being betrayed, while conflict of interest was growing between a contributor doing a work in his own free time, based on beliefs and ideals, vs a small business which needs to satisfy its customers to stay afloat and generate profit. So, we parted our ways. That’s how Pycopy came to be. Unlike MicroPython, which came to concentrate on “microcontrollers” (a mistake repeated after another small Python implementation, PyMite, which in my opinion came is its downfall), Pycopy wants to be a full-stack language for “everything”.
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Adafruit CLUE – nRF52840 Express with Bluetooth LE. Over the weekend by request, we have a post on how we named CLUE… CLUE!
If you’re wondering if your open-source community, project, group, or company should start a newsletter like this one, we posted up some stats and more so folks could get an idea of what newsletters we do and subscriber counts – Adafruit.
Testing out microphone fast fourier transform (FFT) on CircuitPython! Thanks to jepler’s porting of ulab (numpy for micropython), we can now do FFT’s in CircuitPython really easily. Here’s a demo of us piping mic data through to make a spectral waterfall. We love to test it out with our recorder, toot toot – YouTube.
Carter is working on a super-cute Valentine’s Day project for the Gizmo using CircuitPython. Welp, as we put this in the coming soon section, the guide came out, so here ya go.
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 211!
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 this week?
What is the team up to this week? Let’s check in!
This week I assembled and tested the Rev B board for the APDS9500 gesture sensor. I then got to work turning my prototype code into something that resembles a CircuitPython driver, followed by writing an Arduino version of the same. This little guy is pretty cool; we’ve got it fairly reliably detecting up, down, left and right hand waves and we’re also getting pretty decent detections of forward and backward motions. There is a lot more this sensor can do, but that will probably be it for now. If it proves wildly popular, we’ll consider adding more.
I also wrote a CircuitPython driver for the DPS310 pressure sensor and helped Kattni with the guide for it. Pressure sensors are pretty cool, and that least right into my next project: I’ve been working on using the Feather STM32F405 Express and ST LPS33 Pressure sensor to make a CircuitPython powered sip and puff input device.
These helpful tools sense the relative pressure applied to a tube by the user and translates that into an input that their computer can understand. This allows folks who aren’t able to use a mouse or keyboard to control their computer by sipping or blowing on the tube. Since we’re doing this one in CircuitPython, we’ll be able to make it super simple to configure things like how much pressure is needed to trigger an input, and what input or input combinations can be triggered by the user.
I released CircuitPython 5.0.0-beta.5 on Tuesday evening. The release includes a number of bug fixes and enhancements, and you can now connect to up to five BLE devices instead of just two.
I am working on a CircuitPython BLE bicycle speed and cadence library. I built a jig to simulate a bicycle hub and crank arm (running at the same speed), spun by a motor driven by a Crickit. It was a pleasure to actually use the Crickit library I wrote a long time ago for something other than just testing.
After I finish the bicycle library, I’ll be working on increasing the SPI speed on the nRF52840 so we can drive displays more quickly. The nRF52840 can do SPI up to 32MHz on one of its SPI peripherals, but we have to work around some significant hardware bugs to make use of it.
This week I’m building on work by Zoltán Vörös (v923z on GitHub), Andrew Gatherer (@GathererA) , and Thomas Schucker to bring a library called “ulab” to CircuitPython.
ulab is similar to the numpy package for standard Python, and enables efficient operation on arrays of numbers. ulab is authored primarily by Zoltán Vörös, and Andrew Gatherer did the bulk of converting it so it was ready to be used in CircuitPython. Their open source code really made this project a breeze!
ulab includes routines for FFTs, so I adapted a demo by Thomas Schucker to compute an audio spectrogram and made it run on the new CLUE board from Adafruit.
It’s our hope to enable ulab soon for all nRF boards and almost all “m4” boards supported by CircuitPython! It slightly missed the deadline for beta 5 because we’re working on the documentation.
This week I created a library for the new Adafruit CLUE. Adafruit CircuitPython CLUE makes it super simple to use all the features of the board, without the need for all the setup. It provides easy access to all the sensors, buttons, LEDs and touch inputs. As well, it provides an quick way to display lines of text on the display, with customisable colors. This allows you to quickly create a list of sensor data, or any text you’d like. There is a simpletest example that prints sensor data to the serial console, so you can verify that all your sensors are working as expected, as well as an example of how to use the text display feature of the library to show sensor and input data on the display. For more information and examples of each feature, check out the documentation on Read the Docs.
The library is available in the CircuitPython library bundle. Testers have already found a couple of issues with it and I’ve fixed them, so check for updates over the next few weeks as more people start testing it and, as is the way of things, find new bugs. You can always download the latest release from GitHub, but it’s best to keep everything up to date with the latest bundle. Next up I’m working on creating a series of examples for CLUE using all of the amazing built in sensors, starting with a height calculator. Keep an eye out for a bunch of fun things you can do with your new Adafruit CLUE!
This week, I added UF2 support to the STM32 make options. I also started on the STM32F407 Discovery board definition, which unfortunately has gotten caught up in some USB weeds. I also wrapped up the last STM32 issue for 5.0 by adding core temperature, voltage and us delay support.
This week, I’m hoping to wrap up my support for the Espruino boards, and also regroup a little and analyze the priorities for the STM32 port overall. I’ll also be modifying the UF2 bootloader to better match the behavior of other ports, and making it available to other boards with good external flash support.
This past week, I have been heads down mostly working on the WebSerial plotter. I have added features such as a dark mode theme and an XY plot mode for mapping acceleration data. After adding those, I have been combing through the code making improvements for switching seamlessly and other improvements in general.
This week I dove into using Adafruit IO with CircuitPython. Brent, Adam, Ladyada, and Justin have done an awesome job getting CircuitPython connected. I’m working to create a simple, but not secure, sensor network using Bluetooth Low Energy advertisements that we’re calling BroadcastNet.
In BroadcastNet, one or more bridge devices will listen for broadcasts and use WiFi or Ethernet to log data to an IoT service. I’m using an ItsyBitsy M4 Express with a Airlift Bitsy Wing now. The sensor nodes can be any nRF52840 based board and use any sensors that are connected to it. The broadcast packet format is standardized so that the bridges can listen for multiple sensors and automatically create new feeds for new data.
BroadcastNet will make it very easy to customize your own sensors for whatever purpose you have.
Boston meetup for CircuitPython on February 12th, signups open! Lucian Copeland is hosting a CircuitPython meetup on February 12th at 5-7pm at the Artisan’s Asylum makerspace in Somerville, MA (greater Boston, USA). Attendees of any level of experience are welcome, from first time hobbyists to CircuitPython core contributors. Visitors who bring their physical projects are also encouraged to transition to the Artisan’s Asylum Circuit Hacking night from 6:30-8pm for advice on PCBs and physical components. CircuitPython is a programming language designed to simplify experimenting and learning to program on low-cost microcontroller boards. It makes getting started easier than ever with no upfront desktop downloads needed. Once you get your board set up, open any text editor, and get started editing code. It’s that simple. Artisan’s Asylum is a 501(c)3 non-profit community fabrication center, the second largest makerspace in the US at just shy of 40,000 square feet and over 300 active members. See the Eventbright page for exact location and signups.
“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.”
A workshop on CircuitPython and the very basics of hardware interfacing. UMass Amherst, Amherst, Massachusetts USA February 13th, 2020, from 6:00 to 7:00 pm at the all campus Makerspace in the Astronomy Building.
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.
20190206 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,364 humans, thank you! Join today! https://adafru.it/discord. Looking for other Discord servers with electronics, Python and more? Here are some of the ones we’re on!
- Adafruit community: 16k members, https://discord.gg/adafruit
- Arduino: 3k members, https://discord.gg/jQJFwW7
- Boldport Club: 269 members (website), https://discord.gg/hZhdtEh
- Coding Train: 2k members, https://discord.gg/hPuGy2g
- Developer-Ecosystem: 514 members (FAQ), https://discord.gg/H5ETM7C
- Evil Mad Scientist: 66 members, https://discord.gg/axhTzmr
- First Robotics Competition: 9,957 members (FRC server list), https://discord.gg/frc
- Galaxy’s Edge: 4k members, https://discord.gg/nsa9wCz
- Jaynky: 460 members (website), https://discord.gg/ebznuQw
- MicroPython: 270 members, the community currently uses slack at this time, https://micropython.slack.com
- 1BitSquared: 302 members, https://discord.gg/P7FYThy
- Pimoroni: 1,800 members, https://discord.gg/hr93ByC
- Python: 33k members (website), https://discord.gg/python
- TensorFlow: 1,330 members, https://discord.gg/KNm5Epj
- usb-tools: 248 members, https://discord.gg/HKAhHub
- Visual Studio Code: 717 members, https://discord.gg/ca72qgM
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.