Okay, so moving along with my plan of making this a peripheral...
We have the LED ring pretty much nailed, I think. The next step is to come up with a plug-in driver board for it. The LED uses 5V logic but a lot of microcontrollers use 3.3V. So that means a level shifter. Didn't take long to put this together. The level shifting breakout is actually capable of handling four channels but that's all I had :) My prototypes are being made out of easy-to use modular pieces called breakouts, that's one in red. Red means I sourced it from Sparkfun, who happen to be in CO so shipping is super-fast.

And, uh, if you have a CAN-equipped car this is all you need. An M4 CAN "Feather" from Adafruit ($25 these days), my level shifter board and the LED PCB that's currently installed in the cluster. That's the same microcontroller that's running everything in my current cluster. It literally plugs into my level shifting extension board, which is what Adafruit calls a "FeatherWing".

Sweet. But the goal is to have this thing read the signals coming into to a stock cluster. So I spent some time finalizing my inputs and outputs. I ended up with 4 analog 0-12v inputs (dash lighting, coolant gauge, fuel gauge, oil pressure for example), 2 digital 12v (ie, the tach) and 2 digital 5V (vehicle speed). The 0-12v analog inputs are actually more like 0-15v just in case the alternator gets a little excited.
Only 4 analog inputs? That's the limit on the RP2040 Feather I'm using for testing. With the standard Stemma QT connector on the Feather, I can add more inputs with little daughter boards but this will work. AFR and boost level are the most common requests, and it looks like the standard GM 3 bar MAP sensor has a 0-5V output while most widebands have a 0-5V. One $10 ADC (analog to digital converter) that handles 4 channels up to 5V, plug it in and voila.
Time to use the breadboard for a gut check. This always looks like mayhem. But we've got three voltage levels (3.3V, 5V, 12V), 8 inputs, a couple of outputs and other random stuff going on.

For the prototype, I had to go with a double-wide Wing footprint in order to fit everything in. That's the penalty for using nice neat breakouts. I spent some time paying attention to wire routing as a reaction to looking at the breadboard :)

And voila, all complete including an onboard voltage converter that provides enough 5V juice to feed the LED array at full blast. I managed to get everything into the footprint which is yay.

All assembled with a Feather (a $12 RP2040 unit because we don't need CAN), the level shifting Wing and the I/O double Wing. This should be everything I need to run a single LED ring like in the previous demo. If I wanted to run two (one behind the tach and one behind the speedo), I'd have to watch my power consumption. Each of those clusters can pull almost 3A. I never came close in my demo, probably less than half that.
Cute little thing. Not bad for a hand-soldered prototype. If I wanted to add control of the two needles, I could simply plug in a $20 motor control board. That's what I did on my own dash.

Next step is to actually hook it up to a cluster and make sure it works. It's all good on the bench so far, but you know how that goes.