ICYMI (In case you missed it) – Tuesday’s Python on Microcontrollers Newsletter from AdafruitDaily.com went out.
If you missed it, subscribe now! – You’ll get one terrific newsletter each Tuesday (before this post). Over 8,140 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 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!
It’s getting close to Halloween – it’s now time to make some projects to display ones seasonal spookiness. And what a perfect way to do so using all the spooktacular items Adafruit sells, from NeoPixels, EL wire, spooky eyes with MONSTER M4SK and HalloWing, and much, much more.
New and Favorite Projects:
- Halloween Countdown Display Matrix
- Matrix Portal Creature Eyes
- MONSTER M4SK
- HalloWing M4
- Circuit Playground or Hallowing Jack-o’-Lantern
- Holiday Icicle Lights with Flair with red effects
Browse dozens of Halloween themed projects free from Adafruit – Adafruit Learning System
A CircuitPython Music Visualizer
A CircuitPython-based music and sound visualizer, built using the Adafruit CLUE board. The onboard microphone captures the ambient sound and the CLUE provides a visual representation of the frequencies it detects on the color display. The ulab library, similar to numpy, provides the fast fourier transform function which takes the sound data and provides the frequencies to display. Written in Japanese and English – STEAM Tokyo and Twitter.
Hacktoberfest® is a celebration of Open Source Software, created by DigitalOcean. It’s open to everyone around the globe. Whether you’re a developer, student learning to code, event host, or company of any size, you can help drive growth of open source and make positive contributions to an ever-growing community. All backgrounds and skill levels are encouraged to complete the challenge. You can win a t-shirt or plant a tree.
Pull requests can be made in any GitHub-hosted repositories/projects. You can sign up anytime between October 1 and October 31. More – Hacktoberfest.
Gameduino 3X Dazzler
The Gameduino 3X Dazzler is an Arduino-compatible shield that outputs HD picture and sound to any HDMI display or TV. The Dazzler is ideal for game designers using Arduino or CircuitPython, makers who want rich, responsive data and text visualizations, and anyone who wants superb visuals – CrowdSupply.
PyLadies inaugural Global Council
PyLadies announced the results for the inaugural PyLadies Global Council! The Global Council has 9 seats, including 6 seats selected by public election with a 2 year service commitment and 3 seats selected by application with a 1 year service commitment. Additionally the Council has a diversity and inclusion requirement that sets a maximum of 3 seats to be filled by members from the same country of residence.
The inaugural Council members include:
- Ana Cecília Vieira Silva (Brazil) – 2 year term
- Juliana Ferreira Alves (Brazil) – 2 year term
- Ana Valeria Calderón Briz (México) – 2 year term
- Jessica Upani (Namibia) – 2 year term
- Lynn Root (United States of America) – 2 year term
- Tania Allard (United Kingdom) – 2 year term
- Sarah Adigwe (Nigeria) – 1 year term
- Marie-Louise Annan (United Kingdom) – 1 year term
- Reshama Shaikh (United States of America) – 1 year term
Generate test data with Faker
Faker is a Python package that generates fake data for you. Whether you need to bootstrap your database, create good-looking XML documents, fill-in your persistence to stress test it, or anonymize data taken from a production service, Faker can do it, and it’s MIT licensed – GitHub and Twitter.
CircuitPython Deep Dive Stream with Scott Shawcroft
Last week, Scott discusses puzzles, FPGAs, and software engineering of CircuitPython APIs and modules.
You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.
Adafruit is shipping orders!
Adafruit is stocked and shipping orders!
Now is the best time to get orders in for your favorite products, including items for students.
Science is fun and educational when using Adafruit parts and free, easy to follow tutorials in the Adafruit Learning System.
News from around the web!
A demonstration of an internet-calibrated clock on an ESP32-S2 using CircuitPython 6.0.0 beta 0 – Twitter.
A self contained RGB LED edge-lit octahedron. It’s controlled by a Serpente M0 running CircuitPython with a wire broken out for use as a capacitive touch switch. The halves snap together with homemade magnetic connectors – Twitter.
Image Credit: https://tinytribes.co/
Python For Kids is a comprehensive Python Development tutorial for kids utilizing a micro:bit Development Board going step-by-step into the world of Python for Microcontrollers – GitHub.
CircuitPython driver for the SparkFun STUSB4500 USB Power Delivery board – ReadTheDocs.
Scientific Python: Using SciPy for Optimization – Real Python.
A Python “while” Loops Quiz – Real Python.
busybox-w32 is a port of BusyBox to the Microsoft Windows WIN32 API. BusyBox implements well over a hundred Unix-style commands. busybox-w32 brings a subset of the functionality of BusyBox to Windows in a single self-contained native executable – frippery.org.
Dictionary view objects in Python – JohnLekberg.com.
PyDev of the Week: William Cox from Mouse vs Python
On last week’s Adafruit Ask an Engineer program, Ladyada demonstrated a new Feather board on Top Secret. The board is SAMD54-based (SAMD51 ARM Cortex M4) with extra capabilities, including hardware CAN support. A CAN transceiver on board provides the proper signalling and two of these boards were communicating over a three wire bidirectional CAN interface (similar to the communications used in automotive and industrial applications). It’s not out yet but keep an eye out for availability soon – Adafruit Top Secret.
Folks love RGB matrices for making custom colorful LED displays. The Adafruit Matrix Portal add-on for RGB Matrices is no solder and plug and play. There’s never been an easier way to create powerful internet-connected LED displays. Plug directly into the back of any HUB-75 compatible display (all the ones Adafruit stocks will work) from 16×32 up to 64×64! Power it with any USB C power supply or a separate 5V power adapter – Product Page and Learn Guide.
Made with Mu
Why Mu? Mu tries to make it as easy as possible to get started with programming but aims to help you graduate to “real” development tools soon after. Everything in Mu is the “real thing” but presented in as simple and obvious way possible. It’s like the toddling stage in learning to walk: you’re finding your feet and once you’re confident, you should move on and explore! Put simply, Mu aims to foster autonomy. Try out Mu today! – codewith.mu
New Boards Supported by CircuitPython
The number of supported microcontrollers and Single Board Computers (SBC) grows every week. This section outlines which boards have been included in CircuitPython or added to CircuitPython.org.
This week, there were no new boards added but a few are in the works.
Looking for adding a new board to CircuitPython? It’s highly encouraged! Adafruit has four guides to help you do so:
- How to Add a New Board to CircuitPython
- How to add a New Board to the circuitpython.org website
- Adding a Single Board Computer to PlatformDetect for Blinka
- Adding a Single Board Computer to Blinka
New Learn 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!
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! Have you written a library you’d like to make available? Submit it to the CircuitPython Community Bundle. 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.
You can check out this list of all the Adafruit CircuitPython libraries and drivers available.
The current number of CircuitPython libraries is 273!
Here’s this week’s new CircuitPython libraries:
Here’s this week’s updated CircuitPython libraries:
What’s the team up to this week?
What is the team up to this week? Let’s check in!
The BNO08x libraries for CircuitPython and Arduino are now released, both for the full SHTP based interface as well as libraries to use the super-neat UART-RVC interface. Along with them, the guide has been mostly finished, and with four associated libraries as well as 3 and a half different transports, it’s my largest guide to date except for, possibly, my first which included an inordinate number of animated gifs. I always say this and it’s always genuine but I am really excited to see what folks do with these libraries and the BNO08x sensors. There are many applications that I can think of, just off the top of my noggin:
Head tracking for VR applications: This sensor specifically targets this use case and includes several report types and fusion products to optimize for that application. I’d like to see BNO08x support added to the Relativity project but it’d have to be someone with more free time than me! I can also imagine IMUs and autopilots or AHRS systems for model airplanes, novel input devices and even musical instruments. I’ll be honestly sad if I don’t see a little glass cockpit for RC planes come out of this.
By Aashmango4793 – Own work, CC BY-SA 4.0 – Wikipedia
With the BNO08x libraries (and soon breakouts) shipped, I’m back to CAN land, currently implementing a (Circuit)Python library to complement the
canio module that Jeff is adding to the CP core for MCUs that support it. Once we get a stable foundation for the basics on the platforms we target, we can then start thinking about supporting features for higher level protocols that will enable things like car hacking and more robust sensor networks.
My new “canio” module with support for the SAM E51 and E54 was merged to CircuitPython. The code has been validated by exchanging packets between the E5x microcontrollers and STM32F405 microcontrollers running MicroPython. I also snooped the CAN bus in my car. It missed the 6.0.0-beta.0 release, but it will be a part of the next beta. A Feather with CAN support is in the works, but if you’re eager (maybe you want to start creating an OBD-II library?) you can check it out now with the SAM E54 Xplained board from Microchip.
This week I finished investigating the bugs occurring on the RGBMatrix, which turned out to mostly be from a single, minor issue in the Learn guide! It’s funny when one small mixup in something like the documentation can result in an error being compounded across multiple systems until it looks like some monstrous, mysterious bug, when in fact the software is fine. There was a legitimate crash hidden in there too, though, so it’s good that we revisited the issue in detail.
I’ve also started up work on the AnalogIO functionality for the ESP32, and had a good discussion with Scott about module priorities after that. Getting the basics done for the ESP32 series is the highest priority for now, since those chips are so capable, but I’m still excited for things that might be a little further down the pipeline, like enabling the crypto modules and camera functions of the STM32 series. There are a lot of interesting chips coming out from Espressif and ST in the near future, so it’s been fun to think about what can be done with the next generation of smaller, faster, and even more capable SoCs.
This past week I worked on writing a guide for the Pixel Framebuf library.
I also wrote another demo for John Park’s workshop. Be sure to catch his show each week on Thursdays at 1PM Pacific/4PM Eastern.
I also worked on converting the adafruit-pitft shell script from Bash to Python. I am going to continue working on testing and debugging it before I put it up on GitHub, but it’s working well so far. One of the biggest changes are that it has a master configuration that will be much easier to add more boards to, so it will be easier to manage.
This week I’ve been bouncing between adding multiple flash size support to UF2 and fixing bugs in my requests library changes. UF2 is the USB drive bootloader that we’ve loved on SAMD and nRF and we’re now bringing it to the ESP32-S2.
Updating the adafruit_requests library has been a challenge. Networking can error at any time, which means the code needs to handle exceptions in many places. Furthermore, the library works with a number of socket implementations that currently do things a little bit different from each other. CircuitPython is also memory limited so we’re trying to do it all while using memory in small pieces, rather than large ones.
PyGotham is a New York City based, eclectic, Py-centric conference covering many topics. PyGotham TV taking place October 2-3, 2020 with a single track of talks presented online – Event Website.
PyCon Estonia 2020 will be a virtual conference held October 8, 2020 – PyCon Estonia.
The Hackaday Remoticon will take place everywhere November 6th – 8th, 2020. It’s a weekend packed with workshops about hardware creation, held virtually for all to enjoy – Hackaday.
PyCon Sweden 2020 will be held 12-13 of November 2020 online. The call for proposals ends quickly, on 30 September 2020 – PyCon Sweden.
Send Your Events In
As for other events, with the COVID pandemic, most in-person events are postponed or cancelled. If you know of virtual events or events that may occur in the future, please let us know on Discord or on Twitter with hashtag #CircuitPython.
20200926 is the latest CircuitPython library bundle.
Call for help – Translating CircuitPython is now easier than ever!
One important feature of CircuitPython is translated control and error messages.
With the help of fellow open source project Weblate, we’re making it even easier to add or improve translations.
Sign in with an existing account such as Github, Google or Facebook and start contributing through a simple web interface. No forks or pull requests needed!
As always, if you run into trouble join us on Discord, we’re here to help.
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 25,078 humans, thank you! Adafruit believes Discord offers a unique way for CircuitPython folks to connect. Join today at 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. Kattni turns the weekly news into video form for ASK an ENGINEER and Adafruit social media. 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. You may also tag your information on Twitter with #CircuitPython.