Simultaneous operation of the Adafruit DRV2605L Haptic Motor Controller and IMU Sensor on the XIAO nRF52840 Sense

By connecting the XIAO nRF52840 Sense with the Adafruit DRV2605L Haptic Motor Controller, we are implementing a function that allows the vibration motor to vibrate when a specific value is sensed by the imu sensor.
However, since both the Adafruit DRV2605L Haptic Motor Controller and the imu sensor use i2c, the imu sensor is not working, is there a solution?

The circuit diagram is as below

+) Should I implement I2C priority between the two within Arduino code?

Hi there,

SO, I2C may need the pull-up resistors Does your DRV board have them?
What is the address of the DRV board ? does it differ from the IMU’s? it may be conflicting Addresses (i.e. set the same)
If you post the code using the code tages above “</>” paste it in there.

A similar configuration is used in a Parkinson’s Glove for finger tip therapy in a study of Vibration effects on dyskinesia by MIT :crossed_fingers:

HTH
GL :slight_smile: PJ :v:

1 Like

Are you referring to the IMU built into the XIAO? If so, it’s connected via a dedicated I2C bus, so it won’t conflict with the I2C on D4/D5.

1 Like

We solved the problem by designing i2c independently within Arduino code.
Thank you bro

1 Like

Hi there,

I might add , I see you power the Driver Board from the Xiao 3.3 v Pin
two things , are you certain the driver board is 3.3vdc device and if so
do you know how much current you need to drive(Xiao Source) the motor board properly ? I think it low like 5 ma.
It might be browning out the system with too heavy a draw ?
Can you paste up the code and we can have a look? :grin:
unless of course it’s proprietary :man_detective:

HTH
GL :slight_smile: PJ :v:
try some pull-ups in the code maybe?