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.
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.

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.