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

News Sources

View this email in your browser. Warning: Flashing Imagery

Welcome to the latest Python on Microcontrollers newsletter! The ease of use in a language often tracks the number of resources for the language. Besides the documentation and projects available for CircuitPython, there is a milestone this week noting 400 libraries. Libraries are canned routines for drivers and commonly used code and they are always outstanding. Things are pointing for a decent 2023 in the Python and Maker communities, things to look forward to - 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:

400 CircuitPython Libraries!

400 CircuitPython Libraries!

This week, CircuitPython hit a huge milestone: There are now 400 libraries available for CircuitPython. This includes Adafruit written libraries and community contributed libraries. Number 400 is DerBroader71/circuitpython_uuid4 by Tudor (DerBroader71 on GitHub), thank you Tudor for your first CircuitPython pull request and contribution! And thanks to all who contribute to CircuitPython - Adafruit Blog.

New Videos: Troubleshooting CircuitPython and more

Troubleshooting CircuitPython

Troubleshooting CircuitPython installation, board, and Mu issues: A Guide for New Students. Here are some of what Professor Gallaugher has seen as common issues that his students have encountered, plus solutions - YouTube.

Other Recent Videos

3,000,000 THANKS! Celebrating 3 Million Orders at Adafruit – Thank You!

3,000,000 THANKS! Celebrating 3m orders @adafruit – thank you!

On January 18, 2023 11:20am ET the 3,000,0000 order was placed at Adafruit for a Raspberry Pi 4 Model B – 4 GB RAM by Michael from Austin, TX! (We asked to make sure it was OK to post this) Michael, a real human, was able to get a Raspberry Pi which is extra special since we’ve worked really hard together to make sure makers, real humans, have been able to get units! - Adafruit Blog.

Web Serial Terminal

Web Serial Terminal

Web serial terminal is a serial terminal that you can access via Chrome Browser. You can use it on your Laptop or desktop. It uses Web Serial and requires no additional software download - CAPUF Embedded.

Tiny MicroPython Robot

SMARS Mini

Meet SMARS Mini, the smallest robot Maker Kevin McAleer has ever made. It has two motors and a laser time of flight sensor to detect objects. It uses a Pimoroni Tiny2040 board programmed in MicroPython - Kev’s Robots via Twitter.

Thanks for the Python 2023 Entries

Python 2023

The last CircuitPython 2023 posts are being posted with Scott doing a post on this soon. Below are some additional posts - Adafruit Blog Kick-off Post.

Raspberry Pi Pico vs. ESP32-S2 Speed Comparison Benchmark Using CircuitPython

Raspberry Pi Pico vs. ESP32-S2

Raspberry Pi Pico is compared to the ESP32-S2 in a speed comparison benchmark using CircuitPython - interte and YouTube.

So the ESP32 S2 needs 128% more current to run the script, but for 50% less time. In total, the Raspberry Pi Pico needed 10% less power to perform this task, which is not significant in my opinion. In short, the ESP32-S2 outperforms the Raspberry Pi Pico for single-core processing workloads. It costs more or less the same, it’s $1 more expensive, it has more RAM, Flash memory, and of course WiFi, which the Raspberry Pi Pico lacks. The Raspberry Pi Pico, on the other hand, has two processing cores, but I believe that in more than 90% of our projects, the use of a second core is unnecessary.

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

This week, Tim streamed work on some Blinka_DisplayIO work then EYESPI TFT displays.

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 I2S Audio Pins - Adafruit Blog and YouTube.

Catch all the episodes in the YouTube playlist.

The CircuitPython Show

The CircuitPython Show

The CircuitPython Show is an independent podcast hosted by Paul Cutler, focusing on the people doing awesome things with CircuitPython. Each episode features Paul in conversation with a guest for a short interview – CircuitPythonShow and Twitter.

Projects of the Week - Raspberry Pi Pico Power Consumption

Two articles this week on power used by the Raspberry Pi Pico:

Raspberry PI Pico W Power Consumption (mA) and How to Reduce It

Raspberry Pi Pico W power consumption (mA) and how to reduce it - peppe80.

Display Updates

The Pimoroni crew claim that their Pico W-powered color eInk screens can idle at “about 20uA”. Just how many electrons does it take to update the display? - HackSpace Magazine on Twitter.

News from around the web!

Coding Graphics with MicroPython on Raspberry Pi Pico Displays

Coding Graphics with MicroPython on Raspberry Pi Pico Displays - The Pi Hut.

openmuscle

