Can an output expander be reprogrammed to drive more LEDs?


I have the expansion board pro. It supports up to 600 pixels (APA102), and 8 channels.

I was wondering how much RAM it has onboard?

I ask because I’m currently using an ARM M0 with 32K driving 1440 pixels (double buffered DMA), and I am totally out of RAM.

I was thinking that I only need one channel (not 8), so it might be possible to change the pro code to support more pixels, but fewer channels.

Does the GitHub link cover both versions? Or is the pro using a different mcu?

Would it be possible to increase the supported pixels this way?


Both currently use the same chip and firmware. The chip is an stm32f103c8 which has 20k of ram.

The firmware works by sending bytes at a time to the gpio port using DMA and timers. There isn’t a way to use all 8 bits for a single gpio with this method. It may be possible to use some other method to output on a single pin though. Perhaps a peripheral is available on one of those pins, or the cpu could “bit bang” the protocol out, but may be too busy to process incoming data simultaneously.

If your are up for a challenge, the code is there!


I thought it was the 20k version. Maybe in a future version you could upgrade to one of the 48k versions. Would allow so many more pixels per channel.

I will look over the code some more.