• It depends a little on the board what mode gets used, but the mode has to be af_output or af_opendrain for neopixel to actually work on STM32, because it has to use a hardware peripheral.

    So yes, the pin mode will get changed, or neopixel won't work.

    There haven't been any major changes to the neopixel code in a while, so I'm not convinced you're seeing a code change since 1v99. It might just be something electrical that's different like the voltage you're powering the board from.

    It might be worth checking out http://www.espruino.com/Reference#l_neop­ixel_write :

    Espruino devices tend to have 3.3v IO, while WS2812/etc run off of 5v. Many WS2812 will only register a logic '1' at 70% of their input voltage - so if powering them off 5v you will not be able to send them data reliably. You can work around this by powering the LEDs off a lower voltage (for example 3.7v from a LiPo battery), can put the output into the af_opendrain state and use a pullup resistor to 5v on STM32 based boards (nRF52 are not 5v tolerant so you can't do this), or can use a level shifter to shift the voltage up into the 5v range.


Avatar for Gordon @Gordon started