Open Muscle is designed to provide biometric machine learning training data for use in prosthetic technologies. Using a ESP32-S2, Hall Effect sensor and MicroPython - Twitter Thread, GitHub and YouTube.

PiicoDev Transceiver

The PiicoDev Transceiver™ is a 915MHz radio that can send short messages up to 100m using MicroPython - Core Electronics and YouTube.

Run x64 Software on a Raspberry Pi using Box64

Run x64 Software on a Raspberry Pi using Box64 - PiMyLife Up.

Write a simple ray casting engine in Python

Writing a simple ray casting engine in Python and porting it to a Casio calculator running MicroPython- Twitter.

Blackberry Pi

Blackberry Pi is a handheld from pdrift is an exceptional piece of work that blends electronics and 3D printing into one mean, green machine! Using a Raspberry Pi Zero W with a Blackberry keyboard and display - Tom’s Hardware.

ESP32 MicroPython Web Server – Sensor Data on Webpage

ESP32 MicroPython Web Server – Sensor Data on Webpage - HowToElectronics.

Build your own web server using a Raspberry Pi Pico W using Phew!

Build your own web server using a Raspberry Pi Pico W using Phew! - YouTube.

CircuitPython MagTag reading from adafruit.io feed from Raspberry Pi Zero W

CircuitPython and MagTag reading from an adafruit.io feed from a Raspberry Pi Zero W - Twitter.

BMP in MicroPython

A ST7735 TFT displays a BMP image converted to 565 and saved as .b16. When dumped via SPI, it is quite fast – not as fast as I’d like but good enough for now, using MicroPython - Twitter.

Godzilla

Light up Godzilla with NeoPixels and CircuitPython on a Raspberry Pi Pico W - Twitter.

Fingerprint sensor

A fingerprint sensor programmed in MicroPython - Twitter (Portuguese).

Raspberry Pi Pico W Temperature

Raspberry Pi Pico W temperature meaurement and display - 0x32.co.uk via Twitter.

Scamp3

Scamp is a self-contained Forth computer that you can use as the computing engine for your projects - Udamonic and Adafruit Blog.

Paper Review: “Did You Miss My Comments Or What?” Toxicity In Open Source Discussions

Paper Review: “Did You Miss My Comments Or What?” Toxicity In Open Source Discussions - Tyler Cipriani.

Rock 4SE - ISS tracker in Python in a GUI and TkinterMapView

Rock 4SE - ISS tracker in Python in a GUI and TkinterMapView and Python - YouTube.

Close files

Why it is important to close files in Python - https://realpython.com/why-close-file-python/.

Convert an image into a sketch using Python

How to a convert image into a sketch using Python with 5 lines of code - morioh.

All Top 40 Python Libraries EXPLAINED in 20 minutes

All Top 40 Python Libraries EXPLAINED in 20 minutes - morioh.

PyDev of the Week: Fabio Pliger on Mouse vs Python.

CircuitPython Weekly Meeting for January 23, 2023 (notes) on YouTube.

#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? The 4 Best Raspberry Pi Alternatives.

New and Upcoming

Akizuki Denshi microcomputer board

Akizuki Denshi’s “AE-RP2040 [K-17542]” is a microcomputer board equipped with the RP2040 chip. All 30 pins of I/O are brought out, and with a single USB cable you can start developing in C/C++ and MicroPython.

It is smaller than the original “Raspberry Pi Pico” and has a BOOT switch and a RUN switch. It has a user-friendly design.

The microcomputer board “AE-NRF52840 [K-17484]” equipped with the nRF52840 (SoC) was designed as a simple microcomputer board, eliminating onboard sensors and charge controllers - RadioLife (Japanese).

Pi "Dev Helper" board

Chris Burton is assembling a Pi “Dev Helper” board, which uses an RP2040 to control everything. It gets to “RP2 Boot” so, next up, is getting CircuitPython compiled for it - Twitter Thread.

The onboard SD can be switched between target Pi and the onboard USB card reader. The USB Type-A can be switched between target Pi (micro USB) or the USB hub and out through the “System” USB-C connector along with the card reader and RP2040. It also has a loop-through USB C at the bottom for powering the target Pi which can be turned on/off and the USB2 data can also be redirected to the onboard hub.

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 some are in process.

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

Adafruit IoT Button with NeoPixel BFF from Liz Clark

Adafruit PCA9546 4-Channel STEMMA QT Multiplexer from Liz Clark

