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). Over 7,500 subscribers worldwide!
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.
Hi everyone! It’s the latest Python for Microcontrollers newsletter, brought you by the Python on Hardware community! We’re on Discord or search in Server Discovery for Python, Twitter, and to see past newsletters – view them all here. If you’re reading this on the web, subscribe here. Let’s get this going!
CircuitPython 5.0.0 is out now! After two release candidates, 5.0.0 has been released! 5.0.0 is the latest major revision of CircuitPython. It features many improvements and enhancements to
displayio, including grayscale OLED and e-paper displays, extensive additions and improvements to BLE support, beta support for the STM32F4, iMX RT10xx and Sony Spresense microcontroller families, Korean translations, and PWM audio support. It is the first stable release for 51 boards (out of 116)! See the release notes for more details.
Thank you to all of the CircuitPython contributors and community!
Nothing is perfect, so please let us know if you find any issues. We’re looking forward to growing CircuitPython even more with follow up 5.x releases.
With the CircuitPython 5.0.0 Release Candidate 1 (released over the weekend) there are also some new boards in circuitpython.org/downloads, including:
Pyloton: Open-source CircuitPython Cycling Computer
Say hello to the open-source cycling computer that displays heart rate, speed, cadence, and song playback info (video)! Pyloton is a CircuitPython bike computer made with the CLUE board. Pyloton measures Bluetooth LE heart rate, speed, and cadence. It also provides Apple Music Service song info, combined on one small device with a sharp display and a 3D printed handlebar mount (or optional wrist mount).
This project is the culmination of three previous Adafruit Learning System projects, plus some new abilities of our Bluefruit code to connect to multiple peripheral devices! Previously, we created these standalone projects:
- Now Playing: Bluetooth LE Apple Media Service Display
- BLE Heart Rate Zone Trainer Display
- BLE Cycling Speed & Cadence Sensor Display
You may refer to those guides for additional details on the sensors, libraries, and code. Here, we’ll show you how they can all be combined into one device. Learn how to make your own open-source bike computer on learn.adafruit.com!
Latest updates for the Open Hardware Summit 2020 wrist-watch badge
- Testing of the Open Hardware Summit 2020 wrist-watch badge.
- Open Hardware Summit 2020 wrist-watch badge updates.
- The Open Hardware Summit 2020 badge is CircuitPython powered… and it’s the 100th BOARD!
- 2020 Open Hardware Summit #ohsummit20 topic on Adafruit’s Discord AND logos/art for the event with CircuitPython.
- 2020 Open Hardware Summit – 2020.oshwa.org
- OH Summit on Twitter.
CircuitPython snakes its way to the Feather nRF52840 Sense
The Adafruit Feather Bluefruit Sense takes our popular Feather nRF52840 Express and adds a smorgasbord of sensors to make a great wireless sensor platform. This Feather microcontroller comes with Bluetooth Low Energy and native USB support featuring the nRF52840! This Feather is an ‘all-in-one’ Bluetooth Low Energy with built in USB plus battery charging. With native USB, it works great with CircuitPython! – Adafruit.
Python slithers on over to Android
PYTHON ON HARDWARE – The future is serpentine
PYTHON ON HARDWARE – The future is serpentine by Drew Fustini, page 23 in the latest HackSpace Magazine. The full article is now here.
…“Python-based boards have a much quicker prototyping cycle: as soon as you press save, your code will start running. Python is also more readable, making it seem less daunting to people who aren’t already programmers.”
Command Line Heroes by Red Hat, hosted by Saron Yitbarek
Command Line Heroes is an original podcast about the people who transform technology from the command line up. Command Line Heroes tells the epic true tales of how developers, programmers, hackers, geeks, and open source rebels are revolutionizing the technology landscape. Presented by Red Hat and hosted by Saron Yitbarek. Saron is a developer and the founder of CodeNewbie, the most supportive community of programmers and people learning to code – Red Hat.
No one ever said hardware was easy. In Season 4, Command Line Heroes is telling 7 special stories about people and teams who dared to change the rules of hardware and in the process changed how we all interact with technology. There is an entire episode devoted to Open-Source hardware and it features Adafruit!
This week, Personal Computers: The Altair 8800 and the Dawn of a Revolution – Homebrewing a new industry.
News from around the web!
Never too young to learn some Python! Elkins Robotics Tinker Squad had FUN using sound to light up their Circuit Playgrounds using CircuitPython – Twitter.
CircuitPython powered big honkin’ button sampler by Thea Flowers – Twitter.
From Addis: “Simon is deceptively simple to code in CircuitPython” – Twitter.
All of the parts you need to print your own BLE synth powered by CircuitPython on a Feather nRF52840 and Circuit Playground Bluefruit – Thingiverse.
plen:bit humanoid robot gets a CLUE! The PLEN robot from Japan is an adorable 8-servo humanoid robot. It’s designed to fit a micro:bit and we can also get it working with the Adafruit CLUE board in CircuitPython. This example is just turning on the eye LEDs and moving the arms around, a great basis to build upon! Code is available here – GitHub and YouTube.
For Doctor Who fans, Psychic Paper using CircuitPython – Twitter.
Bluefruit and Crickit – Twitter.
CircuitPython extension for Visual Studio Code – Twitter.
“Commander” (16MB FLASH/SD/accelerometer/4 buttons/9 LED) running CircuitPython. The goal is for it to “play” keystrokes from an SD card – Twitter.
Ghost Frame: Display Images of People (and Cats) that Don’t Exist.
Spotted this Feather form factor Open Source Hardware board with the new QuickLogic Corp FPGA at Embedded World. It has a hard Cortex M4 microcontroller and runs Zephyr – Twitter and check out awesome-feather for the latest!
Ritual mask of a predator priest – Instagram.
Found on Tindie… The EasyC by e-radionica.com/e-r.io STEMMA/STEMMA QT/QWIIC/GROVE/GRAVITY (compatible) connectors which is the JST connector a lot of us are using. Great to see more adoption of this connector. It’s low-cost, easy to use, and easily available! And check out https://github.com/adafruit/awesome-stemma
pyEC, a pyBoard Compatible E-Bike Computer – MakeStuff4.fun
rpi_bonnet_dashboard: A network speed indicator for Raspberry Pi with the Adafruit OLED bonnet – GitHub.
Snekboard: An open-hardware Python microcontroller for LEGO. It now runs CircuitPython on the current prototypes!
SMS Doorbell with MicroPython and Twilio.
Implementing Bluetooth Beacons (iBeacon) nRF52 use case – novelbits.
Contributing to CPython – dropbox.
Sounds of COVID-19 – shardcore.org
SweynTooth: Unleashing Mayhem over Bluetooth Low Energy – GitHub.
Codecademy has already outlived many rivals — is that enough? – TechCrunch. They say they have 100,000 paying members and have raised $42.5 million over the last 8 years.
And in other news… Patreon is up to over 100,000 online content creators. They just raised $60 million and has raised $165 million total since 2013.
Copyright Law for Makers and Educators – MCU on Eclipse. A little hard to follow what exactly happened, but a good read.
A New Breed Of Engineer: The industry needs a new breed of engineers that can understand both hardware and software and not just for firmware. Co-design has failed – we need co-engineers – SemiEng.
The Missing Semester of Your CS Education – MIT.
Learn HiPlot in 6 mins — Facebook’s Python Library for Machine Learning Visualizations
High-Dimensional Interactive Plots Made Easy. A Hands-on Tutorial – GitConnected.
Programming Language Rankings: January 2020, check out Python! – RedMonk.
Verible provides a SystemVerilog parser, style-linter, and formatter – GitHub.
Injection Molded Clear Case for Apple IIe and IIgs – Kickstarter.
While my BLE Gently Weeps: Maker Update #163 – YouTube.
“With the ESP32-S2 chips, modules and development boards going into into mass production from February 2020 onwards, the functional advantages of all these products will become readily available to the entire IoT market. In the course of 2020, Espressif will launch more chips in the ESP32-S series and, at the same time, its simplified version, the ESP32-C series, will also be launched.”
First up for us will be TinyUSB, then CircuitPython! – GitHub.
PyDev of the Week: Doug Farrell on Mouse vs Python
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? mitutoyo: A library for the Mitutoyo Digimatic (SPC) protocol using CircuitPython.
IoT Design Week with Microchip’s “Wizard of Make” Bob Martin and Adafruit
IoT Design Week with Microchip’s “Wizard of Make” Bob Martin and Adafruit. We’ll be on 3pm to 4pm ET on Tuesday March 10th, 2020 (video).
Metro M7 RT1011 w/AirLift WiFi. It’s not out yet…so don’t ask! It was so cold out, we stayed in and worked on the Metro M7 featuring the iMX RT1011 (the li’l sister chip to the RT1062 that stars in the Teensy 4). This chip is really fast, clocking at 500 MHz, and has 128K of RAM. For FLASH, it uses an external QSPI chip, which we’ll share for filesystem use as well. On the left, we put an ESP32 footprint, we use the ESP32 as a WiFi co-processor. You can power it over USB C or a 9V DC power jack, we’ll probably change out the 3V LDO regulator for a buck, since the current requirements are going to be high on this board. This is only 2 layers, but we think it might be OK.
CircuitSTONKS snakes its way to the NXP iMX RT1011 M7 Feather! Arturo sent us some Feather M7’s based on the fancy new RT1011 – this chip runs at 500 MHz but is only a couple US dollars each. With plenty of QSPI FLASH on board and RAM, it can make for a nice IoT engine. Here I’m using it with our ESP32 AirLift FeatherWing for WiFi connectivity and a small color TFT. The code is about 80 lines of CircuitPython – available here and YouTube.
It works on the Feather MIMXRT1011 too! – Twitter.
The NAU7802 is one of the few low-cost 24-bit ADCs, designed for bridge/strain-gauge applications. Good for precision sensor applications!
The ICM20948 is the update to the MPU-9250, we’ve done a few revisions of this tricky chip – it has a 1.8V VDDIO so there’s a lot more level-shifting required to make it 3/5V compatible! But we’re getting close… this chip is interesting in that it has a quaternion-output fusion engine built in! Hopefully this revision will be our last prototype.
Following up on Bryan’s popular DS3502 I2C digital potentiometer breakout for audio uses, we thought we’d follow up with a DS1841 digital log pot! This could be a great add-on for digitally controlled synths!
We saw this low cost humidity/temperature chip from AOSONG and designed a STEMMA QT board with it.
New Learn Guides!
Thank you Morgan Stanley Makerspace Program for your work with Women in Need
Here’s a follow up from our story about this from last week. The Morgan Stanley Technology team recently hosted teens from Women In Need to teach them coding fundamentals using the Adafruit Circuit Playground Express. Participants created light sensors, accelerometers and more as part of the Morgan Stanley Makerspace Program. Morgan Stanley is a supporter of NYC’s largest provider of shelter and supportive housing for homeless families. Vadaparty gave us some additional information as well:
“Our family benefited from Adafruit a lot. My son grew up working on the fruits of Adafruit – from 7th grade through 12th and got into Georgia Tech (last post from high school. He taught at local STEM clubs, formulated curriculum, etc.) Seeing this success, I started a “Morgan Makerspaces” at Morgan Stanley with an intent to teach underserved communities through Morgan’s philanthropy division. What started as a small group effort grew into a large-scale success – LinkedIn. Thought all the readers and folks @adafruit would enjoy! Presently children of New York’s Women in Need shelters are receiving this education! I am personally grateful to Ladyada’s unstoppable good work! I think Adafruit’s equipment helps us all – kids of all ages, people of all backgrounds.”
Read more and on LinkedIn. Thank you so much: Kaitlyn Szydlowski, Kumar Vadaparty, Beth Reisman, Chelci Erin Houston-Burroughs, and Mimi Flynn, and everyone at Morgan Stanley for all your work with Women In Need.
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 215!
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!
Last week I managed to finish both the Arduino and CircuitPython drivers for the HTS221, as well as tester code for it to allow us to verify each and every board as they make their way from the oven to you. I also managed to write guides for both the LPS25 and HTS221. They’re both in the cue for manufacturing, so keep an eye out for them!
Next up I’m working with the ICM-20948 from invensense. This is a pretty groovy 9-DoF IMU that they describe to be “the World’s Lowest Power 9-Axis MEMS MotionTracking™ Device.” It certainly does have lots of neat features that can enable low power operation, so I’m interested to see what it’s capable of.
Over the next week, I’ll be working on libraries, tester code and likely a guide for the ICM-20948.
I finished off the last remaining blocking issues for a CircuitPython 5.0.0 general availability release, and created and released the first (well, zeroth) release candidate. So we hope to have a stable 5.0.0 release soon!
I ended up doing a lot of support over the last week, which brought me back in touch with the kinds of hardware and software issues people are currently encountering. This is helpful in figuring out what to work on next.
I’ve continued working on ulab with great ongoing support from its primary author, Zoltán Vörös. Scott also pitched in by helping us with a problem importing built-in modules whose names contain dots. There are a number of things to do before it’s ready, so we anticipate ulab will be in a 5.x.0 release, rather than in 5.0.0.
I also added support for SparkFun’s Thing Plus – SAMD51 to CircuitPython. This board has a similar microcontroller to Adafruit’s Feather M4 Express, with somewhat less storage for your Python code but a Qwiic connector—compatible with STEMMA QT products—built in. This will appear in the next beta or release candidate of CircuitPython.
This week I continued working with the Adafruit CircuitPython PyBadger library. In preparation for PyCon 2020, I was tasked with creating a simple badge example for CLUE. After deciding I wanted the option to include a preferred pronoun, it became clear what we currently had available wasn’t enough. So, I added a custom badge feature to PyBadger. It expands on the Hello-My-Name-Is-style badge to allow you to display multiple lines of text over a color-block or image background. The new feature expands the scope of what PyBadger can do significantly. With only a few lines of code, you can create a custom badge displaying whatever information you’re looking to share. The new PyBadger will be available in the CircuitPython Library Bundle this week, including examples for PyBadge, PyGamer and CLUE. I’m working on a guide page to go with it that which explains how to use all the features to make a custom badge on your Adafruit CLUE. Keep an eye out for that update!
This past week, I worked on the PulseIO implementation outside of PWMOut, which is mostly used for IR sensors. This includes PulseOut, which emulates things like TV remotes by sending a carrier signal in a defined set of pulses, and PulseIn, which interprets this information.
I also wrote a guide for getting started with the Zephyr RTOS this week. Zephyr is on everyone’s radar as an infrastructure layer that’s being used in MicroPython and may eventually be worked into CircuitPython. It was interesting to get to work with a new RTOS aside from my previous mainstay Mbed-OS, and I’m hoping to move a number of my personal projects to it in the future.
This past week I’ve been focusing on creating a Web Bluetooth dashboard that works with the Bluefruit Playground firmware on CLUE and Circuit Playground Bluefruit boards. I started off with learning Web Bluetooth and after getting the basics down, I started programming a dashboard.
This week I’ve been working on wrapping up BroadcastNet. I redid the scanning using
hcidump because the bluez interface always deduplicates advertisements from a single device. It’s been running reliably here at my house, so I’ve committed and released everything. John Park just got it running, so expect to see a guide about it soon!
I also collaborated a bit with Dan on bug squashing for the 5.0.0 release candidate. I squashed the bug where leaving a CircuitPython device with the drive ejected but USB plugged in would crash my Mac. I also fixed a safe mode crash when exiting the REPL with CTRL-D.
I’m vacationing the last half of this week in Colorado. Thursday is a bit of work day because I am visiting SparkFun and meeting up with Great Scott Gadget folks to chat about CircuitPython! The rest of the weekend is vacation.
Next week, after the regular CircuitPython Weekly, I’m going to jump into basic power savings so that
time.sleep will actually sleep the CPU. Hopefully that basic work will give a big energy savings for all of the BroadcastNet sensors and other CircuitPython boards.
“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.
Now is a good time to try out tools like StreamYard to bring people together online via collaborative video and streaming
Speaking of events, as of right now we do not know which ones will be canceled or postponed due to COVID-19. That said, there is no time like the present to use technology to bring people together… Adafruit has been doing a form of live video “Show and Tell” for about 10 years or so, every single week. We started with Google Hangouts, and after that was sunsetted by Google, we moved to StreamYard and it’s fantastic. The video above is from our Show and Tell from last week. We have some of our team show what they’re up to and anyone around the world can join in and show and share their latest project. We’ve hired about a dozen people from meeting them via our Show and Tell. We’ve seen kids grow up before our eyes over a decade, we’ll made friends, a community together. We’ve had folks stream from hospital beds to makerspaces to girl scout troops.
Here’s the playlist on YouTube, there are about 400 videos … and check out StreamYard. We have nothing to do with them other than using their service. We stream the Show and Tell each week to: YouTube, Facebook, Twitch, Mixer, LinkedIn, and Periscope. The text chat is in our Discord, with about 16,000 members: https://discord.gg/adafruit
If you have a company or community (or both!), try it out, and if you make “something”, anything, (everyone does!), stop by and join us Wednesdays at 7:30pm US Eastern Time.
20200229 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 and later versions 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,702 humans, thank you! Join today! https://adafru.it/discord
We are now in server Discovery! JOIN 16,000+ makers!
YAY! Discord’s Server Discovery has a bunch of requirements and our community got there together! The Adafruit’s community Discord server is now in Server Discovery! Here were the requirements!
Thanks for abiding by our community Guidelines and keeping your server safe!
For now, Discovery is limited to only servers with more than 250 members.
Meets Age Requirement
Servers in Discover have to be at least 8 weeks old.
Your community metrics look great! Your members are active and continuously come back to participate.
No Bad Words
Your server name, description, and channel names looks clean!
2FA Requirement For Moderation Enabled
Members with moderation powered (e.g. admins or mods) are required to have 2FA enabled to perform moderation actions.
You can find it by click the magnifying glass and searching for: Adafruit, DIY, electronics, Python, Raspberry Pi, Arduino, and more! Join all 16,000+ makers on the Adafruit Community server! https://discord.gg/adafruit
AND: Crowd Supply has a Discord server! Want to chat with other engineers, creators, open source enthusiasts, and makers working on their projects around the world? You can join here: discord.gg/mAgtHAw
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.