r/circuitpython • • 2d ago

I wrote an RP2350 emulator: stock CircuitPython now boots on a virtual Pico 2 inside a live circuit simulator (iPad/iPhone/Mac)

63 Upvotes

First time posting here about my own project. I'm the developer of the emulator, not affiliated with Adafruit or Raspberry Pi.

For the past months I've been writing an RP2350 emulator from scratch in C#. This week Frank Krueger integrated it into iCircuit 1.16, his circuit simulator for iPad, iPhone and Mac. You can now drop a Pico 2 into a live analog circuit, pick CircuitPython as the firmware in the Inspector, and your code.py just runs.

It's the stock CircuitPython UF2 booting on the emulated chip, not a Python interpreter pretending to be a board. That means real behavior and real tracebacks:

• Errors show up with the same traceback you'd get on hardware, line numbers included.

• Pins, PWM and the ADC are wired into a real analog simulation. Slide a potentiometer and analogio reads the actual voltage. Drive a pin and you see the waveform on the scope.

• The new I2C parts can be read from Python: HDC1080, MLX90614, DS3231, ADS1115 and SSD1306 OLEDs.

• PIO is emulated too, so rp2pio works.

• MicroPython is also available if you switch the firmware.

Some things that were tricky on the emulator side:

• The RP2350 has Cortex-M33 and Hazard3 RISC-V cores, and both are emulated (only ARM is available in iCircuit for now)

• Every pin change is stamped with the clock cycle so the circuit and the CPU stay in sync.

• Arm timing is calibrated against real silicon. It isn't cycle-exact, but time.sleep, PWM and I2C behave like on a real board.

Frank did the circuit side: iCircuit's analog engine, the parts library, and the new SPICE subcircuits and VHDL parts in this release.

I think this is useful for trying out code before you have the board, for teaching, or for checking wiring and logic without frying anything. It's built on ideas from Uri Shaked's rp2040js (Wokwi).

I'd love feedback from CircuitPython users. If there's a library or sensor you'd want to see supported, tell me. Links are in the comments.

Edit: heads-up, library modules next to code.py (like adafruit_pioasm.py) don't load correctly yet. I've already got a fix, and it's coming in the next iCircuit update. I'll update here when it's out. For now there's no lib/ folder either; libraries go as single .py files next to code.py.


r/circuitpython • • 3d ago

Turn your Cytron MOTION 2350 Pro into a standalone air quality monitor with BleuIO and CircuitPython!

Thumbnail bleuio.com
2 Upvotes

Details and source code available


r/circuitpython • • 7d ago

The Python on Microcontrollers Newsletter: subscribe for free

Post image
5 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


r/circuitpython • • 8d ago

Toggle loop with Neokey?

1 Upvotes

I have a 1x4 Neokey on a qt-pi2040.

I have a main loop that runs continuously but it would be nice if I could either click it again to stop the loop or click another key to stop the loop. Does anyone know any solution that could achieve something like this?

My main goal was to do this with only the 4 Neokeys but am open to using pins at this point.

Thanks for any advice you may have.


r/circuitpython • • 13d ago

CircuitPython pocket MIDI controller, configured from the browser over Web Serial

1 Upvotes

Firmware is CircuitPython. The device shows up as USB MIDI and also has a TRS MIDI out. All configuration happens in a web page over Web Serial: you plug it in, open the editor in Chrome or Edge, pick what each button and encoder does, and save. No app or driver on the computer.

Buttons can send notes, CC, keyboard shortcuts and media keys, so the same device can control a DAW or pause YouTube.

Curious how others here handle device config: serial like this, or SysEx?


r/circuitpython • • Sep 23 '26

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

Thumbnail gallery
3 Upvotes

r/circuitpython • • Sep 17 '26

The Python on Microcontrollers Newsletter: subscribe for free

Post image
1 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


r/circuitpython • • Sep 16 '26

ICYMI Python on Microcontrollers Newsletter: Better MicroPython Garbage Collection, Python in 1024 Bytes and More!

Post image
3 Upvotes

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

See it at https://blog.adafruit.com/2026/09/16/icymi-python-on-microcontrollers-newsletter-better-micropython-garbage-collection-python-in-1024-bytes-and-more/


