Prototype boards

The Orange Pi Zero has just one SPI on the header. The other SPI is used for the SPI flash.

The 1x 4 Universes pixel implementation is using the SPI.

Hence a simple board: http://www.orangepi-dmx.org/pixel-boards/single

Using this method, there is very precise timing. The SPI clock speed is 6.4MHz. Therefore it is easily to generate the '0' and '1' bits.

For 4x 4 Universes (or 8x 4 Universes) we need to work with external timing circuits. The main goal is to deliver a solution around the 15 Euro.

Design goal for the 4x 4 Universes is using 74-series logic. This can easily extended to 8x 4 Universes; this is just adding 3 74-series logic IC's. For this situation it is more cost effective to use a (S)CPLD.

Details can be found here: http://www.orangepi-dmx.org/pixel-boards/multi

The timing is based on a 6.4MHz clock. This applies for all solutions; single output (SPI), multiple output (GPIO/SPI). This 6.4MHz is 8 times the 800KHz fast mode of the WS28xx chip. The 8 is for the 8-bits in the SPI data. Therefore we have a 0,15625 microseconds interval to work with.

The last columns table below gives the amount '1's in the SPI 8-bits data. For the single output SPI solution, these high-codes are defined here: https://github.com/vanvught/rpidmx512/blob/master/lib-ws28xx/src/ws28xx.cpp#L55

For the WS28xx '0' (where the timing is the same for all the chips), we need 2 '1's in the SPI data.

Then for example, for the WS2812B, for the '1' we need 5 '1's in the SPI data.