I think I am in the same case as here : https://plus.google.com/116805762836...ts/gUDqDhdLf5W
with my driver using BSS138 BSS138.pdf
PaulStoffregen:
Those I2C level shifters have fast fall time but slow rise time. This difference changes the pulse width. For I2C the sequence of pulses matters, but not their width. For WS2812, the data IS the pulse width. This sort of circuit badly corrupts the waveform.
I am looking for a way to reduce frequency in the library, I confirm it works with the alternate one -Adafruit_DotStar.h- with a resulting period of 820ns.
edit: In my sketch, I change folowing:
Code:
// FastLED.addLeds<CHIPSET, DATA_PIN, CLOCK_PIN, COLOR_ORDER>(leds[0], leds.Size()); // default is DATA_RATE_MHZ(12)
// by
FastLED.addLeds<CHIPSET, DATA_PIN, CLOCK_PIN, COLOR_ORDER, DATA_RATE_MHZ(3)>(leds[0], leds.Size()); // seems works until DATA_RATE_MHZ(6)
edit : DATA_RATE_MHZ(3) is still too high with my wiring. DATA_RATE_KHZ(2600) was OK during testing and I finally chose DATA_RATE_KHZ(100) because with this latest, voltage reach 4V with difficulty. Then measured period is 2us. T_ON duration is about 1.3us.