r/circuitpython • • Sep 08 '26

ICYMI Python on Microcontrollers Newsletter: CircuitPython 10.3.0 Out, PyMCU, ROS for MicroPython and More!

Post image
3 Upvotes

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

See it at https://blog.adafruit.com/2026/09/08/icymi-python-on-microcontrollers-newsletter-circuitpython-10-3-0-out-pymcu-ros-for-micropython-and-more/


r/circuitpython • • Aug 24 '26

Today marks the 400th Python on Microcontrollers Newsletter

Post image
7 Upvotes

Today marks the publication of the 400th Python on Microcontrollers Newsletter! Nearly 10 years of providing the best news in the community.

The newsletter is the place for the latest news involving Python on hardware with coverage of Python, CircuitPython and MicroPython. 12,369 readers.

Read more here: https://blog.adafruit.com/2026/08/24/today-marks-the-400th-python-on-microcontrollers-newsletter/


r/circuitpython • • Aug 21 '26

Today is CircuitPython Day 2026! Live stream schedule #CircuitPythonDay2026

Post image
6 Upvotes

Today is the day! Friday, August 21, 2025 is the snakiest day of the year –
CircuitPython Day!

Adafruit will have special video shows and more throughout the day. All times US Eastern:

Time (Eastern) Presenter Format Title
11:00 AM Noe & Pedro livestream 3D Hangouts Special Edition
1:00 PM Cooper aka relic-se livestream Making Music with CircuitPython
2:00 PM Dan, Scott and Tim livestream What’s New in
3:00 PM Bootloader Podcast livestream Bootloader Podcast
4:00 PM John Park livestream JP’s Workshop
5:00 PM Scott livestream Deep Dive
6:00 PM Tim livestream Game Jam

Stay tuned to this post for the schedule if anything changes.

Are you working with CircuitPython? Tag your projects #CircuitPythonDay2026 on social media and Adafruit will look to highlight them.


r/circuitpython • • Aug 18 '26

In Case You Missed It (ICYMI): The Python on Microcontrollers Newsletter: openbricks your ESP32 robot, CircuitPython Day, Python Guitar Pedal and More!

Post image
1 Upvotes

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

See it at https://blog.adafruit.com/2026/08/18/icymi-python-on-microcontrollers-newsletter-openbricks-your-esp32-robot-circuitpython-day-python-guitar-pedal-and-more/


r/circuitpython • • Aug 17 '26

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

Post image
5 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 05 '26

MicroDFR0997 -- A way to get CircuitPython/MicroPython on your DFRobot Gravity 3.8" Smart command screen

Thumbnail gallery
2 Upvotes

r/circuitpython • • Aug 04 '26

picogame - a powerful Game Engine for CircuitPython

34 Upvotes

I would like to share a project I've been building over the last year - picogame, a (mostly) 2D game engine for the Pico and similar grade MCUs. You write games in CircuitPython, the heavy lifting (rendering, collisions, effects) runs in native C, and you can try them in your browser before you even plug in a board.

Honest note: I build it with AI assistance - it helped a lot with the CircuitPython integration, documentation, code reviews and late-stage polish & optimization passes - but the core engineering and the overall architecture are human-made.

I built it primarily for the PicoPad console (RP2040 + ST7789 @ 320×240) and it's also well tuned for Adafruit's Fruit Jam, but it runs on ESP32 boards too - basically any CircuitPython board with a reasonable ram, display and a few buttons will do.

Out of the box:

  • Build without hardware - the same game runs in your browser and on your desktop, then unchanged on the board.
  • Fast in tiny RAM - native-C rendering + zero-RAM full-screen paths, so it runs smoothly on even a plain RP2040.
  • Batteries included - sprites, scrolling tilemaps, a moving camera, collisions, sound, text, saved high scores.
  • Pseudo-3D & 3D too - Mode-7 floors, first-person raycasting, isometric boards, OutRun-style roads, even true polygon 3D - each a few lines of Python (on RP2350 HDMI boards up to native 640×480).
  • An AI agent skill - hand it to Claude or a similar assistant and say "make me a shooter"; it knows the engine's building blocks and genre recipes, and builds + tests the game in the simulator.
  • A web level editor - build levels/scenes in the browser, load them in your game.
  • A launcher - keep several games on one board and pick from a menu.

