You are reading a single comment by @Robin and its replies. Click here to read the full conversation.
  • Sun 2018.11.04 (after five hours of reading and thinking)

    It appears I may have to retract a bit of what I just posted.

    After doing a wee-bit of research, I had to re-learn how a data one and data zero are created.

    https://learn.adafruit.com/adafruit-neop­ixel-uberguide?view=all

    Under heading 'Writing Your Own Library' (Unable to paste as it is an image)

    2nd pp "There’s a math goof in the datasheet’s timing values. Use these figures instead:"

    As both a data one and a data zero start with a logic one at the leading edge, inverting the signal as in hardware #1 above, would mean that a leading edge could never be detected accurately. Data therefore could never be sync'd and decoded as sending the inverted data in software, would mean the duty cycle as seen by the 5050 would start with a leading zero, which doesn't mark the beginning of a valid data value. It might be that one could fake that using values near the middle of the range, say 0x0F by catching the declining pulse in an inverted data bit stream
    as the leading edge, but then precise data could not be sent, meaning no color control and the zero state latch/reset value could not be sent correctly.


    I now don't believe it is possible using software based on the above article and included datasheet.


    The actual neopixel module source might be of some help in understanding:

    https://github.com/espruino/Espruino/tre­e/master/libs/neopixel

About

Avatar for Robin @Robin started