Daily tips and tricks from the experts at Adafruit!
View this email in your browser

View this email in your browser. Warning: Flashing Imagery

Welcome to the latest Python on Microcontrollers newsletter! 2024 is full of possibilities for the electronics industry and for Python running on hardware. Check out this week’s crop of articles and projects. – Anne Barela, Ed.

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:

MicroPython v1.22.1 Patch Release

MicroPython v1.22.1

MicroPython v1.22.1 was released to address a specific race condition in using _thread in the RP2 port. v1.22.0 has been out since December 27th so the period where the issue has been in effect is short, although it was present in preview builds since November 9th – GitHub.

Comparing the 1970’s Cray-1 Supercomputer Against the Raspberry Pi Single-Board Computer Range

Cray vs Pi

Developer Roy Longbottom, who has been personally benchmarking computer systems large and small for more than 50 years, has published a look at how the venerable Cray-1 supercomputer stacks up against modern devices of a considerably smaller scale: the Raspberry Pi family of single-board computers (SBCs) – hackster.io.

“In 1978, the Cray-1 supercomputer cost $7 million, weighed 10,500 pounds and had a 115 kilowatt power supply. It was, by far, the fastest computer in the world,” Longbottom writes of the device, designed as the flagship product of Seymour Cray’s high-performance computing company. “The Raspberry Pi costs around $70 (CPU board, case, power supply, SD Card), weighs a few ounces, uses a five watt power supply and is more than 4.5 times faster than the Cray 1.”

See Longbottom’s extensive tests and comparisons article – roylongbottom.org.uk.

In-Depth: Arduino Exploring Manufacturing in India

Arduino exploring India manufacturing to limit counterfeit sales

Last week’s newsletter issue covered a TechCrunch article on Arduino saying they might manufacture in India as the software downloads dwarf sales of hardware. Adafruit’s director Phil Torrone writes a follow-up in the Adafruit Blog on Open Source Hardware and Software – Adafruit Blog and Ask an Engineer Segment on YouTube.

“What Arduino is calling “fake boards” are primarily Arduino-compatibles and clones, not trademark-infringing counterfeits. Blaming low-cost compatibles and assuming it’s a loss of 3.2 million sales since that’s the download count of the IDE is blaming something that is not really happening. There are counterfeits for sure, but that’s very different than hardware that’s compatible with using the Arduino IDE – the large number of downloads for the open-source Arduino IDE is for compatible board-support-packaged hardware like the ESP8266, ESP32, etc. (Unknown if there’s any telemetry data that lets anyone know what hardware is being used with the IDE, just that it’s downloaded, so we’re going with market indicators, projects published, GitHub repos, and shared online).”

8 Reasons to Upgrade to a Raspberry Pi 5, Project by Project

8 Reasons to Upgrade to a Raspberry Pi 5, Project by Project

8 Reasons to upgrade to a Raspberry Pi 5, project by project. With a far more capable processor and a bunch of extra features, the Raspberry Pi 5 offers far more power than previous models – Make Use Of via Adafruit Blog.

Free Python for Kids Tutorial with MicroPython and BBC micro:bit

Python for Kids

Python For Kids is a free comprehensive online Python development tutorial for kids utilizing a BBC micro:bit Development Board going step-by-step into the world of Python for microcontrollers – GitHub and YouTube.

Use Python Inside of Google Sheets With Neptyne

Neptyne

Neptyne allows use of Python inside of Google Sheets (similar to the announced use of Python in Microsoft Excel) – Neptyne via X.

Program Language Age

How old are languages in 2024? Wisdomic on X compiled a list. We added Python for microcontrollers – X.

  • Assembly : 77 yrs
  • FORTRAN : 70 yrs
  • ALGOL : 66 yrs
  • COBOL : 65 yrs
  • LISP : 64 yrs
  • BASIC : 60 yrs
  • LOGO : 57 yrs
  • Pascal : 54 yrs
  • C : 52 yrs
  • SQL : 50 yrs
  • MATLAB : 40 yrs
  • C++ : 39 yrs
  • Python : 33 yrs
  • HTML : 33 yrs
  • Ruby : 31 yrs
  • PHP : 30 yrs
  • JavaScript : 29 yrs
  • Java : 29 yrs
  • C# : 24 yrs
  • Rust : 18 yrs
  • Go : 17 yrs
  • Typescript : 12 yrs
  • Swift : 10 yrs
  • MicroPython : 10 yrs
  • CircuitPython : 7 yrs

