microsoft / microsoft/pxt-microbit
Support for external LED matrices for accessibility add-ons
@riknoll is already working on this.
Since May 15, 2026.
- Dominant language
- TypeScript
- Stars
- 804
- Forks
- 721
- Avg merge
- 2d 9h
- Merged PRs (30d)
- 2
Description
As part of the wider accessibility work happening this release, we've been looking at things like https://www.diversibit.org/en and how we can enable more devices like this.
One challenge has always been mirroring the display, as that isn't entirely exposed over the edge connector.
One approach for these devices has been to run a strip of RGB WS2812B devices to make a 5x5 matrix, and using a single pin on the edge connector to drive it (for example, P12). However, this has always required either a custom extension, or support in CODAL/MakeCode for that pin.
On investigating our options further, @finneyj realised we could possibly just emit the whole 5x5 matrix string always on one of the pins that is already shared with the edge connector, interspliced with the existing matrix driver code.
Lancaster have a PoC of this working now, so it seems like it might be worth investigating integrating this into MakeCode.
(and then as a second step, as these are neopixels, investigating whether this is also an approach for supporting different colours of external display for people with visual processing differences, etc).
Note that this would need to use a different neopixel driver implementation to what we have today as that's incompatible with Bluetooth - it requires taking the WS2812B code and bringing it into CODAL from where it can use some of the hardware blocks of the nRF52833 (I don't think this can work on V1?). We need to test whether this then intersects badly with, say, existing code that uses the neopixel extensions. I'd imagine not as those are orthogonal implementations, but it might be nice in the fullness of time to bring the extension onto the same implementation.
CC @MannuLambrichts @sistemathead @microbit-carlos
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.