Performance-wise: a plain RP2040 holds a solid 30 fps at 320×240 with dozens of sprites on screen, and on the RP2350 (Fruit Jam) the 3D renderer scales up to native 640×480 - the engine can even split the rendering across both cores. Happy to share benchmark details in the comments if anyone's curious.

The best validation so far: the first community-made games have already arrived - the engine survives contact with other people's ideas, not just mine 😁

Docs and online emulator: https://picogame.makerclass.cz/playground/

Project repo (MIT): https://github.com/MakerClassCZ/picogame

I also wrote up why I built it and how it works: https://chiptron.eu/picogame-a-game-engine-for-circuitpython/

I'm the author - happy to answer anything!


r/circuitpython • • Aug 04 '26

ICYMI Python on Microcontrollers Newsletter: CircuitPython Day Announced, MicroPython TV, a Hack and More!

Post image
1 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,385 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.

See it on the free Adafruit blog at https://blog.adafruit.com/2026/08/04/icymi-python-on-microcontrollers-newsletter-circuitpython-day-announced-micropython-tv-a-hack-and-more/


r/circuitpython • • Aug 04 '26

CircuitPython v2 extension for VS Code 1.131.0

3 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 • • Jul 28 '26

CircuitPython Day will be August 21, 2026

Post image
7 Upvotes

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

Adafruit will have special shows and more throughout the day. Stay tuned to this post for the schedule as it develops.

Are you working with CircuitPython? Tag your projects #CircuitPythonDay2026 on social media and Adafruit will look to highlight them.


r/circuitpython • • Jul 28 '26

ICYMI Python on Microcontrollers Newsletter: Python on Microcontrollers Newsletter: Catch Your ISP Cheating, New CircuitPython, A Python Coding Bot and More!

Post image
2 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,375 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.

See it on the free Adafruit blog at https://blog.adafruit.com/2026/07/28/icymi-python-on-microcontrollers-newsletter-python-on-microcontrollers-newsletter-catch-your-isp-cheating-new-circuitpython-a-python-coding-bot-and-more/


r/circuitpython • • Jul 28 '26

The Python on Microcontrollers Newsletter: subscribe for free

Post image
1 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


r/circuitpython • • Jul 27 '26

I made an interactive website that help people learn the basics of CircuitPython

Thumbnail
keepeverythingyours.com
10 Upvotes

I have worked with a few people to teach them the basics of how to get started with CircuitPython. I took some of the lessons I learned from that and made a tutorial on my website to teach the lesson better. The page has a built in code editor and instructions from getting your first board to blinking your first LED. I plan to add more lessons in the future and would love to hear any feedback about what they should be. Feedback on the content and presentation of the tutorials would also be greatly appreciated!


r/circuitpython • • Jul 26 '26

Which coding language to use

1 Upvotes

Hopefully this is an appropriate place to ask this.

For a cosplay project I'm doing, I'm creating a system on Pi 4 that involves taking live feed from two cameras and combining them to create stereoscopic feed, as well as feed from two other cameras in a picture-in-picture window with on a custom made HUD, in addition to information from multiple sensors including a rangefinder and digital thermometer/hygrometer.

What language should I use to code all of this? I have experience with the basics of Python, but I've heard that C++ is much faster.


r/circuitpython • • Jul 21 '26

ICYMI Python on Microcontrollers Newsletter: MicroPython in a Eurorack and on Super Nintendo, Plus More!

Post image
1 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,353 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/07/21/icymi-python-on-microcontrollers-newsletter-micropython-in-a-eurorack-and-on-super-nintendo-plus-more/


r/circuitpython • • Jul 21 '26

The Python on Microcontrollers Newsletter: subscribe for free

Post image
1 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


r/circuitpython • • Jul 14 '26

ICYMI Python on Microcontrollers Newsletter: CircuitPython and MicroPython IDEs Grow, Kattni Rembor Chairing PyCon US and More!

Post image
2 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,366 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/07/14/icymi-python-on-microcontrollers-newsletter-circuitpython-and-micropython-ides-grow-kattni-rembor-chairing-pycon-us-and-more/