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! The US Thanksgiving holiday has come and gone this week and many folks have taken a break away. It is hoped that some people worked on home projects this weekend. It appears so on Mastodon, as the number of items grows. There were some major milestones reached this week with this newsletter growing to over 10,000 subscribers – thank you! Also on the Adafruit Discord, the number of members exceeded 36,000 – fantastic! It’s great when like minded folks can share their work and knowledge. Hoping for a wonderful week for all. – 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:

10,024 Newsletter Subscribers!

10k Subscribers

On November 22nd, the Python on Microcontrollers Newsletter exceeded 10,000 subscribers today! Thank you! Our goal is for this weekly newsletter to be the best source for weekly updates in the Python on hardware space. It’s our readership who inspire us. Keep making! – Adafruit Blog.

Discord 36,000 Subscribers

Discord 36,000 Subscribers

Adafruit Discord

The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 36,000 humans – thank you! Adafruit believes Discord offers a unique way for Python on hardware folks to connect. Join today at https://adafru.it/discord. – Adafruit Blog.

What is a Real-Time Operating System (RTOS)?

What is a Real-Time Operating System (RTOS)?

A real-time operating system (RTOS) is an operating system (OS, often a lightweight OS) that runs multi-threaded applications and can meet real-time deadlines. Some microcontrollers use an RTOS behind the scenes to run code and to do things like radio. Shawn Hymel explains all the details in this article and video – maker.io and YouTube.

Open Source and Saying “No”

Open Source & Saying "No"

From an Open Source maintainer: it’s extremely important to say “no” to requests/features that bloat a library too much. Many times it is played out something like this:

  • Talented contributor Z delivers feature X to project Y.
  • Project Y accepts it.
  • Feature X has an issue in the latest release.
  • Project Y didn’t start that feature so asks contributor Z for some help.
  • Contributor Z is not around and the fix is taken in by the project.

So a project shouldn’t think about the short term benefit of a new feature, but understand the long term implication of supporting such a feature – Connor Tumbleson.

Raspberry Pi Pico: Now Also Made in Kenya

Raspberry Pis: Now Also Made in Kenya

The first pieces of the first run of Raspberry Pi Pico, manufactured in Kenya – Twitter.

Seeing Python on Hardware Content on Mastodon

Mastodon

Ed: It was pleasant today typing #circuitpython in the Mastodon search box and seeing posts from a multitude of servers come up plus a follow icon so I could subscribe to that hashtag. If you are on Mastodon, here is a list of hashtags you may wish to follow:

  • #MicroPython
  • #CircuitPython
  • #RaspberryPi
  • #Python (although this could be a large number of posts as it is very general)
  • #PythonOnHardware (new)

We’re promoting the latter as encompassing, using any flavor of Python on hardware. Using multiple tags would be best. An article from this week: How to follow a hashtag on Mastodon – Nerds Chalk.

Here are the official accounts you may want to follow. Content may not be as copious as the hashtags – they are very new:

  • @circuitpython@fosstodon.org
  • @micropython@fosstodon.org

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 PixelMap and core displayio changes.

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 covers Incremental Iteration – YouTube and Adafruit Blog.

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.

The latest episode was released November 28th and features Mark Komus. Mark discusses his Monster Eyes project, contributing to the CircuitPython core, and more – Show List.

Project of the Week

Lolin ESP32 C3 Mini

Getting CircuitPython up on the Lolin ESP32 C3 Mini, running a webserver, and displaying graphics on the 8×8 LED matrix – Mastodon thread.

News from around the web!

PICO DEV M3

The Pico Dev M3 is a development board based on Raspberry Pi’s RP2040 microcontroller chip, the board is also a high-resolution magnetic rotary encoder when paired with a few 3D printed parts, which makes this the perfect board for applications and projects that can benefit from having a rotary encoder, a good example is making macro pads, and other similar secondary controllers. Programmable in MicroPython and C++ – GitHub via hackster.io on Mastodon.

Learn MicroPython - Part 2

Learn MicroPython – Part 2 Controlling the Flow – YouTube via Twitter.

Toggle Zoom video/audio

Using an Adafruit MacroPad to toggle Zoom video/audio and floating meeting controls and navigate between desktops by turning the encoder – Mastodon and GitHub.

Connection Machine

Making a miniature Connection Machine with CircuitPython and Raspberry Pi Pico – Twitter.

Thermostat

Thermostat v2 prototype up and running with a nice faceplate. Simple control of a Mitsubishi heatpump using CircuitPython on an Unexpected Maker Feather S3 – Mastodon.

PicoStepSeq

Tod’s PicoStepSeq sequencer made with RP2040 and CircuitPython is featured in the MagPi Magazine – MagPi via Mastodon.

Weather Station

Raspberry Pi Pico onboard weather station linked via MQTT and influx database showing the results on Pi Zero e-ink display. MicroPython on the Pico and Python on the Pi Zero – Twitter.

Teapot timer

A Pimoroni Badger-based teapot shaped timer, coded in MicroPython – Twitter and GitHub.

