#MicroPython's
Adafruit's New CircuitPython 'Turbo' Brings Native Code To Tiny Boards
Targeting students and beginners, Adafruit released "CircuitPython" in 2017 (as a derivative of the MicroPython microcontroller-optimized programming language). Now Adafruit managing director Phillip Torrone (also long-time Slashdot reader ptorrone) brings this update: Adafruit has published CircuitPython Turbo, a workflow that compiles selected Python functions into native machine code on a computer, then loads them onto compatible microcontroller boards. It builds on MicroPython's Native and Viper emitters. In a documented Metro RP2040 fixed-point Mandelbrot test, Viper cut computation time from 8.335 seconds to 0.423 seconds, a 19.71x speedup over bytecode. The rest of the application stays in Python. The guide includes benchmarks, source code and hardware demos. The speedup is for the measured computation, not the whole application. "Turbo support is now included in the latest official CircuitPython builds for RP2040 and RP2350 boards..." explains Torrone's announcement at Adafruit.com. "The new Turbo in CircuitPython helps when the board spends time calculating: making neopixel effects, drawing fractals, processing audio, filtering sensor readings, or preparing lots of pixels. Those projects can get smoother animation, quicker responses, or room to do more things at once." With Turbo, it's easier, better, and now even faster to make LED light up costumes that also reacts to sound at the same time, a sensor dashboard with animated graphics, or a tiny game doing physics while drawing the screen. Turbo speeds up the busy Python parts. It won't make a slow sensor or display connection faster... Your computer turns selected functions into instructions the chip can run directly. Python still handles the rest. We have measured speedups, real display captures, and examples you can pull apart to see what happened. None of this arrived alone. CircuitPython, MicroPython, PyMCU, compiler tools, open hardware, and people sharing their work gave us pieces to connect. The Bao experiments take that idea somewhere else, handing calculations to four helper cores. Now we get to make those paths easier to use, compare results, and find the next useful thing. Maybe that's smoother animation, a responsive instrument, or an idea we haven't tried yet. That's what I like about open source. Someone shares a piece, someone else sees a possibility, and we get to keep building it together. Read more of this story at Slashdot.
news.slashdot.org
September 17, 2026 at 2:56 AM
Adafruit's New CircuitPython 'Turbo' Brings Native Code To Tiny Boards
Targeting students and beginners, Adafruit released "CircuitPython" in 2017 (as a derivative of the MicroPython microcontroller-optimized programming language). Now Adafruit managing director Phillip Torrone (also long-time Slashdot reader ptorrone) brings this update: Adafruit has published CircuitPython Turbo, a workflow that compiles selected Python functions into native machine code on a computer, then loads them onto compatible microcontroller boards. It builds on MicroPython's Native and Viper emitters. In a documented Metro RP2040 fixed-point Mandelbrot test, Viper cut computation time from 8.335 seconds to 0.423 seconds, a 19.71x speedup over bytecode. The rest of the application stays in Python. The guide includes benchmarks, source code and hardware demos. The speedup is for the measured computation, not the whole application. "Turbo support is now included in the latest official CircuitPython builds for RP2040 and RP2350 boards..." explains Torrone's announcement at Adafruit.com. "The new Turbo in CircuitPython helps when the board spends time calculating: making neopixel effects, drawing fractals, processing audio, filtering sensor readings, or preparing lots of pixels. Those projects can get smoother animation, quicker responses, or room to do more things at once." With Turbo, it's easier, better, and now even faster to make LED light up costumes that also reacts to sound at the same time, a sensor dashboard with animated graphics, or a tiny game doing physics while drawing the screen. Turbo speeds up the busy Python parts. It won't make a slow sensor or display connection faster... Your computer turns selected functions into instructions the chip can run directly. Python still handles the rest. We have measured speedups, real display captures, and examples you can pull apart to see what happened. None of this arrived alone. CircuitPython, MicroPython, PyMCU, compiler tools, open hardware, and people sharing their work gave us pieces to connect. The Bao experiments take that idea somewhere else, handing calculations to four helper cores. Now we get to make those paths easier to use, compare results, and find the next useful thing. Maybe that's smoother animation, a responsive instrument, or an idea we haven't tried yet. That's what I like about open source. Someone shares a piece, someone else sees a possibility, and we get to keep building it together. Read more of this story at Slashdot.
news.slashdot.org
September 17, 2026 at 2:39 AM
It has an LED matrix sharing rows/columns with a key matrix and it was visibly flickering due to (presumably) MicroPython's GC running on the other core. Honestly, A: LED matrix was an afterthought, B: this is a dev board, so fixing it was completely unwarranted, but.
August 17, 2026 at 3:25 AM
Coinkite disclosed that a build error sent COLDCARD seed generation through MicroPython's ordinary random number generator instead of its hardware chip, cutting the search space on older units from 128 bits to roughly 40 - and says an AI review it commissioned weeks earlier missed it entirely.
A preprocessor typo cost a bitcoin wallet half its randomness
Coinkite disclosed that a build error sent COLDCARD seed generation through MicroPython's ordinary random number generator instead of its hardware chip, cutting the search space on older units from 128 bits to roughly 40 - and says an AI review it commissioned weeks earlier missed it entirely.
groundtruth.day
August 10, 2026 at 2:59 AM
"That path resolved rng_get() to MicroPython’s software fallback instead of COLDCARD’s hardware RNG implementation." 😂
JUST IN: $40 million worth of Bitcoin stolen after 500 'Coldcard' hardware wallets were hacked.
July 31, 2026 at 8:21 PM
Quick rp2350 speed summary from *simple* loops: Lua's about 3-4x slower than unoptimized C. MicroPython's more like 30x slower. MicroPython viper can get ints to like 50% slower than unoptimized C but can't handle floats. Unoptimized C on rp2350 is about the same speed as Python interpreter on rpi4.
July 25, 2026 at 11:03 PM
ppf font support for you vanilla MicroPython framebuf heathens 😆

