Crazy idea of the day: 3-wire dotsars

Dotstar pixels normally requires 4 wires: +, -, clock and data, which makes them incompatible with standard pogo pins connectors which of course have 3 connections.

However, I can think of several different ways to make that work with 3 wires:

  1. Put the clock signal together with + or -; Since the power is low frequency, and the clock is high frequency, we can use capacitors to separate the signals.
  2. use different voltages for ones and zeroes.
  3. Use a protocol similar to WS2811, but much faster. Something like like 33ns of “high” for a 0 and 66ns of high for a 1.

Out of all these, I think (3) might be the simplest, because the existing WS2811 code can already generate the signal, and all we would need to decode it would be a 50ns digital delay. For a zero, the data signal will have already dropped by the time the delay is over. For a one, the data signal will still be high when we raise the clock signal.

The protocol is a little different for dotstar pixels, but that should be easy to fix in the code. Not sure how well the CPU will keep up with outputting a new bit every 8 cycles though… :slight_smile:

2 Likes

Looks like this can work!
At least on a breadboard.

I built a circuit that causes a ~50ns delay using two schmitt triggers with an RC network between them. Feeding it a 10Mhz square wave behaves about right to drive dotstars from the output

Next I’ll need to write some code to output the data in the right format, then hook it up to some dotstar pixels to see if it really works.

If it does, I will be building a dotstar POV blade. :slight_smile:

4 Likes