a solution is to run software i2c on top. This way the bangle's integrated events can be used instead of the interrupt pin, works very nice.
Interesting that it works. Bangle firmware already use (software) i2c on top of same touch i2c pins, in fact many of them seen here
So you have yet another new I2C() that you setup() to have same pins as one of those bangle internal ones.That may still be OK but I wonder what happens when the touch irq comes in the middle of your i2c code call and bangle native irq handler runs some read over same pins via its own I2C object.
I wonder what happens when the touch irq comes in the middle of your i2c code call and bangle native irq handler runs some read over same pins via its own I2C object.
an
Uncaught Error: I2C Error: Arbitration (start)
is thrown, but it still works, been testing for a day now. :)
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.
Interesting that it works. Bangle firmware already use (software) i2c on top of same touch i2c pins, in fact many of them seen here
So you have yet another
new I2C()
that yousetup()
to have same pins as one of those bangle internal ones.That may still be OK but I wonder what happens when the touch irq comes in the middle of your i2c code call and bangle native irq handler runs some read over same pins via its own I2C object.