Thank you for such a quick response! This is amazing ;)
I've just updated the firmware from 2v08 to 2v10, but the behavior persists.
I did try calling the I2C setup after neopixel write, but that didn't help. I also tried setting I2C to other pins to "shield" the DRV2605, but also no luck. For some reason, after neopixel write, something gets "stuck". Perhaps the signal received by the haptic driver from D31 crashes it, but I can't find a way to reset it, other than resetting the whole board.
I think that you're right that it is the neopixel write affecting the D31, because in the case when the I2C for DRV2605 is set up, the motor vibrates one last time when the neopixel write is called.
Changing pins is a bit problematic for me at this point. I need to redesign and fabricate my PCB... so it'll take me a while :P
Considering the change of LRCK pin to another in the new firmware - if it is difficult to guess which pin won't be used by the user, maybe it would be possible to make it exposed from espruino. Something like:
require("neopixel").write(neopixelDataPin, [100,0,0], D31); //where D31 would be the LRCK pin
//OR
require("neopixel").set({LRCK : D31}); //called once before calling the write method
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 Gordon!
Thank you for such a quick response! This is amazing ;)
I've just updated the firmware from 2v08 to 2v10, but the behavior persists.
I did try calling the I2C setup after neopixel write, but that didn't help. I also tried setting I2C to other pins to "shield" the DRV2605, but also no luck. For some reason, after neopixel write, something gets "stuck". Perhaps the signal received by the haptic driver from D31 crashes it, but I can't find a way to reset it, other than resetting the whole board.
I think that you're right that it is the neopixel write affecting the D31, because in the case when the I2C for DRV2605 is set up, the motor vibrates one last time when the neopixel write is called.
Changing pins is a bit problematic for me at this point. I need to redesign and fabricate my PCB... so it'll take me a while :P
Considering the change of LRCK pin to another in the new firmware - if it is difficult to guess which pin won't be used by the user, maybe it would be possible to make it exposed from espruino. Something like:
I don't know if that'd be possible though.