Hi Paul and forum members,
I am trying to make a pretty long string of APA102Cs - around 2,500 LEDs. I need it to run at 2.2 MHz at least to get the frame rate I need. As we know from Paul's post on the subject, the shortening of the clock duty cycle and the lengthening rise-time of the clock limit both the usable clock rate and the total length of strips of APA102 LEDs.
I have an idea: What about using a Teensy LC as an "SPI repeater" - it takes a (still barely usable) SPI in from the last LED on section of APA201s on SPI0, and immediately passes whatever it gets along to SPI1, which is in turn plugged into the next set of LEDs. This introduces an imperceptible latency while fully resynthesizing the SPI signal, restoring the clock duty cycle and waveshape. I imagine you could insert these guys in every 750 or 1000 LEDs or so and have very long overall strands. We get long APA102 strands. Paul sells more Teensy LCs. Everyone wins!
To do this, I'd need APA102Cs feeding SPI0 as an SPI Slave (I think), with the code reading bytes and immediately retransmitting them on SPI1. Would this be possible? My attempts thus far have not worked, but I'm pretty sure I'm not handling SS correctly. Has anyone tried this, or can anyone tell me whether it might work?
Thanks a ton. And for those who celebrate it, Happy Thanksgiving!
Best,
Bryan
I am trying to make a pretty long string of APA102Cs - around 2,500 LEDs. I need it to run at 2.2 MHz at least to get the frame rate I need. As we know from Paul's post on the subject, the shortening of the clock duty cycle and the lengthening rise-time of the clock limit both the usable clock rate and the total length of strips of APA102 LEDs.
I have an idea: What about using a Teensy LC as an "SPI repeater" - it takes a (still barely usable) SPI in from the last LED on section of APA201s on SPI0, and immediately passes whatever it gets along to SPI1, which is in turn plugged into the next set of LEDs. This introduces an imperceptible latency while fully resynthesizing the SPI signal, restoring the clock duty cycle and waveshape. I imagine you could insert these guys in every 750 or 1000 LEDs or so and have very long overall strands. We get long APA102 strands. Paul sells more Teensy LCs. Everyone wins!
To do this, I'd need APA102Cs feeding SPI0 as an SPI Slave (I think), with the code reading bytes and immediately retransmitting them on SPI1. Would this be possible? My attempts thus far have not worked, but I'm pretty sure I'm not handling SS correctly. Has anyone tried this, or can anyone tell me whether it might work?
Thanks a ton. And for those who celebrate it, Happy Thanksgiving!
Best,
Bryan