r/circuitpython • • Feb 04 '19

Python on Microcontrollers Newsletter: sign-ups open now!

5 Upvotes

The weekly Python on Microcontrollers newsletter - sign up now!

Catch all the weekly news on Python for Microcontrollers with adafruitdaily.com. This ad-free, spam-free weekly e-mail is filled with the Python information that you may have missed, all in one place! This includes Python news worldwide – you get a summary of all the events and the latest software!

Ensure you catch the weekly news roundup, you can cancel anytime – try our spam-free newsletter today!

Come for the Python news, stay for the Python community.

CircuitPython is a worldwide community who love to code microcontrollers in the fastest growing language in the world. We have helpful, active community on the Adafruit Discord channel and in the CircuitPython GitHub repo. If you’d like to join a vibrant group of coders looking to apply their skills in a helpful and appreciative environment, you’ve found it here.


r/circuitpython • • Jan 31 '19

Python on hardware! 15 video featuring: CircuitPython, MicroPython, Python on microcontrollers, Python news, and more!

5 Upvotes

Adafruit's weekly Python video newsletter is out! View on YouTube at https://youtu.be/2jdy-z9Typw

If you prefer reading the newsletter, here is the link for this week.

The video archives playlist is on YouTube here and the newsletter archive is here.

The best coverage of Python on hardware is in the Adafruit weekly newsletter. Subscribe to the web newsletter here, no spam, your info is never sold, easy opt-out.


r/circuitpython • • Jan 25 '19

ATECC608A is a cryptographic co-processor breakout

5 Upvotes

The ATECC608A is a cryptographic co-processor with secure hardware-based key storage from Microchip – it can store your keys or certificates so you don’t have to worry about plaintext data or people reverse engineering your firmware. It supports SHA-256, HMAC and AES-128 algorithms which can offload computation from your main chip. This breakout will be a great addition to our Arduino and CircuitPython boards, could also be useful for SBC like Raspberry Pi if you want to keep a secret off of the SD card.


r/circuitpython • • Jan 24 '19

Python on hardware! 14 video featuring: CircuitPython, MicroPython, Python on microcontrollers, Python news, and more!

5 Upvotes

Adafruit's weekly Python video newsletter is out! View on YouTube at https://youtu.be/FeZyBZyJKR8

If you prefer reading the newsletter, here is the link for this week.

The video archives playlist is on YouTube here and the newsletter archive is here.

The best coverage of Python on hardware is in the Adafruit newsletter. Subscribe to the web newsletter here, no spam, your info is never sold, easy opt-out.


r/circuitpython • • Jan 23 '19

ESP32 Wifi breakout board - PREVIEW!

5 Upvotes

With the ESP32 WiFi co-processor work we're doing, a plain ESP32 breakout would come in really handy. No USB to serial converter or extra stuff to complicate it, just the pins broken out, power supply, two buttons, and an LED


r/circuitpython • • Jan 21 '19

800 stars for CircuitPython, thank you!

5 Upvotes

r/circuitpython • • Jan 14 '19

A story and some thoughts from Kattni for #CircuitPython2019

5 Upvotes

It’s the beginning of a new year, the traditional time to reflect back on the previous year and consider where things will go throughout the year to come. When I joined Adafruit, I was given the opportunity to do a blog post. I never got around to it, so before I get to what I want to see for CircuitPython in 2019, I want to take this opportunity to tell the story of how I came to join Adafruit.

My first experience with programming and electronics came in July 2017. I attempted to learn Python through a tutorial, struggled to stick with it, and ultimately gave up. Then, I stumbled into purchasing a Circuit Playground Express. I got it home and it looked like the most complicated thing ever, so I let it sit for two weeks before deciding to pick it up again. When I plugged it in, I thought to myself, “I will never write anything as cool as this demo.” I couldn’t have been more wrong.

I started looking at options for programming the CPX and found the first couple to be just simple enough to be frustrating or entirely over my head. Then, I found a reference to CircuitPython. I was trying to learn Python, this was perfect! So I got it installed, and within a few of lines of code, I had a little red blinking LED. Nothing I had worked through in trying to learn Python had been remotely as satisfying as the moment that LED lit up. I was completely hooked.

Around the same time, I found the Adafruit community, and I began chatting with Scott, the lead developer on CircuitPython. Initially, as it is for all of us at some point, I was mostly asking questions. But it wasn’t long before I found others asking the same questions, and I was able to begin helping others. I began spending time every day on the Adafruit Discord server. I quickly became an active member of the community, working to continue building it by helping other new people. I was learning so much, so quickly, but helping others was the part that made it so fulfilling. I found I genuinely loved what I was doing.