github.com/Gadgetoid/fb...
GitHub - Gadgetoid/fbppf: PPF font support for MicroPython's framebuf module.
PPF font support for MicroPython's framebuf module. - Gadgetoid/fbppf
github.com
July 21, 2026 at 9:45 PM
🤷 never used it!

Should probably delve in to how they solved the same problems I ran into, but I’m not simulating hardware so much as making MicroPython’s WebAssembly port more useful.
July 5, 2026 at 3:31 PM
Happy 13th birthday, @micropython 🎉

We’re really happy to be increasing our GitHub sponsorship to $500/month to help support the project and ensure its future.

If MicroPython’s been useful to you, it’s well worth supporting too: github.com/sponsors/mic...
Sponsor @micropython on GitHub Sponsors
MicroPython is a lean, efficient and robust implementation of the Python 3 programming language optimised to run on microcontrollers and in constrained environments. It includes a subset of the Py...
github.com
April 29, 2026 at 7:48 AM
It's MicroPython's 13th Birthday tomorrow! 🎂 To celebrate get up to 30% off in store for products that work with MicroPython and CircuitPython. Wow! shop.pimoroni.com/collections/...
April 28, 2026 at 5:46 PM
MicroPython's 8x8 pixel frame buffer font is too small for the 240x240 pixel display on BEAPER Nano and BEAPER Pico, so I'm working on designing a custom 16 pixel high font that I can build into the MicroPython LCD display driver (top of both photos – bottom is Reddit Sans 16). What do you think?
April 2, 2026 at 6:11 PM
Well I would never have guessed (thank you Claude!) that MicroPython's UART txbuf defaults to 256 bytes, which explains the oddly specific cap

Upped it to 4096 and I can send the entire payload in one go!
a2.co Alex Akers @a2.co · Mar 14
I can send some data (about 4.5 kb) to a server in 256 byte chunks (for reasons) and I'm trying to figure out how to best reassemble the image on the other side. (It's very Wonkavision!)

Options include:
- POST to endpoint in chunks
- MQTT
- FTP (maybe)
March 14, 2026 at 11:47 PM
It’s never too late to try again 😁 I find MicroPython’s Unix port great for testing code and iterating fast!
March 11, 2026 at 4:39 PM
Disappointed that MicroPython's policy on AI isn't a staunch: "Fuck off into the sun."
February 25, 2026 at 3:55 PM
MicroPython Now Requires AI Disclosure on Every Pull Request 🤖🧠

Somewhere between 'ban it all' and 'let the robots run free' there's a checkbox to help the team at MicroPython.

blog.adafruit.com/2026/02/19/m...
February 19, 2026 at 7:32 PM
Tbf knowing about PSRAM support in advance would have robbed us of this art.

PSRAM combined with MicroPython’s garbage collection is a horrorshow though 😭 need to do something about that.
February 3, 2026 at 7:12 PM
New version of dir2uf2 released, with support for targeting MicroPython's ROMFS partition (you need to bring your own filesystem packed with `mpremote romfs --output romfs.bin build `) and also other arbitrary filesystems, such as FAT. Plus other fixes!

github.com/Gadgetoid/di...
Release Version 0.1.0- The UF2 is Getting FAT · Gadgetoid/dir2uf2
This build includes a number of changes gathered from various experiments over the last year or so. Many of these changes are already used in production, or very close to being used, so I'm confide...
github.com
December 12, 2025 at 3:24 PM
Oh that feeling when good tools work together!

Using kitty's graphics protocol and MicroPython's unix port + framebufs to debug SSD1306 oled code in my terminal.

gist.github.com/nmattia/7a00...
August 17, 2025 at 3:35 PM
MicroPython's nlr_push/nlr_pop exception handling is both wild and also basically just `goto` with extra steps 🤣
August 14, 2025 at 9:56 AM
I haven’t got there quite yet 🤣

Three is definitely enough but then there’s one entry point main and a _main and also another main because MicroPython’s Unix port and Sokol both want to be top dog.

Making the two work together might be… spicy.
August 11, 2025 at 10:24 PM
I'm getting confident enough that the way python does certain things is garbage for my particular needs and that I can shove the C++ API into Jython (in this case they're pretty similar but I get the feeling this is a gateway drug that ends with a new Arduino C++/Python mashup language.)
July 17, 2025 at 3:50 PM
Trying to glue monaco and MicroPython's WASM port together and good god, what have ya'll done to the web? It's a disaster.
July 15, 2025 at 10:55 AM
(To the credit of MicroPython's maintainers, if it ain't broke don't fix it- they use a somewhat modified version of FatFS called oofatfs, and the addition of "n_fats" as an option to "mkfs" means updating to 0.14+ will break a whole bunch of stuff.)
July 2, 2025 at 10:28 AM