View this email in your browser.
Hi everyone! It’s the latest and greatest 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. Here we go!
Python snakes its way to Morgan Stanley Makerspaces
Morgan Stanley Makerspace Program: Circuit Playgrounds with CircuitPython – Twitter.
HackSpace 28 “CircuitPython is the future of digital making”
Issue 28 – HackSpace magazine: Electronics: Build Better Circuits – Columns include: Why CircuitPython is the future of digital making!
You don’t have to understand electronics to be a maker, but adding a few billion electrons can add light, interactivity, motion, or (some limited) intelligence to the things you make. In the latest issue, HackSpace helps you get started with electronics and in building better circuits.
- Design a vase in Fusion 360
- Make things with toothpicks
- Add audio to Raspberry Pi projects
- 3D print strong parts
Read more, download PDF, buy now, subscribe.
CircuitPython measures up!
Here’s a CircuitPython library parsing the data output of a Mitutoyo Digimatic instrument, like calipers or micrometers – GitHub.
News from around the web!
For Engineers Week, check out Digi-Key’s events with Circuit Playgrounds and more!
New part day: Ooh, the things you can do with a CLUE – hackaday.
CircuitBrains Deluxe packs CircuitPython into 1 square inch – OSH Park.
Hello world! – Twitter.
“soooooo simple and good” – Twitter.
CedarGrove is learning to use CircuitPython DisplayIO. First, to make text and labels, then an animated battery monitor sprite AND an automatic DST for the attached RTC – Twitter.
CLUE + Bright Wearables = SUPER GOOD – Twitter.
Ray tracing with uLisp – uLisp.
Some Adafruit app stats from our Apple iOS apps, and our Google Android apps from the Google Play Store. Worth noting: Bluefruit LE Connect for iOS has 118,065 downloads.
Google Summer of Code is starting up. and in the idea stage for Arduino, they are looking for MicroPython examples – GitHub.
Managing open source in the cloud is hard – ComputerWeekly.
Build a Raspberry Pi Zero W Amazon price tracker with Python – Raspberry Pi.
Finding the Perfect Python Code Editor – Real Python.
Building Good Tests by Chris NeJame.
Robots and Generative Art and Python, oh my – Generative Hut.
Python Popularity Surging Because AI/ML Engineers Need It – WaterWorks.
Python Tools for Record Linking and Fuzzy Matching – Practical Business Python.
Faster, Easier, Better: Why Python is the Best Programming Language for a Startup – Djangostars.
MiniPB is a Mini Protobuf library in pure Python – GitHub.
cpp2python helps to convert C/C++ sources to C/C++ -like Python sources – GitHub.
Getting the most out of Python collections – Sourcery.
2019 Transparency Report – GitHub.
Glitch, Glimmer, and the Web We Need – Glitch.
Good thread “what is the most intimidating part of hardware development to you, if you’ve ever had doubts about starting a first project with microcontrollers, etc?” – Twitter.
PyDev of the Week: Hameer Abbasi on Mouse vs Python
CircuitPython Weekly for February 24th, 2020 on YouTube.
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Awesome MicroPythons, the ports and forks of MicroPython.
Feather previews! Twitter and Instagram.
EDGE BADGE cases!
New Learn Guides!
CircuitPython Powered Sip & Puff with ST LPS33HW Pressure Sensor from Bryan Siepert
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 214!
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 started working with two new sensors. The first is the ST LPS25, the little sister to the LPS33. In the same way that the LPS33HW and LPS35HW are close enough that they’re a ‘family’ of sorts, the LPS25 is a member of the LPS2X family. With that in mind, expect to see more siblings in the future.
I wrote and published the CircuitPython and Arduino libraries for the LPS2X family over the last week. The LPS2X family is similar to the LPS3X, most of the operations are very similar, but they’re different enough to need a new library. After finishing the libraries, I put together some tester code by making a few small tweaks to the code for the LPS3X tester.
As I write this, I’m about halfway through the Arduino library for the HTS221 Barometric Pressure and Temperature sensor from… ST! (What can I say, they make all kinds of good sensors). This sensor is an admirable little guy, dutifully doing what humidity sensors do, letting you know if you hair will be frizzy because there is too much water floating around in the air! Or if it’s to muggy for your mogwai.
I’m resolving the remaining few issues we have as blockers before CircuitPython 5.0.0 is released for general availability.
I’ve started investigating BLE-capable thermometers, which are often used for barbecue monitoring or other cooking applications. Unfortunately, all the ones I’ve encountered use vendor-specific BLE services which we’ll need to reverse engineer. There is a standard BLE “Environmental Sensing Service” that includes temperature, including multiple values, but I haven’t seen it used.
This week I worked on adding Adafruit CLUE support to the Adafruit CircuitPython PyBadger library. PyBadger is a badge-focused library designed around making it super simple to create a Hello My Name Is name badge, display a customised QR code, or a “business card” with an image, name and email address. Adafruit and Digi-Key are giving away CLUEs to each attendee at PyCon 2020, and we wanted to make it easy to quickly create a CLUE badge using CircuitPython. This involved a complete refactor of the library, but resulted in a simpler code structure when using it. Now, you simply import the library, and it automatically detects which supported board you are using, and imports the appropriate features. You no longer need to instantiate the library after importing. To test this, I created a test suite program that utilises every possible feature in the library, with some board detection to include features not applicable to all three boards. The code wasn’t pretty, but it made testing all the features of the library with the updates super quick. It also meant I was able to get assistance from Melissa with testing, while minimising the amount of effort required on her part – thanks again, Melissa!
PyCon 2020 is right around the corner, and I am beginning preparation. One of the things I want to do is go through all the libraries and identify “Good First Issues” and create labeled GitHub issues for each one. Last year at the PyCon Sprints, we had a huge amount of participation, and we were able to facilitate that by having things for everyone to work on regardless of experience level. While hardware was crucial to this, having a list of issues to work on was equally important, as it gave us a place to point people to help them get started on their own. There are plenty of things that need to be done with the libraries that would be great for a beginner to take on, but we don’t have GitHub issues for very many of them, explaining what each of them are. I will be creating a document outlining what I’m looking for in a Good First Issue, and covering what the content of the issue should look like. If you’re interested in helping, please ping me, @kattni on GitHub or the Adafruit Discord, and I will be happy to include you in the effort.
This week I worked on a large container of ibuprofin, courtesy of Influenza A, which knocked me out for almost a week . The flu vaccine this year missed the common strains, and it’s a “double barrel” flu season anyway (both B and A), so remember to wash your hands and stay away from coughing people.
In other news though, I’ve gotten started on the PulseIO module for STM32, following the wrap up of the new Espruino Wifi and Espruino Pico boards, and the addition of the core temperature/voltage module. I’m hoping to get back up to speed this week, with some IR LED testing of the PulseIn and PulseOut modules.
This last week, I started by taking a break from WebSerial for a couple of days and focused on reviewing PRs and fixing issues. I picked back up on creating a 3D Model viewer that worked by taking magnetometer data and changing the rotation of a model. This was done using both Euler angles and Quaternions,, and I added the ability to select between the two, although quaternions is definitely the preferable method.
After that was wrapped up, I moved over to familiarizing myself with WebBluetooth and adapting the web application to be able to display multiple graphs and other pieces of data in a dashboard style interface.
At the end of last week, I created an Eddystone BLE library for broadcasting URLs. Keep an eye out for a guide from John Park about it.
After that, I continued work on the Raspberry Pi based BroadcastNet bridge. I’ve been pushing that work out into libraries including a new Adafruit Blinka bleio library which includes basic scanning support on Linux. I’ll also be working to wrap up my changes to ESP32SPI as well.
The 2020 Open Hardware Summit is March 13th 2020, NYU School of Law, New York USA. The “badge” for the event is CircuitPython powered!
“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.”
Additionally, there is a 2020 Open Hardware Summit topic on Discord to join before, during, and after! – Discord.
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.
CircuitPython’s stable release is 4.1.2 and its unstable release is 5.0.0-beta.5. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20190222 is the latest CircuitPython library bundle.
v1.12 is the latest MicroPython release. Documentation for it is here.
3.8.1 is the latest Python release. The latest pre-release version is 3.9.0a3.
1,604 Stars Like CircuitPython? Star it on GitHub!
ICYMI – In case you missed it
The wonderful world of Python on hardware! This is our first video-newsletter-podcast that we’ve started! The news comes from the Python community, Discord, Adafruit communities and more. It’s part of the weekly newsletter, then we have a segment on ASK an ENGINEER and this is the video slice from that! The complete Python on Hardware weekly videocast playlist is here.
This video podcast is on iTunes, YouTube, IGTV (Instagram TV), and XML.
Weekly community chat on Adafruit Discord server CircuitPython channel – Audio / Podcast edition – Audio from the Discord chat space for CircuitPython, meetings are usually Mondays at 2pm ET, this is the audio version on iTunes, Pocket Casts, Spotify, and XML feed.
And lastly, we are working up a one-spot destination for all things podcast-able here – podcasts.adafruit.com
Codecademy “Learn Hardware Programming with CircuitPython”
Codecademy, an online interactive learning platform used by more than 45 million people, has teamed up with the leading manufacturer in STEAM electronics, Adafruit Industries, to create a coding course, “Learn Hardware Programming with CircuitPython”. The course is now available in the Codecademy catalog.
Python is a highly versatile, easy to learn programming language that a wide range of people, from visual effects artists in Hollywood to mission control at NASA, use to quickly solve problems. But you don’t need to be a rocket scientist to accomplish amazing things with it. This new course introduces programmers to Python by way of a microcontroller — CircuitPython — which is a Python-based programming language optimized for use on hardware.
CircuitPython’s hardware-ready design makes it easier than ever to program a variety of single-board computers, and this course gets you from no experience to working prototype faster than ever before. Codecademy’s interactive learning environment, combined with Adafruit’s highly rated Circuit Playground Express, present aspiring hardware hackers with a never-before-seen opportunity to learn hardware programming seamlessly online.
Whether for those who are new to programming, or for those who want to expand their skill set to include physical computing, this course will have students getting familiar with Python and creating incredible projects along the way. By the end, students will have built their own bike lights, drum machine, and even a moisture detector that can tell when it’s time to water a plant.
Visit Codecademy to access the Learn Hardware Programming with CircuitPython course and Adafruit to purchase a Circuit Playground Express.
Codecademy has helped more than 45 million people around the world upgrade their careers with technology skills. The company’s online interactive learning platform is widely recognized for providing an accessible, flexible, and engaging experience for beginners and experienced programmers alike. Codecademy has raised a total of $43 million from investors including Union Square Ventures, Kleiner Perkins, Index Ventures, Thrive Capital, Naspers, Yuri Milner and Richard Branson, most recently raising its $30 million Series C in July 2016.
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.