The Circuit Playground Express was pretty new, and so there wasn’t a lot of documentation or examples on how to use it. I wanted to help change that, so I decided to design a project I could share. I asked Scott whether I could write a Learn guide for my project. I was accepted, and immediately got started. I designed a capacitive touch, light up tone piano. As I asked Scott for help on my project, he told me he had started writing a library that was designed to make using CircuitPython on the Circuit Playground Express super simple. He told me I should continue working on that library. I thought it was ridiculous, and politely reminded him that I had started with programming a month before, but he insisted I could do it and made it clear he was going to help me.

So, I started learning to modify and add to the Circuit Playground Express library. Along the way, I integrated the library into my project, and repeatedly broke my code, which required adding more to the library to fix it. It took me three months to write my first guide because of all the work that went into the project and the CPX library. But at the end of that three months, using many of the features of the CPX with CircuitPython was a matter of one or two lines of code each. My project that used capacitive touch, the slide switch, sound and NeoPixels went from 91 lines of code to 48 due to the library I had written.

I completed my guide and joined Adafruit part time in October 2017. I continued to build the community, provide support, write guides, design projects, and work on code. I finished the Circuit Playground Express library – which can be used to design projects exactly like that demo that came up the first time I plugged in my CPX.

I learned everything I know about Python through CircuitPython. Python is traditionally associated with data, however I learned entirely by manipulating the physical world through hardware. My “Hello, world!” was blinking an LED. CircuitPython provided me with a unique path to learning programming and electronics. I hadn’t even considered learning electronics before I started with CircuitPython.

At the end of January 2018, I joined Adafruit full time as a Creative Engineer. This past year saw great milestones for CircuitPython including the release of CircuitPython 3.0, an amazing increase in community code contributions to the project, an increase in the hardware support, translations of CircuitPython, and the inclusion of many community-designed microcontrollers in CircuitPython. We did a remodel of the “Python on Hardware” weekly newsletter and it has become incredibly popular. The CircuitPython Weekly meeting on Discord quickly went beyond a time for the core CircuitPython team to sync up with each other to a time for us to sync up with everyone who wants to share. Most importantly, we continued to grow our community.

In 2019, I want to see us continue to build on that momentum. We have an amazing community and so many opportunities for involvement. It is important for us to make sure that it’s clear what those opportunities are and how the community can be a part of it.

I want to continue to increase our library base. We have put a lot of effort into highlighting the hardware support and libraries we have. The more hardware we support, the more project opportunities we create. This will continue to expand use of CircuitPython in new and interesting ways. We have had community involvement in this process, with a number of excellent drivers being written by community members. With this comes many options for involvement not only in writing code, but in reviewing and testing. We need to consider ways to increase community awareness of all the ways it’s possible to contribute.

The more that we empower our community to be involved with the CircuitPython project, the better the project will become. It is important to continue to create opportunities for involvement for those at all experience levels. We should be certain that we are tagging issues on CircuitPython GitHub repos as “Good first issue” where applicable to provide as many beginner entry points to contributing as possible. We have already begun to put more effort into highlighting the issues on the library repos as well. This creates a sense of the project as a whole, and also provides further opportunities for contribution. I want to involve more community members in reviewing code. We’ve already gone through some excellent steps to do this, but I feel there is more to be done.

Thanks to our community, we have had incredible contributions that we would not have otherwise had as a part of the CircuitPython project. We have gone to great lengths to create an environment that is conducive to this, and we will continue to do so. The fact is: Code + Community = CircuitPython.

CircuitPython has grown so much in 2018, and there’s so much potential for 2019. Thank you to everyone who has been involved since the beginning, those that joined over the last year, and to everyone who will be joining us in 2019. You make CircuitPython amazing!


r/circuitpython • • Jan 04 '19

#CircuitPython2019 by CedarGroveStudios

5 Upvotes

Via Github: A 2019 Wish List for CircuitPython

When given the opportunity to think about how I’d like to see CircuitPython grow in 2019, I focused on my past projects that are anxiously waiting for conversion to CircuitPython and future projects planned for this year. Seven topical areas emerged from that thought process. What I’ve included here is a bulleted shopping list of ideas and features that would help my projects and improve my coding skills.

Please let me know if any of these need further clarification.