CircuitPython Libraries!

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 libraries, download the Adafruit CircuitPython Library Bundle. For the latest community contributed libraries, download the CircuitPython Community 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! Have you written a library you’d like to make available? Submit it to the CircuitPython Community Bundle. 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 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 400!

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

  • 102223 PyPI downloads over 306 libraries

Top 10 Libraries by PyPI Downloads

  • Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 18438
  • Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 17245
  • Adafruit CircuitPython Register (adafruit-circuitpython-register): 1689
  • Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1640
  • Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1158
  • Adafruit CircuitPython PCA9685 (adafruit-circuitpython-pca9685): 985
  • Adafruit CircuitPython MCP230xx (adafruit-circuitpython-mcp230xx): 977
  • Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 886
  • Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 874
  • Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 774

What’s the team up to this week?

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

Dan

I’m continuing on several of the last few 8.0.0 bugs we have left to fix before a release candidate. I fixed a bug that showed up when making an HTTP server on Espressif chips: we were not making a socket non-blocking internally when we expected it to be non-blocking. I researched another apparent bug that turned out to be Windows C3 and PowerShell not setting DTR ready when opening a serial connection. So it wasn’t actually a CircuitPython bug. And right now I’m trying to track down some mysterious wifi problems with very intermittent crashes.

Kattni

I updated the SHT40 guide, which is now the SHT40 and SHT45 guide, to include, surprise, the SHT45! The only difference between the two breakouts is that the SHT45 chip has a higher accuracy rating. There is no difference in wiring, code, or interaction. The only way to tell which chip you have is to read the text on your breakout board! If you’ve picked up either of these chips, check out the guide!

We have been releasing new revisions of our TFT and OLED displays with a ribbon cable connector dubbed the EYESPI connector. To that end, I’m writing up a new template covering the connector, its pinout, and how it works, that will be included in each of the guide updates. There will also be updates throughout the rest of the guide to reference it. Once I’ve updated one guide to what we want it to be, Liz and I will be splitting up updating the rest of the necessary guides, and new updates moving forward. If you have one of these new EYESPI displays, keep an eye on the original display guide for these updates.

Tim

This week I’ve been continuing testing of changes in the Wiznet ethernet library. There are still a few more but we’re approaching “light at the end of the tunnel” for the PRs that were built up. I also received and soldered up an Eye SPI breakout + a few displays to start trying them out with displayio.

Scott

This week I’ve been debugging the (hopefully) last few bugs before 8.0.0. The most recent was an issue with the Pico W where the web workflow wouldn’t start the first time after dragging the UF2 onto the device. This is was due to us misdetecting the reset reason as the watchdog (which occurs during an error.) Now it is detected as a software reset and web workflow will start up.

I’ve also been working on CircuitPython2023. My post is on the Adafruit blog. And I’ve been making summary posts with links to others’ posts.

Liz

This week I published two more new product guides: the STEMMA QT version of the PCA9546 I2C multiplexer and the IoT Button with NeoPixel BFF. The IoT Button BFF is another QT Py add-on board that has a chonky button designed with simple IoT projects in mind. I wrote up quick Adafruit IO examples for both CircuitPython and Arduino for the guide demoing how you could send data to IO and use the NeoPixel as a connection status indicator.

Upcoming events!

MicroPython Meetup

The next MicroPython Meetup in Melbourne will be on January 25th – Meetup. Slides from the October meeting are here.

FOSDEM 2023

FOSDEM is a free event for software developers to meet, share ideas and collaborate. Every year, thousands of developers of free and open source software from all over the world gather at the event in Brussels. February 4-5, 2023 in Brussels, Belgium - Fosdem.

PyCon US 2023

PyCon US 2023 will be April 19-17, 2023, again in Salt Lake City, Utah USA - PyCon US 2023.

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

20230123 is the latest CircuitPython library bundle.

v1.19.1 is the latest MicroPython release. Documentation for it is here.

3.11.1 is the latest Python release. The latest pre-release version is 3.12.0a4.

3,373 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.

jobs.adafruit.com - Find a dream job, find great candidates!

jobs.adafruit.com

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, Micro Center, Raspberry Pi and more.

Job of the Week

CNC programmer and maker - Machine Histories - Adafruit Jobs Board.

36,474 thanks!

36,474 THANKS

Adafruit Discord

The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 36,474 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, IGTV (Instagram TV), 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.

Codecademy “Learn Hardware Programming with CircuitPython”

Codecademy CircuitPython

Codecademy, an online interactive learning platform used by more than 45 million people, has teamed up with Adafruit to create a coding course, “Learn Hardware Programming with CircuitPython”. The course is now available in the Codecademy catalog.

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.