Pimoroni Phew!

Pimoroni Phew! v0.0.3 is now available in the Thonny and UPIP package managers for MicroPython. This is great if you want to host a web server on the Pico W (with easy access point creation) – GitHub.

Fish lamp

A fish lamp using NeoPixels and CircuitPython – Twitter.

20% Faster Python with a Single GC Tweak

20% faster Python with a single garbage collection (GC) tweak – mkennedy.codes.

Punpedia

Kevin writes: “This weekend I discovered Punpedia, which is like Wikipedia but for Puns… so I’m building an API to deliver puns to Pico W Projects, most likely the Pimoroni Inky Frame… API to be hosted on the shiny new RPi 4 that I unboxed on yesterday’s Livestream, running Python” – Twitter.

Python Web scraping to CSV file

Python Web scraping to CSV file – Pythonology on YouTube via Twitter.

15 Python Projects in Under 15 Minutes (Code Included)

15 Python Projects in Under 15 Minutes (Code Included) – morioh.com.

Guide to Machine Learning

J.P.Morgan’s Comprehensive 280-page Guide to Machine Learning (with Python code for popular ML algorithms) – JP Morgan (large PDF) via Twitter.

PyDev of the Week: Yeray Diaz on Mouse vs Python.

CircuitPython Weekly Meeting for November 28, 2022 (notes) on YouTube.

#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Mu version 1.2.0 released.

Coming Soon

NVIDIA Jetson Nano Developer Kit (V3)

NVIDIA Jetson Nano Developer Kit (V3) – NVIDIA, SparkFun and Arrow.

Compute Blade RC2

Raspberry Pi CM4 carrier board with PoE, NVMe, TPM, and more. Ivan is currently doing additional testing and preparing the boards for shipment to beta testers – Twitter.

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 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 NeoPixel Driver BFF 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 393!

Updated Libraries!

Here’s this week’s updated CircuitPython libraries:

Library PyPI Weekly Download Stats

  • Total Library Stats
    • 183107 PyPI downloads over 323 libraries
  • Top 10 Libraries by PyPI Downloads
    • adafruit-circuitpython-busdevice: 17346
    • adafruit-circuitpython-requests: 16968
    • adafruit-circuitpython-typing: 16379
    • adafruit-circuitpython-register: 1985
    • adafruit-circuitpython-neopixel: 1081
    • adafruit-circuitpython-dht: 1051
    • adafruit-circuitpython-ssd1306: 925
    • adafruit-circuitpython-esp32spi: 918
    • adafruit-circuitpython-display-text: 903
    • adafruit-circuitpython-motor: 884

What’s the team up to this week?

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

Dan

I’m checking and fixing yet more issues for the CircuitPython 8.0.0 release. I haven’t been able to replicate the some of the problems described in the last few issues I took on. But in the process of testing, I’ve found related bugs or problems, so I’ve been fixing those instead :).

Kattni

This week I worked with Liz on some projects we’re working on together. She wrote and collaborated on the code for my next project, the Holiday Countdown Timer using the quad alphanumeric backpacks with STEMMA QT. This no-solder project will include a 3D printed case. It’s a short week this week, so I’ll be starting on that next week.

Melissa

This past week I got back to working on code.circuitpython.org and fixed some bugs. I’m currently working on updating the USB workflow with an API function that allows you to select a folder and perform file operations similar to the Web Workflow.

Tim

This week I’ve been working on displayio API changes in the core and integrating the usage of a new core PixelMap class that makes animations more effecient.

Scott

This week I’ve been diving into web workflow on Pico W. I got web workflow going and then moved onto getting the MDNS portion working. MDNS allows CP devices to respond to circuitpython.local and cpy-MAC.local. I got it working before Thanksgiving break and will propose a pull request for it next week.

Liz

I wrote a guide for the NeoPixel Driver BFF. The board allows you to easily drive a strip a NeoPixels with a QT Py or Xiao form factor board. Up next, I’ll be working on a guide for the 5×5 NeoPixel Grid BFF. That board has a 5×5 grid of NeoPixels that attaches to a QT Py or Xiao board. I’m excited to see how folks use it.

I’ve been working with Kattni on some upcoming project code. I’ve been using the Mastodon API with CircuitPython on a Pico W to send and receive data from Mastodon. I also wrote code to use three daisy chained alphanumeric displays as a scrolling countdown clock.

Upcoming events!

MicroPython Meetup

The next MicroPython Meetup in Melbourne will be on December 28th – Meetup. Slides from the last meeting are here.

RISC-V Summit

RISC-V Global Summit, December 12-15, 2022 San Jose, California US – Linux Foundation, YouTube via Twitter.

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

As for other events, with the COVID pandemic, most in-person events are postponed or held online. If you know of virtual events or upcoming events, please let us know on Twitter with hashtag #CircuitPython or 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.4. New to CircuitPython? Start with our Welcome to CircuitPython Guide.

20221123 is the latest CircuitPython library bundle.

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

3.11.0 is the latest Python release. The latest pre-release version is 3.12.0a2.

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

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.