This Week’s Python Streams

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

Deep Dive

Last Friday, Tim took a look at the ConnectionManager networking utility.

You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.

CircuitPython Parsec

CircuitPython Parsec

John Park’s CircuitPython Parsec this week is on Split Strings – Adafruit Blog and YouTube.

Catch all the episodes in the YouTube playlist.

CircuitPython Weekly Meeting

CircuitPython Weekly Meeting for January 2, 2024 (notes) on YouTube.

Project of the Week: Sound Localization with Raspberry Pi and Python

Low cost raspberry pi sound localizing Autonomous Recording Unit

If you have multiple microphones in known locations, and can determine the time a sound arrives at each one, you can actually determine the location that sound is coming from. This technique is referred to as sound localization via time difference of arrival. Kim Hendrikse decided to put the technique to good use to track down the location of illicit fireworks launches.

The build is based on the Raspberry Pi, with Kim developing an “autonomous recording unit” complete with GPS module for determining their location and keeping everything time synchronized. By deploying a number of these units, spread out over some distance, it’s possible to localize loud sounds based on the time stamps they show up in the recording on each unit – GitHub, Medium and Hackaday.

Popular Last Week

What was a popular, clicked link, in last week’s newsletter? 10 Raspberry Pi Projects with Python to Boost Your Skills.

New Notes from 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.

RP2040 CW Keyer

A morse keyer using a Feather RP2040 and CircuitPython – Adafruit Playground.

News from around the Web

Arcade console

A 1 button arcade game calls for a custom 1 button arcade console! Guy Dupont built this little Bluetooth cabinet to play JOUNCER PX. Designed in OpenSCAD, printed in PETG. Just an arcade button, LED, battery, power switch, and nRF52840 running CircuitPython – X Thread.

Scott eInk

A 13.3 inch epaper display working with CircuitPython – Mastodon.

Synth Rev 2

PCB Revision 2 of the Pico Synth Soundbox has been released using CircuitPython – pico-synth-sandbox.

Send Data to AWS DynamoDB in MicroPython

How to send data to AWS DynamoDB in MicroPython from Raspberry Pi Pico W – hackster.io.

A versatile macropad

A versatile macropad able to use one of two different microcontrollers and three types of keyswitches using CircuitPython – Hatena Blog (Japanese).

RISC-V assembly board game

PROJEKT: OVERFLOW is a RISC-V assembly board game – punkx.org.

“The game is about creating a small shellcode in memory by copying existing instructions and then exploiting a buffer overflow to jump into it, so that you can overwrite your opponent’s return address to force them to go to the game_over() function.There are other mechanics as well and more layers of strategy (like setting the exception handler or monkeypatching).”

BreadboardBot

BreadboardBot is a tiny, versatile and fun toy robotics platform made from a mini-breadboard, two servo-motors with wheels, a Xiao RP2040 and CircuitPython – hackster.io.

M5Stack Atom Matrix MicroPython

Simon Prickett is doing a series of live streams on the M5Stack Atom Matrix with MicroPython – GitHub.

Left-handed HID input

A Left-handed HID input device with rotary encoder and buttons with Raspberry Pi RP2040 and CircuitPython – X (Japanese).

DayDreamer

Implementating of the DayDreamer algorithm in TensorFlow 2 with Python and Jupyter Notebooks – GitHub and project website.

Hull Pixelbot

The Hull Pixelbot is a little robot with a pixel on the top. A tiny programming language, ‘Python-ish’, was developed that runs directly on the robot. The robot can obey Python-ish commands directly at any time – even when running a program – Raspberry Pi News.

LangCard

LangCard is a full keyboard development board for learning programming languages such as CircuitPython, MicroPython, C++, uLisp, etc. – hackaday.io.

Stream Python Video

Take the video stream from an ESP32Cam and process it for faces on another, connected computer in Python and OpenCV – YouTube and GitHub via X.

Interactive flip flop simulation

An interactive flip flop simulation in Python and Jupyter Notebook – GitHub and YouTube.

Microdot

Another Python web framework? Really? But Miguel Grinberg claims Microdot is different! It’s small enough to work with MicroPython, compatible with CPython, and has Flask-like syntax – blog.miguelgrinberg.com/ via X.