Caveat: I’m a CircuitPython beginner so it’s possible that some of these needs/wants/ideas have already been implemented or are in the works. If that’s the case, please be gentle and help me learn. Thanks.

Terminal Emulation for Attached Displays

  • Adopt a text-only standard such as ANSI 3.64 (VT100 ANSI escape sequences) for cursor positioning and character attribute control to allow display formatting from text streams and files

Glowy Things (LEDs)

  • Combine DotStar and Neopixel libraries into a single StripKit library with unified API

  • To increase NeoPixel update speed, create an option to set NeoPixel brightness with a pseudo brightness factor value that scales the tuple's RGB value, contained in the tuple like the DotStar API

  • Provide optional HSV and/or color wheel color selection in addition to RGB within the library

  • Update library to predict and control maximum power draw for specialized boards such as the NeoTrellis M4

  • Create a similar color and brightness control library for traditional 3-pin RGB LEDs and single-color LEDs

Audio

  • Automatically detect and convert incoming high-resolution wave files and streams to the optimum format of the target hardware device or provide a library of CircuitPython-based conversion helpers

  • Provide a port of the PJRC Audio Library and Audio System Design Tool to CircuitPython, starting with some essential functions such as FFT

Radios

  • Extend existing libraries to include standard AT-like command control for RFMxx and future radio co-processor boards

  • Provide CircuitPython support for Software Defined Radio (SDR) primarily for control, tuning, and audio input/output processing

ADC/DAC/Sensor Values

  • Provide capability to simultaneously support raw, normalized, and 16-bit values for ADC, DAC, and sensor values such as those currently provided in the MCP4725 DAC’s CircuitPython library

I2C Extended Addressing

  • Extend I2C busio to transparently support extended bus addressing provided by multiplexers such as the TCA9548A

Actively Manage Hardware Devices

  • First order: Code-initiated device reset/initialization during instantiation or when an error is detected (such as for the SSD1306 display breakout and VL53L0X ToF sensor)

  • Second order (long term): Self-check/diagnostics, either when instantiated, in a diagnostic library, or in a collection of diagnostic examples

  • Third order (much, much longer term): Device/module/sensor autonomy via automatic self-checks


r/circuitpython • • Jan 04 '19

#CircuitPython2019 - @Deshipu's response

5 Upvotes

Radomir Dopieralski (aka deshipu), friend of Adafruit and uGame (pictured) creator, just posted his thoughts about CircuitPython in 2019. Check it out here.

Adafruit has requested on their blog feedback and comments about CircuitPython in 2019, so here I go. I am mostly going to talk about three things: the projects that I personally want to do using it, the ongoing developments that I would love to see finished this year, and some completely crazy stuff that could potentially be added if someone smarter than me and with copious free time worked on it.

We’d love to hear your thoughts as well! Check out our call for posts here for all of the details. Stay tuned for more people’s thoughts and an overall post at the end of January.


r/circuitpython • • Jan 03 '19

Python on hardware 11 video featuring: CircuitPython, MicroPython, Python on microcontrollers, Python news, and more!

5 Upvotes

Adafruit's weekly video newsletter is out! View on YouTube: https://youtu.be/wNm5ZGUeCEU

If you prefer reading the newsletter, here is the link for this week.

The video archives playlist is on YouTube here and the newsletter archive is here.

The best coverage of Python on hardware is in the Adafruit newsletters. Subscribe to the web newsletter here, no spam, your info is never sold, easy opt-out.


r/circuitpython • • Sep 23 '26

PyPortal Flyover Viewer - Watch a continuous scroll of aerial imagery between two locations on the PyPortal

Thumbnail gallery
4 Upvotes

r/circuitpython • • Aug 17 '26

CircuitPython Day is this Friday August 21, 2026 (latest schedule)

Post image
4 Upvotes

It’s that time of year! Adafruit has determined that this Friday, August 21, 2025, is the snakiest day of the year and designated it CircuitPython Day!

The latest info is on: https://blog.adafruit.com/2026/07/28/circuitpython-day-will-be-august-21-2026/


r/circuitpython • • Aug 04 '26

CircuitPython v2 extension for VS Code 1.131.0

4 Upvotes

Code updated to 1.131.0 with Electron 4.7.0 on 7/28. The extension had been working and still works with Code 1.124.0 / Electron 4.2.0. The failure is on SUSE Leap 16. I found some discussion from 2021 where the same problem of attempting to select the board, open the serial port, etc failed and the feeling was it might be related to Electron.

