If you buy WS2812s under the Adafruit NeoPixel brand, you’ll receive the advice that “An 8 MHz processor” is required to drive them. “Challenge Accepted!“, says [ShielaDixon], and proceeded to first drive a set from the 7.3 MHz Z80 in an RC2014 retrocomputer, and then repeat the feat from a 3.5 MHz Sinclair ZX Spectrum.
The demos in the videos below the break are all programmed in BASIC, but she quickly reveals that they call a Z80 assembler library which does all the heavy lifting. There’s no microcontroller behind the scenes, save for some glue logic for address decoding, the Z80 is doing all the work. They’re all implemented on a pair of RC2014 extension cards, a bus that has become something of a standard for this type of retrocomputer project.
So the ubiquitous LEDs can be addressed from some surprisingly low-powered silicon, showing that while it might be long in the tooth the Z80 can still do things alongside the new kids. For those of us who had the Sinclair machines back in the day it’s particularly pleasing to see boundaries still being pushed at, as for example in when a Z80 was (almost) persuaded to have a protected mode.
Interesting, I was expecting using a Z80 SIO to send serial data with precise timing, instead it’s bit-banged.
Super cool – a little bummed she didn’t share any of the code though…
https://github.com/shieladixon/8x8_matrix_toolbox