The next newsletter goes out in a week and being subscribed the best way to keep up with all things Python for hardware.
Over 6,530 subscribers worldwide!
Consumers Should Immediately… Python the Circuit
This project uses a live data feed from the United States Consumer Product Safety Commission (USCPSC) to randomly display thousands of products recalled for reasons such as fire, electrocution, entrapment, choking and a variety of other unintended dangers. Every two minutes, the embedded screen lists the name of the product, the identified danger, the product manufacturer, and the original recall date. The electronics are enclosed in an actual recalled children’s unicorn boot, along with an embedded rechargeable battery, allowing for an uninterrupted stream of recalled products in any location.
CircuitPython Cupcakes for CircuitPython Day
CircuitPython Day is not quite over YET! Here are some CircuitPython cupcakes from the Lamba Labs Beirut Hackerspace – Instagram.
Python powered art: CompuCanvas
Chris writes in –
“Hi Phil, I was on the show-and-tell show with the wall-hanging CompuCanvas RPi systems. You asked if I had extra materials… Here are brief “tech-spec” write-ups with pics for the 2 systems I showed:”
“Along those lines, I previously did a “how to” on getting started building a CompuCanvas here:”
- CompuCanvas construction – GitHub.
1,000+ thanks! CircuitPython iOS stickers and more!
The CircuitPython and Circuit Playground stickers for iOS we recently released have hit 1,000+ downloads already! – Apple. Thank you Trevor and Adabot ??
More about the CircuitPython book!
“Limitless hue of the spectral color represents the infinite possibilities by multiplying the programmatic necessity by the creativity of the CPX users. I would be happy if my artwork visualizes the multiplicity of the possibility of CPX.”
What we’re working on …
There are lots of folks who work on CircuitPython or some of the many open-source boards, and open-source code for the community. Here’s what Bryan, Dan, and Melissa are up this week!
All a board’ with Bryan
Bryan is working on the CircuitPython driver for the super-cheap yet capable MS301 accelerometer – GitHub.
Bryan is also starting on the drivers for the APDS-9500 gesture sensor. This one will be a bit of a doozy, but has a lot of potential in its ability to detect directional gestures on the device itself, once we get them working – PDF.
The Large OLED Bonnet is coming along as well. This will be a great display with excellent readability due to the high contrast from being an OLED, combined with the larger pixels making for bigger text or images.
Lastly the super cool Airlift “BitsyWing” as we’ve been calling it should be headed to production soon.
This little helper will help squeeze WiFi and IoT goodness into even smaller places! I’m personally excited to put a bunch of these to use for some home automation tasks.
CircuitPython Bluetooth Low Energy from Dan
CircuitPython Bluetooth Low Energy can:
- be a BLE beacon, including as an iBeacon and an Eddystone beacon.
- be a BLE peripheral, acting both as a server providing services and as a client talking to a server.
- be a BLE central (can scan for peripherals that are advertising and connect to them).
Currently the Nordic UART Service (NUS) is implemented both for clients and servers.
- pair with a peer device (but not bond, which is remembering pairing).
- connect to a device providing Current Time Service, such as an iPhone, and find out the current date and time.
Support has recently been added for fine-grained control of permissions of Characteristics and Descriptors. BLE HID support is current being implemented.
Maker Melissa Makes
This week Melissa is working on trying to finish up updating the remainder of the display guides with a section on using displayio. Here’s what’s updated so far this week:
- Adafruit 2.8” and 3.2” Color TFT Touchscreen Breakout v2.
- 2.2” TFT Display.
- Adafruit 3.5” 320×480 Color TFT Touchscreen Breakout.
- Adafruit 1.27” and 1.5” Color OLED Breakout Board.
- 0.96” mini Color OLED.
- Adafruit 2.4” Color TFT Touchscreen Breakout.
- CircuitPython Hardware: ILI9341 TFT & FeatherWing.
After that, a new guide about a Message Panel that works with pre-programmed messages controlled by a Stream Deck over Adafruit IO.
CircuitPython.org stickers: Free with orders…
We ran out of rulers for CircuitPython day, YAY! They were really popular. So, we now have CircuitPython stickers for orders $49 or more – adafruit.com/free. This is part of celebrating CircuitPython Day all month in August.
Braille Keyboard and Monitor made in CircuitPython
Braille Keyboard and Monitor made in CircuitPython – GitHub.
News from around the web!
Shake Shake Blinka Blinka – Instagram.
Scott’s talk at the Puget Sound Programming Python (PuPPy) meeting in Seattle, CircuitPython and GameBoys, live Tweet coverage.
This guide steps through the process of creating an Alexa Gadget with an LED and a button, that cycles through different colors and reports the LED color when the button is pressed – GitHub.
And… look for some minifigs in black soon!
LoRa / LoRaWAN + TTN for MicroPython (ESP32) – GitHub.
ESPlay Micro is an ESP32 Based emulator device for playing retro games, able to play classic games NES, GB, GBC, SMS, Game Gear and more – hackaday.io
Programming autonomous self-driving cars with Carla and Python – YouTube.
A racing game that runs in Terminal. 100% Python – GitHub.
Greg’s mod for the PyGamer, good work! – Twitter.
RAISIM, a physics engine for robotics and AI research – Github.
A double ESP32 FeatherWing – Twitter.
What doesn’t the next ESP32-S2 have? – Twitter.
The MicroPython port for 2MiB ESP32 devices is in progress. Thanks to help from the MicroPython + Maker community, it looks like there is a path towards adding built-in support for MicroPython on 2MiB ESP32 devices. The MicroPython team is currently looking for people to try out the changes on 2MiB ESP32 devices (such as the ESP32-D2WD) to see what breaks. MicroPython GitHub Repo
The most common Raspberry Pi 4 questions asked by the community, with Eben Upton, James Adams, and Gordon Hollingworth – YouTube.
NVDA, the free and open source Screen Reader for Microsoft Windows – GitHub.
Teaching People to Share Technology: Adafruit Founder Limor Fried – Linux.com.
“When we invented the personal computer, we created a new kind of bicycle…a new man-machine partnership…a new generation of entrepreneurs.” Steve Jobs said this and a lot more in 1980 as explored in this annotated twitter thread – Learn By Shipping.
Version Museum showcases the visual history of popular websites, operating systems, applications, and games that have shaped our lives. Much like walking through a real-life museum, this site focuses on the design changes of historic versions of technology, rather than just the written history behind it – Version Museum.
The arc of collaboration is long and it bends in the direction of functional workflows – kwockchain.
With the release of Adafruit’s new Digital Potentiometer breakouts, AT Makers took a look at how we could use these to create a virtual joystick – YouTube.
PhyWhisperer-USB by NewAE Technology Inc: A hardware-based USB 2.0 monitor & trigger platform, controlled from Python – Crowd Supply.
Looks like Seeed Studio is working on an ArduinoCore for the k210 – GitHub.
The patterns on the goods in this shop are designed to trigger Automated License Plate Readers, injecting junk data in to the systems used by the State and its contractors to monitor and track civilians and their location – adversarialfashion.com/collections/all
Who’s a ‘Good Boy?’ Astro, FAU’s Smart Robodog – Adafruit.
Inspect PyPI event logs to audit your account’s and project’s security – Python Insider.
Nvidia CEO says Google is the company’s only customer building its own silicon at scale – CNBC.
Important PyLadies update – PyLadies.
Huge Survey of Firmware Finds No Security Gains in 15 Years – Security Ledger.
PN532 NFC/RFID Native Python API for your Raspberry Pi – GitHub.
Create a Discord Webhook with Python for your Bot – Hackaday.
Discord Transparency Report: Jan 1 — April 1 – Discord.
“We have updated the Adafruit IO user interface to take advantage of recent changes to https://www.adafruit.com and learn.adafruit.com along with a batch of internal changes that improve the size of initial code downloaded when you visit the site–total script size was reduced by about 15%–and speed up the initial page load when you visit a page on io.adafruit.com. The biggest change you’ll notice is a reorganization of our menus. The old menu from the left hand side of the screen is now split between a new header (top of page) with Adafruit-styled “flyout” menus linking to your pages within the site and a footer (bottom of page) with links to information about Adafruit IO.” Read more – io.adafruit.com
Adafruit IO Update: New User Interface! – adafruit.io
Costume Py: CostumePy is a library designed to allow developers to create smart wearable costumes – GitHub.
Newtonhonk curates the old Apple Newtons, looks like the specs we’re getting close to on device now – newtonhonk.de
Code your own 2D shooting gallery in Python – Wireframe.
Automation Techniques in C++ Reverse Engineering — Möbius Strip Reverse Engineering.
Visible Lisp Computer – technoblogy.
Flake8 is described as a tool for style guide enforcement. It is also a wrapper around PyFlakes, pycodestyle and Ned Batchelder’s McCabe script. You can use Flake8 as a way to lint your code and enforce PEP8 compliance – Mouse vs Python.
Every Noise at Once – everynoise.com
BEFORE GENERAL MAGIC THERE WAS PARADIGM – Josh Carter.
Ladyada, on wood, Brazil – Instagram.
Continuous is a fast and powerful .NET C# and F# IDE that runs directly on the iPad and iPhone (no network needed!). With it, you can write apps and games using your favorite languages on your favorite devices – App store.
Some researchers downloaded all of PyPi and parsed the source of every package. Some insights – Twitter.
Compound Annual Growth Rate (CAGR) for new packages, active packages, new releases, and new authors are all in the double-digits:
- New packages: 43.28%
- Active packages: 47.31%
- New releases: 51.21%
- New authors: 39.30%
“…the number of connections or imports per package is increasing”, and “annual growth rate in the number of imports [exceeds] the growth rates of the number of packages or releases alone by 10%.”
Top 10 most imported modules, in-order, are:
And it looks like there is an effort to make PyPi better for users using assistive technologies – Twitter.
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? PyCubed: An Open-Source, Radiation-Tested CubeSat Framework Programmable Entirely in Python.
PyDev of the Week: Paul Ganssle on Mouse vs Python
PyCon AU – MicroPython recap from Matt
Matt sent these in last week after the newsletter went out, so here they are in this week’s newsletter. Thank you Matt!
THE Australian event for all things Python, PyCon AU 2019 was a huge success with many diverse and high-quality talks that covered the gamut of Python topics. MicroPython and CircuitPython were very well represented with six talks covering Python on Hardware.
MicroPython Sprints were organised for the Monday and Tuesday and these were well attended with some productive work achieved! Beginners to MicroPython (like Leo) were warmly introduced, Damien guided folks to work on a spate of issues, two variants of a C stub generator (uStubby and MicroPython C Stub Gen) were worked on, the QR Displayer project was released, a CI server was configured to build all (nearly 100!) of the officially supported MicroPython variants and ?? was expressed with a micro:bit! There was also collaboration with the Fomu project and a port of MicroPython was built to run on the RISC-V softcore running on the Fomu FPGA – that lives inside a USB port!
Continue the discussion on the MicroPython Slack workspace!
“Goodbye Print Statements, Hello Debugger!” – Nina Zakharenko. Still debugging your code with print statements? Learn how to level up your ability to troubleshoot complex code situations by using the power of a fully-featured debugger in this talk aimed at all levels of programming ability – YouTube.
“What makes Micro:bits different?” – Jack Reichelt. There’s many different ways to learn to code, and how you start your students’ journey changes what challenges they’ll face.This talk will highlight some of the differences when using micro:bits, and how to overcome the challenges. YouTube
“Using comedy as an excuse to play with Python-programmed microcontrollers” – Anthony I. Joseph and Debbie Zukerman. Early-career comedians often have difficulties adding electronic props to their acts, due to the high cost of materials and fabrication skills required. This talk will recreate several props used in comedic performances, showing the code and components used. YouTube
“Profiling Pathogens with (Micro)Python” – Andrew Leech. We’re building professional medical diagnostics equipment with MicroPython. This has come with minimal challenges, many positives and a few surprises! YouTube
“It’s dark and my lights aren’t working (an asyncio success story)” – Jim Mussared. I have invested huge amounts of time in achieving a simple goal – making the lighting in my home “smart”. It’s not groundbreaking, nor is it practical or cost effective, but it sure was educational, uses a bunch of Python, and the result makes me (and my family) happy. YouTube
“Extending MicroPython: Using C for good!” – Matt Trentini. MicroPython is a fantastic environment for embedded development. But it is an interpreted language; what happens when you hit performance limitations? Or want to use a new feature of your microcontroller? We’ll look at how MicroPython can be extended to add features and improve performance. YouTube
“Micropython Gotchas” – Michal Galka. We all somehow get the feeling that MicroPython is not quite the Python we know. During the talk, I’ll show what the “not quite” actually means. I’ll present a set of different issues I stumbled upon when working with different MicroPython powered boards ranging from memory constraints to API calls. YouTube
Learning to Program in Python with CodeGrades
Learning To Program In Python With CodeGrades: Episode 224 – Python Podcast.
“With the increasing role of software in our world there has been an accompanying focus on teaching people to program. There are numerous approaches that have been attempted to achieve this goal with varying levels of success. Nicholas Tollervey has begun a new effort that blends the approach adopted by musicians and martial artists that uses a series of grades to provide recognition for the achievements of students. In this episode he explains how he has structured the study groups, syllabus, and evaluations to help learners build projects based on their interests and guide their own education while incorporating useful skills that are necessary for a career in software. If you are interested in learning to program, teach others, or act as a mentor then give this a listen and then get in touch with Nicholas to help make this endeavor a success.”
What is 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
A super-big, and super-small PyPortal coming soon!
Circuit Playground Bluefruit testing! How far can it go? – YouTube.
Circuit Playground Bluefruit testing! Who tests the tester? – YouTube.
AirLift Bitsy Wing!
LSM303AGR – The latest LSM303 compass accelerometer/magnetometer, in a plug-n-play form factor, STEMMA / STEMMA QT.
Infineon sample box arrived, secure element chip. Got it working, Infineon OPTIGA™ Trust X security solution, next up is a CircuitPython library. A product page is here. Video and post.
Picked up an ORBIT 20, goal is to get the REPL from Python going out to Braille.
Eyes and eyes.
MSA301 Triple Axis Accelerometer – STEMMA QT / Qwiic.
Micro LiPo USB C charger.
Round display, BLINKA TIME ?? – RTs are coming in!
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!
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 this GitHub issue on CircuitPython for an overview of the State of the CircuitPython Libraries, updated each week. We’ve included open issues from the library issue lists, 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 171!
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:
Open Source Summit and Embedded Linux Conference, August 21 – 23, 2019 at the Hilton San Diego Bayfront, California USA. The Open Source Summit North America combines with Embedded Linux Conference North America (ELC). ELC has been a vendor-neutral technical conference where developers working on embedded Linux and industrial IoT products and deployments gather for education and collaboration. Open Source Summit brings together developers and open source professionals to collaborate and learn about the latest technologies – Linux Foundation.
PYCON UK 2019 – Cardiff City Hall, Friday 13th to Tuesday 17th September. PyCon UK is back at Cardiff City Hall, for five days of talks, workshops and collaboration. The conference also features a young coders’ day, themes dedicated to science and education, and numerous Python-related events – PyCon UK.
“October is Open Hardware Month! Check out the Open Hardware Month website. Host an event, find a local event, or certify your hardware to support Open Source Hardware. We are providing resources and asking you, the community, to host small, local events in the name of open source hardware. Tell us about your October event by filling out the form below. Your event will be featured on OSHWA’s Open Hardware Month page (provided you have followed OSHWA’s rules listed on the “Do’s and Don’ts” page).”
micro:bit Live 2019 is coming to BBC MediaCityUK, Greater Manchester, England on October 4-5. This will be the very first annual gathering of the global micro:bit community of educators and partners – micro:bit.
Hackaday Superconference is November 15th, 16th, and 17th in Pasadena CA. The Hackaday Superconference is returning for another 3 full days of technical talks, badge hacking, and hands-on workshops: Eventbrite & hackaday.io
20190819 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 13,651 humans, thank you! Join today! https://adafru.it/discord
Discord now offers “server boosts” we have 12 on our server (level 2). If we get to 50 boosts, we get to level 3 and some other good features for the community: +100 emojis for a total of 250, 384 Kbps audio, vanity URL, 100 mb uploads for all members (and all the things we have now, like the server banner). Stop by and boost! 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.
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.