Posts: 6
Joined: Sat Sep 12, 2015 5:46 pm

I2C-Bus Interference problems when using DC-Motors

Fri Sep 18, 2015 9:30 pm

image3003.jpg (54.32 KiB) Viewed 1045 times
image3002.jpg (57.86 KiB) Viewed 1045 times
I posted a new topic this week about problems with compass sensor and dc-motor. After many trials and research I determined that not the compass sensor but the I2C-Bus makes trouble.

My Setup, see pictures:
  • The DC-motors (cheap 6V) weren't supressed with ceramic capacitors, now they are
    I have 20cm jumper cables, they weren't twisted. Now they are.
    I have a breakout cable+breadboard where I plug/wire everything.
The situation
  • When I operate the Accelerometer/Gyro or compass alone, they all work properly and return plausible values.
    When I operate the Acc./compass with the DC-Motors simultenaously, SDA crushes immediately
    Wiring suppresor capacitors (10-47-100nF) in several combinations helped a little operation with compass but not with accelerometer. Now it doesn't crush in 1ms but in 2 seconds..
    Moving the sensors away from the DC-motors doesn't help.
  • that I2C Bus is very sensitive for the magnetic waves and gets distorted very easily so that it makes using IMUs with dc-motors very hard which are essential components of a robot.
    that using breakout cable+breadboard not good/possible for using SDA modules.
    that I should use magnetic isolated cable to connect SDA+SCL pins.
  • Does anybody use I2C IMUS(Gyro, accelerometer, compass etc) with DC-motors successfully? If yes which products? What hardware setup/wiring? What motors? May be someone could post me infos about his working system.
    How to figure out/calculate which capacitors to use for my motors? (I can't really find any practical informations about it.)
    Is it a good idea to buy new/better motors? Are there isolated ones? How are brushless motors in terms of magnetic waves?
    Is there any alternatives to I2C-Bus/IMUs with other interfaces (i can't really find any)
I'm quite perplexed with this problem. I would be pleased for any suggestions/hints..

Sorry for bad english

Posts: 115
Joined: Tue Feb 05, 2013 9:04 am
Location: Finland

Re: I2C-Bus Interference problems when using DC-Motors

Sun Sep 20, 2015 10:50 am


Sorry to hear about your trouble.. I am using MPU6050 via I2C connection together with two DC motors (ZnDiy-BRY 12V 400rpm gear motor), and I have not had any problems with the I2C bus. I did solder capacitors to the motor poles when I got the motors, but have not done anything else for the potential interference. I am also using 20cm jumper wires, and my MPU6050 is between the motors in my robot, which I would think is the worst possible location for the interference.

I did have trouble where my Raspberry Pi would reboot itself suddenly, but it looks like adding some bigger capacitors (470uF) to the power input solved that problem. Perhaps your problem is also voltage-related, rather than electromagnetic interference-related? Perhaps worth testing in any case?

Now working on piro:
See my rpix86 project at

User avatar
Posts: 13665
Joined: Thu Jul 05, 2012 5:09 pm
Location: UK

Re: I2C-Bus Interference problems when using DC-Motors

Sun Sep 20, 2015 12:27 pm

I still think it is loose wires which are disconnecting because of motor vibration. Try reseating the cobbler in the breadboard and different jumper leads (power, ground, SDA, SCL) between the breadboard and the sensor.

Return to “Automation, sensing and robotics”