View this email in your browser.
Hi everyone! It’s here: the latest Python for Microcontrollers newsletter, brought you by the community! We’re on Discord, Twitter, and see the past newsletters – view them here. If you’re reading this on the web, subscribe here. Let’s slither in’.
CircuitPython and Feather power wheelchair as an Xbox controller
Freedom Wing Adapter – Adapter allows power wheelchairs to control Xbox – YouTube:
“Introducing The Freedom Wing Adapter! In partnership with AT Makers, together we’ve created the first of its kind adapter to enable a player using a power wheelchair to control an Xbox. And we’re going to release it to the world for free. 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.”
CircuitPython, the Adafruit Feather open-format can do a lot, and now they can do a lot more now – Thanks to Bill, Steve, and everyone who worked on this.
More information on the Freedom Wing Adapter:
Get a CLUE!
The micro:bit shaped, CircuitPython-powered, sensor-packed CLUE is shipping! We wanted to build some projects that have a small screen and a lot of sensors. To make it compatible with existing projects, we made it the same shape and size as the BBC micro:bit and with the same edge-connector on the bottom, with 5 big pads so it will fit into your existing robot kit or ‘bit add-on. This is the alpha release of the hardware. Everything works, but we may change around the sensors or pinouts as we add projects and support for the CLUE!
While the CLUE looks a bit like a ‘bit, it has “totally redesigned-from-scratch” technology:
- Nordic nRF52840 Bluetooth LE processor – 1 MB of Flash, 256KB RAM, 64 MHz Cortex M4 processor
- 1.3″ 240×240 Color IPS TFT display for high resolution text and graphics
- Power it from any 3-6V battery source (internal regulator and protection diodes)
- Two A / B user buttons and one reset button
- Tons of sensors!
- ST Micro series 9-DoF motion – LSM6DS33 Accelerometer/Gyroscope + LIS3MDL magnetometer
- APDS9960 Proximity, Light, Color, and Gesture Sensor
- PDM Microphone sound sensor
- SHT Humidity
- BMP280 temperature and barometric pressure/altitude
- RGB NeoPixel indicator LED
- 2 MB internal flash storage for data logging, images, fonts or CircuitPython code
- Buzzer/speaker for playing tones and beeps
- Two bright white LEDs in front for illumination / color sensing.
- Qwiic / STEMMA QT connector for adding more sensors, motor controllers, or displays over I2C. You can plug in GROVE I2C sensors by using an adapter cable.
- Programmable with CircuitPython
The CLUE is designed for projects that use a ton of sensors – and they’re all built in! So you can start exploring your world, measuring, logging and learning. You can transmit data over Bluetooth to a computer or mobile device for data plotting and logging, or save it to the built in storage – adafruit.com/clue and MAKE coverage.
circuitpython.org site video!
circuitpython.org has an updated look and more features as we kick off 2020. The site is even better at showing what’s possible with CircuitPython! The home page has descriptive text on why CircuitPython is easy to use, features, goals for the project, and more. Downloads features over 106 boards and now has a counter of how many boards that are supported, same for Blinka, the boards and a counter, over 38. Libraries, the CircuitPython library bundle contains all current libraries available for CircuitPython, over 209. Handy links for how to contribute, the latest news (RSS feed too!), the awesome-circuitpython resource, the newsletter with all past ones we sent out, help, a link to our Discord server, and how to get started.
Check it out!
Open Hardware Summit wearable badge updates
A few tweets, updates, and in progress photos of the Open Hardware Summit wearable badge. It’s alive and the onboard I2C sensors are working.
News from around the web!
IoT with CircuitPython: an internet connected conference badge – YouTube and post.
A little maze ball game for Circuit Playground boards with TFT Gizmo, driven by the accelerometer – GitHub.
MariaJose Molina-Contreras has a talk at PyCon about how CircuitPython can help your plants, and how to build an indoor garden with microcontrollers and IoT – Twitter.
Nina Zakharenko’s Twitch stream on working on a CircuitPython PyPortal “ExpoVert” badge. In the stream: Putting together a rough prototype and code. The goal is to display a social battery. Green means let’s chat, red means: too tired to talk – Twitch.
KODESMART.DK made this with conductive fabric tape, Circuit Playground Express, and CircuitPython – Twitter.
The latest newsletter: Inside Excamera Labs by jamesbowman –
“Ever since Gameduino 1, the most common feedback is that they are hard to program. Sure, a minority of programmers who specialize in graphics and are willing to devote time and energy to a graphical application can get good results. But what about people who only want a menu system, or a temperature display, or a photo frame, or show a kid how to make pong? All those people want to write a minimum of code, get the satisfaction of something that looks good, and move on. And CircuitPython is part of that. It’s much more beginner-friendly than the Arduino environment. It’s just easier to use.”
And check out a Python driver for BridgeTek’s Eve GPU – GitHub, Twitter, and excamera.
Particle is discontinuing development of Particle Mesh. However, here is how to get CircuitPython on the Xenon development board! – particle.io
Rubber Duck, but with CircuitPython – hackster.io
Feather tripler, DotStars, CircuitPython, and more – Twitter.
SparkFun Qwiic FeatherWing! SparkFun released a new Qwiic FeatherWing, it’s a “Qwiic Shield for Thing Plus” – SparkFun. Here are all the feather-tagged products and more on Sparkfun at this time. And our ongoing and updated awesome-feather list on GitHub.
CodeNSolder’s project has adafruit.io, a PyBadge, NeoPixels, MiniMQTT, and CircuitPython – Twitter.
Here’s the latest from Radomir’s PewPew newsletter…
New game for PewPew is available, Lights Out, created by Bjoern Schilberg – GitHub.
PewPews were shown at a booth at devconf.cz
The configuration for PewPew M4 bootloader is now officially merged, and the device can be used with Microsoft’s MakeCode Arcade… we’re still waiting for it to be added to the list of boards/ For now, you can select Adafruit PyGamer when flashing.
PewPew M4 has now OSHWA certification: CH000006.
PewPew M4 will be available from makerfabs.com in two weeks. The price will be $25. The kits will require assembly of the case, but not soldering. Batteries (2xAAA) not included.
How I Made My Heating Smart Without Damaging Or Replacing Anything, using adafruit.io, Feathers, and more – Andy Bradford, via Twitter.
Claire Danielle Cassidy, @LaserMistress, made these cool earrings – Twitter.
A list of electronics and Python Discord servers we put together – Adafruit.
Python GUI Programming With Tkinter – Real Python.
A tiny Python called Snek – LWN.net
Powering LEGO motors from a single Lithium Polymer cell – Crowd Supply.
Keith has a new site for Snek’s programming language, Sneklang.org
David reports from FOSDEM2020: a new Belgian book (written in French) about the PyBoard. It has a chapter about porting a CircuitPython library to MicroPython – Twitter.
71 Python Code Snippets for Everyday Problems – Renegade Coder.
Create Animated Images Using Python – The Startup.
CyberRadio: A SDR Based FM/AM Radio For Desktop. Accelerated with cuSignal and Numba – GitHub.
Python library and console tool for controlling Xiaomi smart appliances – GitHub.
PyRobot: An Open Source Robotics Research Platform – pyrobot.org
Happy birthday Guido – Twitter.
Looks like some more updates with Seeed’s ArduPy that uses MicroPython, sorta? – GitHub.
Low-cost LoRa IoT framework developed in the EU H2020 WAZIUP/WAZIHUB projects – GitHub.
Sphero littleBits will have a micro:bit bit this spring – Adafruit. Thanks Kevin.
Coronavirus and electronics production – freetronics.
Mosfet Girl by Open Music Labs: The heart of all those little ones and zeros that make our world go! – Crowd Supply.
Open-Source events with Open-Source hardware logo badges / kits … Here’s a collection (2 so far?) of open-source events that also have an Open-Source Hardware logo as a badge or electronic kit – Adafruit.
OSI members (Open Source Initiative) get 10% off Adafruit, we trying this out to see how it goes, if you’re a member check out the members’ welcome email. If you’re already a member, get the details from opensource.org/contact
CircuitPython Weekly Meeting for February 3rd, 2020 on YouTube and on diode.zone
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? HackSpace magazine — Issue 27.
Coming soon
CircuitPython + IoT plant watering, sensors, display, and more …
Remember the egg drop experiments we all did as kids? drop the CLUE board with a parachute, or in a container. If it makes it: GOOD EGG, if not: BROKEN EGG… demo and video coming soon!
Preview of the upcoming SPECTRO, along with some experiments with the “Black LED Acrylic” from TAP plastics.
Testing out orientation calculations for Feather Bluefruit Sense. Last week, we did a couple guides on calibrating sensors. This week, we’re taking that calibrated data and putting it through some filters to create orientation data. We’re using PJRC’s orientation visualizer which is an easy way to see which way the board is oriented – nice and stable. It’s board 107 on circuitpython.org/downloads
Trying out a pure-JavaScript WebSerial plotter in Chrome. The Chrome browser supports WebSerial. This means you can get serial port data fast and easy into a web browser – easier than WebUSB! So of course Melissa whipped up a great little plotter/monitor that you can use to display incoming data from an Arduino or CircuitPython, with whatever microcontroller! It works great! We’re still working on features and performance, but you can try sending it CSV data here – Glitch and YouTube.
We’re liking the combo of the LIS3MDL + LSM6DSOX for a high quality 9-DoF IMU set. The DSOX has great gyro performance, so it’s excellent for AHRS/orientation calculation. Here’s a FeatherWing and StemmaQT breakout version!
New Learn Guides!
PyPortal Titano Weather Station from Noe and Pedro
Now Playing: Bluetooth Apple Media Service Display from John Park
Cleveland Museum of Art PyPortal Frame from Dan Cogliano
PyGamer Thermal Camera with AMG8833 from Jan Goolsbey
Adafruit MLX90640 IR Thermal Camera from Kattni
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 Libraries!
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 209!
New Libraries!
Here’s this week’s new CircuitPython libraries:
Updated 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:
Library |
Last Week |
Total |
Adafruit-Blinka |
1961 |
48552 |
Adafruit_CircuitPython_BusDevice |
1240 |
25542 |
Adafruit_CircuitPython_NeoPixel |
513 |
6434 |
Adafruit_CircuitPython_Register |
330 |
5646 |
Adafruit_CircuitPython_MCP230xx |
290 |
8731 |
Adafruit_CircuitPython_PCA9685 |
129 |
3206 |
Adafruit_CircuitPython_Motor |
119 |
3335 |
Adafruit_CircuitPython_ServoKit |
112 |
3010 |
Adafruit_CircuitPython_HT16K33 |
100 |
1070 |
Adafruit_CircuitPython_SSD1306 |
90 |
2106 |
What’s the team up to this week?
What is the team up to this week? Let’s check in!
Bryan
This week I wrote drivers for the DPS310 Precision Pressure sensor and the APDS9500 gesture sensor.
The DPS10 is a neat little sensor that comes calibrated from the factory, allowing it to be exceptionally accurate. The downside to this is the diver is considerably more complicated than the average pressure sensor, because the calibration values have to be extracted and then applied to every measurement using a non-trivial formula that even accounts for the temperature! Fortunately, this work has been done for you and you can simply use the fruits of my labor!
The APDS9500 is a neat gesture sensor that has the smarts to detect gestures like up, down, left, or right with minimal software support. Think of the possibilities!
In other news, I did some refactoring of some of the recent Arduino libraries to add them to the Adafruit SensorLab library. This helper library makes working with sensors easier by automatically detecting a range of sensors and then using them for calculations. By using this approach, we can write sensor sketches that work for any sensor that has a compatible library.
Dan
I have been trying out different BLE devices to get them to talk to CircuitPython. The armband above is a heart rate monitor. I wrote a library to communicate with it and similar devices, and John Park is now working on a project and Learn Guide.
Some of these devices use standard BLE services to communicate, and some use proprietary services. Often we don’t know until we try them. Sometimes we can reverse-engineer the proprietary ones. Sometimes it’s not worth it or not possible, and it’s easier to find another device that does the same thing but has a friendlier interface.
I’m also fixing some CircuitPython hangs that occur when you disconnect and reconnect quickly to some of these devices.
Jeff
This week I continued to fix small bugs in JEplayer, a CircuitPython MP3 player. I also made an improvement to samd51 stereo audio in the core and contributed a few other small Pull Requests in CircuitPython core and libraries.
Kattni
This week, I published the guide for the Adafruit MLX90640 IR Thermal Camera. It includes all the basic information, including an overview and pinouts, and basic serial print examples to get started. As an added bonus, it also includes Arduino and CircuitPython examples using PyBadge or PyGamer to make an easy to assemble a thermal camera with display. Check it out if you’re interested in the basics or looking to make a fancy thermal camera!
I’ve started working on the guide for the DPS310 Barometric Pressure Sensor – the CircuitPython library is currently being worked on, so keep an eye out for that and the guide. I have been helping a community member who recently started contributing to CircuitPython with getting into reviewing GitHub pull requests on the CircuitPython libraries, and I want to give a huge hug report to @FoamyGuy for joining the CircuitPythonLibrarians review team and jumping into reviewing. We’re starting to get through the PRs that have been sitting for too long – if you submitted a PR to the CircuitPython libraries, expect to see some activity on those as we work through testing and merging what we can.
If you’re interested in contributing to CircuitPython, but don’t know how to get started, reviewing is a great way to do just that. Feel free to ping me on Discord or GitHub (@kattni) if you have any questions.
Lucian
This week I worked on ironing out the Meowbit. The board has been something of a stress test for the STM32 port overall, exposing circumstantial bugs in PWMOut and DisplayIO, and kickstarting the UF2 bootloader for the port. It’s also been a fun opportunity to work more with Python, which I haven’t done much direct work in. Porting Deshipu’s snake project to the board was a fun side project, and looks pretty cute in practice.
I also worked on the pin profiles for the Espruinos, which I hope to add shortly after the Meowbit is merged, and tested the STM32 bootloader on the Feather F405 and Discovery F412. I’ll be working more on those projects this week.
Melissa
This week I finally finished up with updating the Adafruit LED Backpack guide. Each of the 8 boards was almost a guide in itself and you can check out the guide here. After that, I started working on a WebSerial plotter to be able to plot data from boards such as the Circuit Playground Express or an Arduino. Currently you can show the raw output from boards, see the data output in a plot, and send commands.
Scott
This week I’ve wrapped up the pull request with Teensy 4.0 support. Stay tuned for the first official (but very alpha) builds on circuitpython.org. I’ve also reworked PixelBuf just a bit and the PR is very close to being merged. It is one of the last things to get merged before we release 5.0.0.
I’ve also started thinking about sending sensor measurements over Bluetooth Low Energy. There are two parts to this, one is sending the info at high speed over the BLE connection and the other is low speed, infrequent measurements over BLE advertisements. It’ll be my first experience with Adafruit IO so I’m excited to dive in.
Upcoming events!
HackWimbledon in London: Make Mine 2020 – An Open Hack #148:
“Making, creating and illuminating is what HackWimbledon is about and that’s what we do at Open Hack sessions. Open Hacks have no theme except what you want to bring along. For example, this open hack, the curator’s going to be doing more things with CircuitPython, Python, LEDs and Raspberry Pis and you can sit in and learn about that. There may also be Robot hacking going on. Or you can sit down with your laptop and one of our Circuit Playgrounds and learn at your own pace. Come and learn and make with your own projects or learn what other people are building.”
London, UK, Saturday, February 8, 2020, 12:00 PM to 5:00 PM – Meetup.
Scott is speaking at PyCascades about Python’s Next Decade and Us. It’s soon – February 8th and 9th, 2020.
“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.”
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 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 afterwards! – 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.
Teardown 2020 is a three-day line up of talks, workshops, demos, installations, and puzzles. June 19-21, 2020 at PCC Cascade in Portland, Oregon – crowdsupply.com/teardown/portland-2020
Latest releases
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.
20200203 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.
1583 Stars Like CircuitPython? Star it on GitHub!
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 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.
16,254 thanks!
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 16,254 humans, thank you! Join today! 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.
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.
Contribute!
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.