Hi! Are you definitely up to date on your Espruino firmware? 2v10?
Is it reasonably easy for you to change pins at this point?
I remember a while back there was an issue where someone found that on the nRF52840 chip there was a bug in the I2S hardware (used for neopixel) where the LRCK pin had to be set. code here
I was pretty sure it was nRF52840 specific, but if it isn't then it'd have the effect of sending pulses on D31 when neopixel was used. While the pin should be back to normal after using the neopixel write, maybe there is some issue there.
So...
You could try calling i2cHaptic.setup({ scl: sclPin, sda: sdaPin}); again after the neopixel write (but this is still probably not ideal).
If you could change D31 to something else, I bet that'd fix it
Potentially with a firmware update we could move the LRCK pin to another pin, but it's a matter of finding one that nobody expects to be used!
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.
Hi! Are you definitely up to date on your Espruino firmware? 2v10?
Is it reasonably easy for you to change pins at this point?
I remember a while back there was an issue where someone found that on the nRF52840 chip there was a bug in the I2S hardware (used for neopixel) where the LRCK pin had to be set. code here
I was pretty sure it was nRF52840 specific, but if it isn't then it'd have the effect of sending pulses on D31 when neopixel was used. While the pin should be back to normal after using the neopixel write, maybe there is some issue there.
So...
i2cHaptic.setup({ scl: sclPin, sda: sdaPin});
again after the neopixel write (but this is still probably not ideal).