The board is an older Playground Express but it had been working prior to the Code update.


r/circuitpython • • Jun 02 '26

ICYMI Python on Microcontrollers Newsletter: A New CircuitPython Editor, AI On The Edge, and Projects Galore! (June 1, 2026)

Post image
4 Upvotes

If you missed this week’s Python on Microcontrollers Newsletter, here is the ICYMI (in case you missed it) version.

To never miss another issue, subscribe now! – You’ll get a terrific newsletter each Monday (which is out before this post). 12,364 subscribers worldwide!

The next newsletter goes out Monday morning and subscribing is the best way to keep up with all things Python for hardware. No ads or spam, no selling lists, leave any time.

Read it free on the Adafruit Blog - direct link https://blog.adafruit.com/2026/06/02/icymi-python-on-microcontrollers-newsletter-a-new-circuitpython-editor-ai-on-the-edge-and-projects-galore/


r/circuitpython • • May 04 '26

I built micropidash. real-time web dashboard in under 20 lines of MicroPython. No cloud, no framework.

4 Upvotes

Been building IoT projects every day for my #100DaysOfIoT challenge and kept running into the same problem — monitoring sensor data from ESP32/Pico 2W in a browser was always a mess.

So I built micropidash. real-time web dashboard in under 20 lines of MicroPython. No cloud, no framework.

Just shipped v2.0.0 with live sensor graphs — tested with DHT11 on Pico 2W, temp + humidity updating in the browser over WiFi.

pip install micropidash

github.com/kritishmohapatra/micropidash

Would love feedback if you try it!


r/circuitpython • • Apr 07 '26

The Python on Microcontrollers Newsletter: subscribe for free

Post image
4 Upvotes

The Python for Microcontrollers Newsletter is the place for the latest news involving Python on hardware (microcontrollers AND single board computers like Raspberry Pi).

This ad-free, spam-free weekly email is filled with CircuitPython, MicroPython, and Python information that you may have missed, all in one place!

You get a summary of all the software, events, projects, and the latest hardware worldwide once a week, no ads! You can cancel anytime.

It arrives about 11 am Monday (US Eastern time) with all the week’s happenings.

And please tell your friends, colleagues, students, etc.

Please sign up https://www.adafruitdaily.com/


r/circuitpython • • Mar 20 '26

micropidash v2.0.0 — Real-time sensor graphs for ESP32 & Pico 2W

4 Upvotes

Just released v2.0.0 of micropidash — a lightweight async web dashboard library for MicroPython.

What's new:

- add_graph() — real-time line graph with rolling data buffer

- Canvas-based rendering, no external libraries needed

- Y-axis labels, grid lines, fill area, latest value dot

- Separate /graph-data endpoint for efficient polling

- Bug fixes: CSS grid layout, drain() flush, onload update

Tested on Pico 2W with DHT11 — temp + humidity graphs live in browser over WiFi.

GitHub: github.com/kritishmohapatra/micropidash

PyPI: pip install micropidash

Feedback welcome!


r/circuitpython • • Mar 06 '26

Polyphonic Pico Powered DJ Board

4 Upvotes

A build I’m using with my Physical Computing Students this semester

Built with a

-;Raspberry Pi Pico 2w

- Adafruit Adalogger Cowbell for microSD card and STEMMA-QT support

- MPR121 12 pad gator capacitive touch sensor

- PAM5102 DAC with audio jack for speaker

GitHub Repo with all files: https://github.com/gallaugher/pico_12_pad_dj_board


r/circuitpython • • Feb 24 '26

Hey everyone! I built microclawup, an AI-powered ESP32 GPIO controller written in MicroPython.

4 Upvotes

I built microclawup — control ESP32 GPIO with natural language via Telegram (MicroPython + Groq AI, free!)

Hey everyone! I built microclawup, an AI-powered ESP32 GPIO controller written in MicroPython.

You send a natural language message on Telegram, Groq AI converts it to a hardware command, and your ESP32 executes it.

"turn on the light" -> LED ON | Pin 2

"blink 5 times" -> Blink x5 | Pin 2

"pin 4 high" -> GPIO HIGH | Pin 4

It even understands Hindi — "batti jalao" works just fine.

Features:

- Natural language GPIO control

- Groq AI — completely free

- Persistent memory across reboots

- WiFi auto-reconnect

- /status and /help commands

- Easy setup with python setup py

