This is a method of driving Neopixels from a embedded controller that does not depend on precise mcu bit bang timing or the bit inefficient SPI bit banging method. This method does use SPI but here one SPI data bit represents one Neopixel bit.
This method requires some additional hardware and requires a SPI clock of 1MHZ. This results in a Neopixel data transfer time of 1usec which is within the Neopixel WS2812 chip data sheet specification of 1.25 usec +/- 600 nsec.
This circuit will work at 5V and 3.3 volts but make sure the 20 Mhz oscillator works properly at these voltages.
I been using this circuit with Ardunio , micropython , and Adafruit FT232H module.
1. The D flipflop "D" input needs to be pulled up.
2. 74HCXXX logic ICs were used.