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:
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
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.
Under heading 'Writing Your Own Library' (Unable to paste as it is an image)
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: