2
\$\begingroup\$

I want to use this Digital LED Strip but with my own controller (i.e. NOT a raspberry Pi).

The link has sample code but I want to be able to understand clearly in terms of hardware waveforms what does the Clock IN (CI) and Data IN (DI) pins correctly look like?

Here is the spec of the IC, but it does not show the waveforms either. What protocol is used here? How do I go about finding that?

\$\endgroup\$
  • 1
    \$\begingroup\$ Is their a reason why you have chosen that LED strip? It is relatively old technology, with more recent fully integrated parts like WS2812B allowing for higher-density illumination, and fewer signals. \$\endgroup\$ – gbulmer Jan 27 '16 at 0:02
2
\$\begingroup\$

EDIT 3 : It was pointed out by commentors that this is not a true SPI. After looking further, I can see this information, which I missed in original :

The strips basically implement a large shift register, like SPI, but with a small trick to allow use of only 2 signals – data and clock, without a separate reset or latch signal. Each LPD8806 implements six 7 bit PWM controllers, but six daisy chained 8 bit shift registers (effectively a single 48 bit register). With a 1 metre length, and 32 LED/m, that gives a total of 32 * 8 * 3, or a 768 bit shift register.

DELETE THIS : The Digital LED Strip that you are using communicates via Serial Peripheral Interface (SPI)

In your particular device, the data transmission is one way only. Meaning you only send signals and do not receive signals.

Other than the power and ground, your data transmission uses SCLK (clock) and Dout (data you are sending). Dout is often referred to also as MOSI (master out, slave in), where your controller is the master, and the LED is the slave.

CS (chip select) doesn't seem used on your LED string, but is normally used to select a particular slave to talk to.

The frequency of your SCLK will be determined by your controller software.

enter image description here

EDIT 1 : Adafruit says the LED strip uses the LPD8806 controller. Data sheet for LPD8806

EDIT 2 : Further information on data transmission This page here

\$\endgroup\$
  • \$\begingroup\$ Where did you see that it is using a standard SPI bus? \$\endgroup\$ – user1406716 Jan 26 '16 at 22:07
  • \$\begingroup\$ @user1406716 added controller information per your comment \$\endgroup\$ – Marla Jan 26 '16 at 22:12
  • \$\begingroup\$ It's not clear if it is the standard SPI bus and also it has no register information or anything. No description on how each one is addressed. I guess I have to keep looking. Mainly looking for an addressable LED strip solution. \$\endgroup\$ – user1406716 Jan 26 '16 at 22:17
  • \$\begingroup\$ I agree a very poorly documented IC. You might have to look into a library such as the arduino library Found Here for the command protocols. I mainly answered because you asked for "waveform" \$\endgroup\$ – Marla Jan 26 '16 at 22:22
  • \$\begingroup\$ It's not spi, it's a regular serial protocol. A SPI peripheral driver is (ab) used as a quick and easy 8 bit output to offload a microcontroller. It's a basic shift register \$\endgroup\$ – Passerby Jan 26 '16 at 22:26
3
\$\begingroup\$

Maybe you can reverse engineer it, but it would be far easier to get a real datasheet. Whoever you buy these things from should be able to supply you with the relevant technical specs. If not, don't buy it.

I took a quick look at the web site for the LED strip, and it seemed there was some source code there. If the source code is well written, then it shouldn't be hard to figure out what it's doing, then duplicate that on whatever processor you want.

Again though, the first step should be requesting proper technical specs from the seller.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.