View this email in your browser. Warning: Flashing Imagery
Welcome to the latest Python on Microcontrollers newsletter! Ah, summertime (in the Northern Hemisphere), Open Sauce and Teardown have been happening this week and more events to come. Students tossing their homework and graduation caps. And free time to work on making some cool hardware. Fortunately Python on small devices makes it so easy to prototype and iterate. Check out the latest issue (and stay cool). - Anne Barela, Editor
We’re on Discord, Twitter, and for past newsletters - view them all here. If you’re reading this on the web, subscribe here. Here’s the news this week:
Update: Code.circuitpython.org is a Browser-Based CircuitPython Editor and Serial Terminal
Code.circuitpython.org is a Browser-Based CircuitPython Editor and Serial Terminal - Adafruit Blog.
“Would you like to be able to edit CircuitPython code, upload and download files to and from your CircuitPython board, and connect to its serial terminal, all from inside a browser? Check out code.circuitpython.org!
It runs in Chromium-based browsers like Chrome, Microsoft Edge, and Opera, so you don’t need to install anything. Code.circuitpython.org can connect to boards using the CircuitPython WiFi workflow, or over USB. If the board presents a CIRCUITPY drive, it will access files through that. But it allows you to also read and write files via the CircuitPython serial connection, if you are using a board that does not have native USB storage. And it connects to the CircuitPython board’s REPL through a built-in serial terminal. Additionally you can now upload and download image and sound files for your code, which was previously not an option except with Web Workflow.
MakerMelissa developed this editor some time ago for Adafruit, but it hasn’t been publicized widely. Recently she added support for boards without a CIRCUITPY drive.”
How Raspberry Pi Built a Silicon Design Team
For nearly ten years now Raspberry Pi has been building an ASIC (application-specific integrated circuit) team in Cambridge to design and produce custom silicon chips for its products - Raspberry Pi News.
“Raspberry Pi has been designing its own chips, such as the RP2040 microcontroller found in Raspberry Pi Pico and the RP1 I/O controller found in Raspberry Pi 5. These contain smaller blocks, often referred to as IP (intellectual property) designed by Raspberry Pi or bought in from elsewhere and integrated into Raspberry Pi’s chips.”
The *Best Python Cheat Sheet
Kieran Holland is the author of a rather good Python cheat sheet as a concise reference for the Python language - Sheet and GitHub.
It may not be the best Python cheat sheet, but it *aspires to be.
A Fortune Telling Robot with a Raspberry Pi and Python
Kevin McAleer builds a fun interactive exhibit for Open Sauce 2024 in San Fransisco. The exhibit is powered by a Raspberry Pi 4 and Python, has an arcade button on the front and a thermal printer to print out fortunes - YouTube.
Arduino Nano Vs Raspberry Pi Pico: What’s The Difference?
Arduino Nano Vs Raspberry Pi Pico: What’s The Difference? - SlashGear.
“Which should you buy? If your goal is to get started with microcontrollers and electronic circuits, either one is a good buy. However, as the Nano and Pico are entirely different boards with entirely different specs, each has certain advantages. For instance, the Nano is the better choice if you’re a complete beginner. Conversely, the Pico is highly recommended if you’re on a tight budget or if you’re just curious about microcontrollers and want to experiment without burning a hole in your pocket. Software-wise, the Nano is great if you already have a background in C/C++. If Python is your language of choice, though, go with Pico.”
Python Software Foundation News
The Python Language Summit occurs every year just before PyCon US begins, this year occurring on May 15th, 2024 in Pittsburgh, Pennsylvania. The summit is attended by core developers, triagers, and Python implementation maintainers for a full day of talks and discussions on the future direction of Python. This years summit included talks on the C API, free-threading, the security model of Python post-xz, and Python on mobile platforms. They are now posted for viewing - Python Blog.
Python 3.12.4 is now out - python.org.
Python mulls a change in how it numbers versions - TheNewStack.
This Week’s Python Streams
Python on Hardware is all about building a cooperative ecosphere which allows contributions to be valued and to grow knowledge. Below are the streams within the last week focusing on the community.
CircuitPython Deep Dive Stream
Last Friday, Tim streamed more work on BLE workflow integration.
You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist - YouTube.
CircuitPython Parsec
John Park’s CircuitPython Parsec this week is on Keypad Press & Release - Adafruit Blog and YouTube.
Catch all the episodes in the YouTube playlist.
CircuitPython Weekly Meeting
CircuitPython Weekly Meeting for June 17th, 2024 (notes) on YouTube.
Project of the Week
Stefano Mazzocchi has created Fably which uses the power of AI to generate stories. Fably is open source and is designed with a user-friendly interface that even children can use. The project is on GitHub, you can read more on Tom’s Hardware and see more in a YouTube Video.
Popular Last Week
What was the most popular, most clicked link, in last week’s newsletter? Apple’s Embedded Swift Programming Language Lands for Several Microcontrollers.
Adafruit Playground
Adafruit Playground is a new place for the community to post their projects and other making tips/tricks/techniques. Ad-free, it’s an easy way to publish your work in a safe space for free. See & try it out here.
News From Around the Web
Find My Cat – the GPS tracker for pets – with Raspberry Pi and MicroPython - Instructables and YouTube.
Real-time bee counting at the hive entrance by the Federal University of Itajuba using YOLOv8 on a Raspberry Pi Zero 2W - hackster.io via DFRobot - X.
This Raspberry Pi Pico project sorts your candies by color - Tom’s Hardware and YouTube.
A simple test of a basic drum sequencer implemented in CircuitPython running on M5Stacks Cardputer - YouTube.
The Pi Cast for June 18th featured Volodymyr Shymanskyy discussing Viper IDE and the Blynk IoT MicroPython Framework - YouTube.
Raspberry Pi 5 kernel graphics driver support will hopefully be upstreamed soon - Phoronix.
SUSE working to upstream RP1 Southbridge Linux driver for the Raspberry Pi 5 - Phoronix.
Making a stopwatch using a Raspberry Pi Pico and MicroPython - YouTube.
Giving away 480 Raspberry Pi Picos at Open Sources was harder than expected - Jeff Geerling and YouTube.
Controlling a door latch using an ESP32 running MicroPython - X.
Create a MicroPython class for controlling RGB LEDs in MicroPython - YouTube.
IHome: a full-stack, generative AI powered mobile application which helps people control activities & sensors of their smart IoT home system using Raspberry Pi Zero and MicroPython - hackster.io.
New book: Natural Language Processing - Deep Learning Models in Python - O’Reilly.
“I got the Raspberry Pi Pico W to communicate with the IoT light bulb I have around (ported some core stuff from the JavaScript library to MicroPython). Communication is done over UDP. Encryption is so poor that I question why it’s even there in the first place” - X.
Using a Raspberry Pi Pico Wwith MicroPython and a 0.96” 80x160 ST7735 SPI IPS display - X.
Python Timer Functions: three ways to monitor your code - Real Python.
This Raspberry Pi Pico “Pack” adds two MIDI Ports without ballooning the board’s footprint - hackster.io.
4 keys to writing modern Python - InfoWorld.
EDU PICO using MicroBlocks: CircuitPython Installation - YouTube.
New
Serial Bus Servo Driver HAT (A) can drive up to 253 servos simultaneously - CNX Software.
Seeed Studio Round Display for XIAO is an expansion board compatible with XIAO and Qt Py development boards. It features a fully covered touch screen on one side, designed as a 39mm disc. It contains an onboard RTC holder, charge chip, and MicroSD card slot within its compact size, perfect for interactive displays, perfect for CircuitPython use - Adafruit.
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 was one new board added:
Note: For non-Adafruit boards, please use the support forums of the board manufacturer for assistance, as Adafruit does not have the hardware to assist in troubleshooting.
Looking to add a new board to CircuitPython? It’s highly encouraged! Adafruit has four guides to help you do so:
New Learn Guides
USB MIDI Host Messenger from John Park
CircuitPython Libraries
The CircuitPython library numbers are continually increasing, while existing ones continue to be updated. Here we provide library numbers and updates!
To get the latest Adafruit libraries, download the Adafruit CircuitPython Library Bundle. To get the latest community contributed libraries, download the CircuitPython Community Bundle.
If you’d like to contribute to the CircuitPython project on the Python side of things, the libraries are a great place to start. Check out the CircuitPython.org Contributing page. If you’re interested in reviewing, check out Open Pull Requests. If you’d like to contribute code or documentation, check out Open Issues. We have a guide on contributing to CircuitPython with Git and GitHub, and you can find us in the #help-with-circuitpython and #circuitpython-dev channels 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 487!
New Libraries
Here’s this week’s new CircuitPython libraries:
Updated Libraries
Here’s this week’s updated CircuitPython libraries:
Library PyPI Weekly Download Stats
Total Library Stats
- 147959 PyPI downloads over 328 libraries
Top 10 Libraries by PyPI Downloads
- Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 9433
- Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 9432
- Adafruit CircuitPython ConnectionManager (adafruit-circuitpython-connectionmanager): 8271
- Adafruit CircuitPython Register (adafruit-circuitpython-register): 2376
- Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1369
- Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 1279
- Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1274
- Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1228
- Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1214
- Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1208
What’s the CircuitPython team up to this week?
What is the team up to this week? Let’s check in:
Dan
This past week, I’ve been working mostly on debugging and fixing Espressif BLE issues. I’ve also been testing Melissa’s new enhanced version of the code.circuitpython.org/ editor, which can read and write files via the REPL, for use on boards that do not present a CIRCUITPY drive.
Melissa
This past week, I finished up my changes to the CircuitPython Code Editor and they are now live. This means you can now perform file operations on boards that have no CIRCUITPY drive such as the ESP32 or ESP32-C3 based boards. This will make setting up web workflow much easier as well as giving the ability to upload sound and graphics files.
Tim
I have been continuing work on BLE support for Circup / wwshell utility. This week I was able to successfully use the bleak library to send the listdir BLE workflow command and parse the result. It was the first of the commands that I’ve gotten to work, and now I’ve got a better idea how the rest need to be implemented.
Jeff
I’m working on understanding the “esp-zigbee-sdk” with the hopes of adding some zigbee functionality to CircuitPython with the ESP32-C6 microcontroller. However, so far I don’t have any running code.
Scott
I’m mostly out this week because we have family in town. I wrapped up ESP BLE changes and have been following up with more fixes.
Liz
This week I worked on two product guides. The first was for the NeoPixel Breakout. This is a tiny breakout with a single NeoPixel on it. It has two JST-SH ports, one for input and one for output, that let you easily wire up a single NeoPixel for your project or debugging needs.
The next guide for the DS2484 breakout. This breakout is a 1-Wire to I2C adapter, letting you read your 1-Wire sensors over I2C. This makes interfacing with them a lot easier. I wrote a CircuitPython library for the DS2484 and included documentation for it in the guide.
Upcoming Events
The next MicroPython Meetup in Melbourne will be on June 26 – Meetup. You can see recordings of previous meetings on YouTube.
EuroPython is the oldest and longest running volunteer-led Python programming conference on the planet. This year it will be held July 8-14 in Prague - EuroPython 2024.
PyOhio is being held July 27-28, 2024 in Cleveland, Ohio - PyOhio.
Espressif DevCon24 will be held Sep 3-5, 13:00-18:00 CEST. Call for presentations now - Espressif.
Maker Faire Bay Area returns to Mare Island Naval Shipyard on October 18-20, 2024 - Maker Faire.
Send Your Events In
If you know of virtual events or upcoming events, please let us know via email to cpnews(at)adafruit(dot)com.
Latest Releases
CircuitPython’s stable release is 9/0/5 and its unstable release is 9.1.0-beta.3. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20240618 is the latest Adafruit CircuitPython library bundle.
20240617 is the latest CircuitPython Community library bundle.
v1.23.0 is the latest MicroPython release. Documentation for it is here.
3.12.4 is the latest Python release. The latest pre-release version is 3.13.0b2.
3,941 Stars Like CircuitPython? Star it on GitHub!
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.
38,337 Thanks
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 38,337 humans - thank you! Adafruit believes Discord offers a unique way for Python on hardware folks to connect. Join today at https://adafru.it/discord.
ICYMI - In case you missed it
Python on hardware is the Adafruit Python video-newsletter-podcast! The news comes from the Python community, Discord, Adafruit communities and more and is broadcast on ASK an ENGINEER Wednesdays. The complete Python on Hardware weekly videocast playlist is here. The video podcast is on iTunes, YouTube, Instagram), and XML.
The 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.
Contribute
The CircuitPython Weekly Newsletter is a CircuitPython community-run newsletter emailed every Monday. 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.
Join the Adafruit Discord or post to the forum if you have questions.