ICYMI (In case you missed it) – Tuesday’s Python on Microcontrollers Newsletter from AdafruitDaily.com went out.
If you missed it, subscribe now!
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,767 subscribers worldwide!
Happy Halloween from Chika Iori
CircuitPython snakes its way to the Sony Spresense
Spresense is a compact development board based on Sony’s power-efficient multicore microcontroller CXD5602.
And now it can run CircuitPython, thanks to Sony.
- Integrated GPS – The embedded GNSS with support for GPS, QZSS and GLONASS enables applications where tracking is required.
- Hi-res audio output and multi microphone inputs – Advanced 192kHz/24 bit audio codec and amplifier for audio output, and support for up to 8 microphone input channels.
- Multicore microcontroller – Spresense is powered by Sony’s CXD5602 microcontroller (ARM® Cortex®-M4F × 6 cores), with a clock speed of 156 MHz.
Resources and more:
CircuitPython snakes its way to the Arduino Nano 33 BLE Sense
The Arduino Nano 33 BLE Sense now runs CircuitPython.
This compact and reliable NANO board is built around the NINA B306 module, based on Nordic nRF 52840 and containing a powerful Cortex M4F. Its architecture has a 9 axis Inertial Measurement Unit (IMU) and a reduced power consumption compared to other same size boards. This allows the design of wearable devices and movement sensing projects that need to communicate to other devices at a close range. Arduino NANO 33 BLE is also ideal for automation projects thanks to the multiprotocol BT 5.0 radio – CircuitPython.org.
Issue 24 – HackSpace magazine: LED matrix modules CircuitPython
CircuitPython powered ElectronicCats
All month long we’ve looked at some of the history of open-source hardware and many of the companies/people that have helped get us all here. Today is about the future! One of the more recent companies in the open-source hardware world that I’ve been really delighted to see is ElectronicCats. ElectronicCats designs, creates, and shares open hardware, made in México.
Check out their product line up and their events/social/blog. They get it, they’re building and sharing some of the best open-source hardware; these folks are the future. And by that, I mean we’ll see more international efforts and more creativity infused into the community, specifically because of their efforts – Read more.
Circuit Playground Bluefruit low power tests
Doing some low power testing for a revision of the Circuit Playground Bluefruit, our prototype has the ability to turn off the NeoPixels / light / temperature / microphone sensors in addition to the speaker amplifier. When we do that, the board’s current consumption drops down to 280uA quiescent – when we go to sleep, the board draws about 6mA.
Here’s what it looks like when we wake from sleep and enable the NeoPixels and sensors, hang out for a bit, then go back to sleep. there’s a skinny spike of 50mA, maybe this is the NeoPixel PWM circuitry turning on all at once?
CircuitPython snakes its way to the SparkFun Qwiic Micro – SAMD21 Development Board
“CircuitPython is Adafruit’s version of MicroPython. We like it here at SparkFun because of its support for the SAMD based microcontrollers. If you’re not familiar with CircuitPython, then I encourage you to check Adafruit’s website for more information. We’ve provided two different CircuitPython builds for the Qwiic Micro in the Qwiic Micro’s hardware repo, one for those of you have soldered the flash chip sold on SparkFun and one for those without flash chip.”
Hashtag CircuitPython life
It’s happening! – Twitter.
“CircuitPython in High School: an Alternative to Arduino”
Google translated from French: “This article presents a set of hardware and software offering an alternative to using Arduino in high school. Its strengths are: native Python programming, total computer independence and true analog output for sound generation.” Une alternative à arduino qui se programme avec python via Twitter.
MicroPython, bringing Python to hardware for everyone
It’s open-source hardware month, we’ve been doing a post every day, all month. One of the posts is all about MicroPython. We think the next chapter for electronics is Python, from powerful Raspberry Pi computers to low-cost microcontrollers which are able to drive robotics, to running Machine Learning, the most popular programming language in the world (Python) has arrived on hardware, and we have MicroPython and its creator, Damien George, to thank. From the micropython.org about page –
MicroPython is a lean and efficient implementation of the Python 3 programming language that includes a small subset of the Python standard library and is optimised to run on microcontrollers and in constrained environments. The MicroPython pyboard is a compact electronic circuit board that runs MicroPython on the bare metal, giving you a low-level Python operating system that can be used to control all kinds of electronic projects. MicroPython is packed full of advanced features such as an interactive prompt, arbitrary precision integers, closures, list comprehension, generators, exception handling and more. Yet it is compact enough to fit and run within just 256k of code space and 16k of RAM. MicroPython aims to be as compatible with normal Python as possible to allow you to transfer code with ease from the desktop to a microcontroller or embedded system.
There’s also a good history of MicroPython over on Wikipedia, and we’ve posted about some of the early days, history, and its recent 6th birthday…
- 29th April 2013: first line of code written (in private, before anyone knew about it, before it was even called MicroPython)
- 17th Sept 2013: first code running on a microcontroller, on the very first prototype of the pyboard
- 2nd Oct 2013: register micropython.org
- 4th Oct 2013: first commit in what is now the main repository
- late Dec 2013: source code up on GitHub
- 21st June 2014: last of the Kickstarter rewards sent out (for the first Kickstarter)
The Early Days of MicroPython – YouTube.
“April 29, 2019 is the sixth ‘birthday’ of MicroPython. At the April Melbourne Meetup, Damien George, creator of MicroPython, delves into his archives and shows the earliest code and notes about the goals of the language. The material pre-dates the first git commit! Listen in as Damien reveals how and why the language began and evolved. It’s a nice way to celebrate MicroPython’s sixth birthday!”
In newsletter #8 from MicroPython, Damien published some never-before-seen details about the start of MicroPython.
Here is an excerpt from the initial notes. The title is “Python board” and the date is 29 April 2013: Python board 29/4/2013 The smallest, cheapest Python. A piece of hardware that is small and cheap, runs Python scripts, and has good low-level access to hardware. If we can do it with a single chip, that would keep it small and cheap. Need then something with a large amount of flash and a decent amount of RAM, that also is cheap enough. Atmel SAM’s have order 1MiB flash and 128KiB SRAM, for around $10 one-off. Main features:
- Implements Python 3 core language.
- Flash presents as a flash drive with a vfat filesystem to a computer.
- Put Python scripts on flash and it runs them (maybe have a (multicolour?) led that flashes on error and writes a “core” dump to the flash). This led can also double as a user output led.
- Can run multiple scripts at once.
Our strength would be small, cheap, simple, easy to replicate. Can have a range of boards with different features. But all must be basically compatible and capable of running the same scripts.
In addition to the open-source software, the PyBoard (2013) is open-source hardware. You can learn more about MicroPython and keep up-to-date with developments via the following resources:
- Subscribe to the MicroPython newsletter.
- Read the documentation.
- Join the community at the forum.
- Submit bug reports, and follow and join in development on GitHub.
- Join the MicroPython Slack.
A Belated Happy Birthday to MQTT
MQTT, or message queue telemetry transport, is a protocol for device communication. Using a MQTT library or client you can publish and subscribe to a feed to send and receive feed data.
About 20 years ago, the first version of the MQTT was published. We’re big fans of this stateful, low-bandwidth, pubsub protocol.
CircuitPython has its own MQTT library called MiniMQTT! We have a guide about it here. CircuitPython cloud-service provider libraries such as Adafruit IO, Google Cloud IoT Core, and Amazon AWS IoT utilize this library “under-the-hood” – Adafruit.
The Open Book project takes flight
Joey has some updates on the Open Book Project. Meet the very first Open Book, in lovely OSH Park purple! A Feather-form SAMD51 board (inspired greatly by the PyBadge) with eInk screen, 8 buttons, headphone jack, STEMMA ports and more – GitHub and Twitter.
News from around the web!
We hacked together a quick and fun project using our guide to keep track of the massively amazing Tilt Five Kickstarter and a CircuitPython powered PyPortal.
Tilt Five is giving away some shirts for folks who remake this project, check them out! – Twitter.
Speaking of! Congrats Jeri! Always Building, From the Garage to Her Company: Jeri Ellsworth started as a self-taught computer hacker and chip designer. In an industry dominated by men, she’s the head of a company focusing on augmented reality – NYTimes.
Monster M4Sk Halloween cat – Instagram.
Another new CircuitPython library from Thea: SmolMIDI, a minimalist MIDI library – GitHub.
Motion Activate Mandrake : programmed with CircuitPython on a HalloWing – YouTube.
WE ONLY HAVE EYE FOR YOU – YouTube.
Eye think there is someone at the door – Twitter.
NeoPixel mask – Instagram.
Raspberry Pi 4 portable computer – Raspberry Pi.
microscoPI: a microcomputer-assisted microscope – YouTube.
The Industrialisation of the ESP32 – hackster.io
RA8875 driver and GUI for large displays – MicroPython forums.
Analog input on Raspberry Pi using an MCP3008 running on CircuitPython – YouTube.
Pygame Zero’s docs now have a Japanese translation – PyGame.
VC4 and V3D OpenGL drivers for Raspberry Pi.
A Brief Intro to PySimpleGUI – Mouse vs Python.
Barrels in Pygame Zero – Raspberry Pi.
Logic gates – Twitter.
Disney has a new series about the artist-engineers who make the magic, The Imagineering Story – YouTube.
The evolution of the scroll bar – scrollbars.matoseb.com
APPLE 1 Original 1976 Computer System – eBay.
Ancient history: the Digital logo – Ned Batchelder.
Who Contributes to the Linux Kernel? – The New Stack.
Open Source Licenses and the Ethical Use of Software – Subfictional studios.
There is HOPE! The HOPE XIII conference will be at St. John’s University in Queens, New York, USA from July 31st to August 2nd, 2020 – hope.net
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Buy One Give One at Adafruit with Black Girls Code.
Speaking of Black Girls CODE the moment this newsletter arrives, about 11am ET for many of you, we’ll have 100 more “Buy One Give One” thanks to Digi-Key! Visit the page and pick one up!
CircuitPython Weekly for October 28th, 2019 on YouTube.
PyDev of the Week: David Fischer from Mouse vs Python.
Gettin’ close the STM32F405 FEATHER.
Testing out an upcoming STEMMA GPS board for our STEMMA SUNDAY series. This little board holds a PA1010D GPS module with I2C and UART interfaces. It has a built-in antenna as well, it is so cute! Here’s the tester we designed to check all elements of the hardware so we know every GPS we make works – YouTube.
New Learn Guides!
Updated Guides – Now With More Python!
You can use CircuitPython libraries on Raspberry Pi! We’re updating all of our CircuitPython guides to show how to wire up sensors to your Raspberry Pi, and load the necessary CircuitPython libraries to get going using them with Python. We’ll be including the updates here so you can easily keep track of which sensors are ready to go. Check it out!
Keep checking back for more updated guides!
CircuitPython support for hardware continues to grow. We are adding support for new sensors and breakouts all the time, as well as improving on the drivers we already have. As we add more libraries and update current ones, you can keep up with all the changes right here!
For the latest drivers, download the Adafruit CircuitPython Library Bundle.
If you’d like to contribute, CircuitPython libraries are a great place to start. Have an idea for a new driver? File an issue on CircuitPython! Interested in helping with current libraries? Check out the CircuitPython.org Contributing page. We’ve included open pull requests and issues from the libraries, and details about repo-level issues that need to be addressed. We have a guide on contributing to CircuitPython with Git and Github if you need help getting started. You can also find us in the #circuitpython channel on the Adafruit Discord. Feel free to contact Kattni (@kattni) with any questions.
You can check out this list of all the CircuitPython libraries and drivers available.
The current number of CircuitPython libraries is 193!
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:
Hacktoberfest is open to everyone in the global community. 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 – https://hacktoberfest.digitalocean.com
“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).”
October 28–31, 2019. Be part of the ML revolution. Santa Clara, California, USA. TensorFlow is powering everything from data centers to edge devices, across industries from finance to advanced healthcare. And now, with TensorFlow 2.0 and the evolving ecosystem of tools and libraries, it’s doing it all so much easier – TensorFlow World.
Hackaday Superconference is November 15th, 16th, and 17th in Pasadena, California, USA. The Hackaday Superconference is returning for another 3 full days of technical talks, badge hacking, and hands-on workshops: Eventbrite & hackaday.io
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.
20191025 is the latest CircuitPython library bundle.
3.8.0 is the latest Python release.
Team CircuitPython assemble!
What is the team up to this week? Let’s check in!
“This week on my bench are a few new sensors: The LSM6DSOX IMU, LPS33W absolute pressure sensor and its sister from another mister, the LPS35HW. Keen eyed readers will notice that we already have an LPS35HW breakout. Indeed we do but along with the LPS33 it’s getting a STEMMA QT upgrade, making it even easier to use. The main difference between the two is that the LPS33W is fitted with a “nozzle” of sorts that can be fit with an o-ring and fit directly into a larger assembly.”
“I need to add a new flash region to the nRF52840 build to store bonding information. To make that easier, I am parameterizing the linker scripts used to build CircuitPython so that build-specific constants like the sizes of the different internal flash memory regions and size of RAM can be defined in one place and passed into the linker scripts. Right now there are several places that must be edited manually if one of these values changes. Scott finished his rework of the native
_bleio API and the
adafruit_ble CircuitPython library. I’ve reviewed
_bleio and am testing and creating examples in the new
adafruit_ble API style. When these are both ready for alpha testing, we’ll release them together as a new 5.0.0 alpha release.”
“This week I finished up implementing the advanced features of the MCP9600 thermocouple amplifier. You can now configure all the available options on each of the alert pins on the board using CircuitPython! There is an example available in the documentation. The MCP9600 guide is in the process of being updated with CircuitPython and Python usage. If you’re looking for an I2C thermocouple amplifier you can use with CircuitPython, keep an eye out for that update! Next up, I’ll be continuing to add CircuitPython and Python usage to more guides. All updated guides are blogged and linked in the newsletter to ensure you’re on top of where we’re at.”
“I am learning the basics of Bluetooth and the Bluefruit app so I can help review PRs that touch on this area of CircuitPython. Here’s the Bluefruit app running the color picker demo on a Circuit Playground Bluetooth.”
“This week I’ve been taking a break from UART to implement PWM, which has come along smoothly. I’ll also be testing out DisplayIO, which makes use of many of the most recently added modules. I’ve also done some research and found some of the HAL peculiarities and error management specifics that might have been holding up the UART interrupt implementation. Hopefully I’ll be able to quickly wrap up both modules this coming week, and begin expanding support for new STM32 boards.”
“This week I finished updating the eInk Display Breakouts guide and updated the CircuitPython page with instructions for using displayio. I also added a Python section for using eInk displays on the Raspberry Pi and added a couple additional examples for using Pillow. You can checkout that guide here. After that, I completed another guide for the 1.14” 240×135 TFT Display Breakout which includes Arduino, CircuitPython and Python pages. You can check out that guide here. I also added a couple more boards to the downloads page at https://circuitpython.org/downloads as well as wrote up a few Adafruit blog entries.”
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 14,677 humans, thank you! Join today! https://adafru.it/discord
REMINDER: We now have a SmallSats channel on the Adafruit Discord server adafru.it/smallsats
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.