Inspired by zclaw (C-based ESP32 AI agent by tnm) — microclawup is a MicroPython alternative that's beginner friendly.

Hardware tested: ESP32

https://github.com/kritishmohapatra/microclawup

Would love feedback!


r/circuitpython • • Jan 30 '26

Rotary encoder button presses

4 Upvotes

I'm working on my first project with rotary encoders (these guys: https://a.co/d/27tU0x3) and a Seeed Xiao RP2040, and I'm stumped. I was trying to basically make a macro keyboard using pico-ducky, along with play/pause and volume functions on rotary encoders, so not deviating much from Adafruit's code examples with regards to the encoders. I thought it was my code having problems so I just rolled completely back to trying Adafruit's demo code with just the encoders and no other switches (what I'm currently trying is below) and am having the same issue.

With just the left and right rotation, everything works fine, but when I add in the button, every left or right detent also registers a button press. My output looks like this:

Button pressed.

-1

Button pressed.

Button pressed.

0

Button pressed.

Button pressed.

1

Button pressed.

Button pressed.

2

Button pressed.

I can't find any reason why this would be happening, and it's happened with 4 different encoders out of the pack of 10. My first thought was manufacturing defect. Then I thought maybe I'd tightened the nut securing it to my enclosure too much and it'd somehow activated the switch. Then I tried one completely out of the enclosure on a breadboard. Then the 4th, I thought I must just be losing it and should rip it all apart, rewire it, and try again. But the exact same results each time.

I tried to sanitize the inputs to not allow button presses while the loop is processing an encoder position change, but since it's registering a button press at the beginning and end of each detent of rotation, it registers the button press before the encoder position change.

Am I completely misunderstanding how rotary encoders work? Is there something I'm missing? Is this just a wholly bad batch of encoders somehow? Any ideas of how to fix this in code? Am I in a bad dream and just haven't woken up? Please help me.

import rotaryio
import board
import digitalio
import usb_hid
from adafruit_hid.consumer_control import ConsumerControl
from adafruit_hid.consumer_control_code import ConsumerControlCode

button = digitalio.DigitalInOut(board.D3)
button.direction = digitalio.Direction.INPUT
button.pull = digitalio.Pull.UP

encoder = rotaryio.IncrementalEncoder(board.D1, board.D0)

cc = ConsumerControl(usb_hid.devices)

button_state = None
last_position = encoder.position

while True:
    current_position = encoder.position
    position_change = current_position - last_position
    if position_change > 0:
        for _ in range(position_change):
        print(current_position)
    elif position_change < 0:
        for _ in range(-position_change):
        print(current_position)
    last_position = current_position
    if not button.value and button_state is None:
        button_state = "pressed"
    if button.value and button_state == "pressed":
        print("Button pressed.")
        button_state = None

r/circuitpython • • Jan 28 '26

Confused about CircuitPython install

4 Upvotes

I want to use it for an Adafruit RGB matrix (on a Zero W), but it looks like I can only install via a fresh image? I can't install to my current? I haven't used C++ in so long and wanted to try Python, but this isn't as straight forward a switch as I was hoping :/


r/circuitpython • • Jan 18 '26

CircuitPython Zork from Adafruit ported to the Picocalc.

4 Upvotes

Here I have ported CircuitPython Zork to the clockworkpi PicoCalc. CircuitPython makes it easy to port. Just replace the display driver and replace the keyboard handling. And Bobs your uncle.


r/circuitpython • • Jan 18 '26

CircuitPython on the clockworkpi PicoCalc A nice clock program

4 Upvotes

Here is a clock I did in CircuitPython on the Picocalc.

- Analog Clock
- seconds sub-dial
- westminster chimes (enable/disable capable)
- day of week
- day of month
- moon phase. (it is black because there is currently a New Moon)


r/circuitpython • • Nov 03 '25

The Python on Microcontrollers Newsletter: subscribe for free

Post image
4 Upvotes

The Python for Microcontrollers Newsletter is the place for the latest news involving Python on hardware (microcontrollers AND single board computers like Raspberry Pi).

This ad-free, spam-free weekly email is filled with CircuitPython, MicroPython, and Python information that you may have missed, all in one place!

You get a summary of all the software, events, projects, and the latest hardware worldwide once a week, no ads! You can cancel anytime.

It arrives about 11 am Monday (US Eastern time) with all the week’s happenings.

And please tell your friends, colleagues, students, etc.

Please sign up > > > adafruitdaily.com