CircuitPython in 2025

This post is a wishlist for CircuitPython in 2025. Each year Adafruit asks the community to contribute their thoughts or requests for the open source microcontroller language as outlined on the Adafruit blog.

In 2025 I would like a library for working with vectors, similar to that of p5.js Vector.

Early this year I spent some time re-visiting the MatrixPortal M4, specifically trying to reproduce some of the examples found in the excellent book Nature of Code by Daniel Shiffman on two 64×32 RGB LED panels.

This latest book uses JavaScript, and the p5.js library to simulate natural systems. A rewrite of the original book using Processing.
I had some success getting the first few examples to work with DisplayIO and CircuitPython.

Particles created with a random vector and magnitude, affected by “gravity”.

I was able to do some of the basic matrix addition / subtraction / multiplication etc. with custom functions but where I started to run in to some difficulty was with some of p5.Vector handy methods:
limit() – Limits a vector’s magnitude to a maximum value.
heading() – Calculates the angle a 2D vector makes with the positive x-axis.
rotate() – Rotates a 2D vector by an angle without changing its magnitude.

Looking back this year at some of my CircuitPython projects, I definitely levelled up on displayio and enjoyed the Live streams of FoamyGuy, JP’s workshop, and of course Adafruit’s Show & Tell.
I appreciate the contributions from all the Adafruit developers as well as the community.

My commitment this year will be to “Use what you have” and hopefully contribute if I can.

#circuitpython2025