Shed Skin

Shed Skin is a transpiler which can translate pure, but implicitly statically typed Python 3 programs into optimized C++. It can generate stand-alone programs or extension modules that can be imported and used in larger Python programs – GitHub.

embedded.fm

If you’re an embedded software developer, you’ll want to check out embedded.fm. Chris and Elicia know their stuff and are funny doing so – embedded.fm podcast and transcript, via X.

Python Basics: Building Systems With Classes

Python Basics: Building Systems With Classes – Real Python.

3D-Printed Raspberry Pi 4 Cyberdeck

A 3D-printed Raspberry Pi 4 Cyberdeck – hackster.io and Reddit.

New

ProPico

ProPico is an “Improved Raspberry Pi Pico” with better ADC, USB Type-C, and more – website and hackster.io.

Melopero Sensei

Melopero Sensei is a development board based on the Raspberry Pi RP2040 microcontroller equipped with a 1.3” TFT 240×240 display and a variety of sensors – Melopero.

New Boards Supported by CircuitPython

The number of supported microcontrollers and Single Board Computers (SBC) grows every week. This section outlines which boards have been included in CircuitPython or added to CircuitPython.org.

This week, there were no new boards added, but several are in development.

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

New Learn Guides

With the holidays, there are no new guides this week.

CircuitPython Libraries

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 471!

Updated Libraries

Here’s this week’s updated CircuitPython libraries:

Library PyPI Weekly Download Stats

Total Library Stats

  • 56744 PyPI downloads over 323 libraries

Top 10 Libraries by PyPI Downloads

  • Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 6839
  • Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 6358
  • Adafruit CircuitPython Register (adafruit-circuitpython-register): 1929
  • Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 927
  • Adafruit CircuitPython PCA9685 (adafruit-circuitpython-pca9685): 867
  • Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 739
  • Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 722
  • Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 717
  • Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 629
  • Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 611

What’s the CircuitPython team up to this week?

What is the team up to this week? Let’s check in:

Melissa

This past week with it being slow, I decided to add vectorio support to Blinka Displayio. While I was in there, I removed Pillow as a requirement, which was only being used to load a font, so the entire library is now pure Python code, which makes it much more portable to other boards.

Tim

I took time off over the holiday and New Years. During some downtime I continued work on the displayio soft keyboard library. I also worked on the Blinka_DisplayIO_PyGame_Display library, it has needed re-writing to work with latest versions of Blinka_DisplayIO. It’s functional and most of the major issues are tackled now, with only a few smaller quirks to work out.

Jeff

Like many folks I have been taking it easy around the end of the year. However, I did do a few things. One of them was to enable the hashlib module across many more boards. At this time, the pull request is ready for review.

I’m really proud of what I accomplished in 2023. Here’s a GitHub skyline to remember the year by:

Jeff

Upcoming Events

MicroPython Meetup

The next MicroPython Meetup in Melbourne will be on January 24th – Meetup.

PyCascades 2024

PyCascades 2024 is back in Seattle, Washington, USA and online, April 5-8th at the University of Washington’s Kane Hall. – PyCascades.

PyCon US 2024

PyCon US 2024 Launches – May 15-23, 2024 in Pittsburgh, Pennsylvania US – PyCon US.

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 8.2.9 and its unstable release is 9.0.0 alpha 6. New to CircuitPython? Start with our Welcome to CircuitPython Guide.

20240105 is the latest Adafruit CircuitPython library bundle.

20231230 is the latest CircuitPython Community library bundle.

v1.22.1 (general)is the latest MicroPython release. Documentation for it is here.

3.12.1 is the latest Python release. The latest pre-release version is 3.13.0a2.

3,778 Stars Like CircuitPython? Star it on GitHub!

Call for Help – Translating CircuitPython is now easier than ever

CircuitPython translation statistics on weblate

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,412 Thanks

38,412 THANKS

Adafruit Discord

The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 38,412 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

ICYMI

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 Reels), 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 Tuesday. The complete archives are here. It highlights the latest CircuitPython related news from around the web including Python and MicroPython developments. To contribute, edit next week’s draft on GitHub and submit a pull request with the changes. You may also tag your information on Twitter with #CircuitPython.

Join the Adafruit Discord or post to the forum if you have questions.