I'm working with some small motors for a robot project and I think I had a different component fail due to inductive voltage spikes caused by the motors. The motors are Mabuchi RC-280 which operate up to 8.4V DC and can draw 2-3 amps each. I have 4 of these motors interfaced with a 20A motor driver, 12V battery, and an Arduino Mega2650 microcontroller.

I do not have any capacitors connected across the motor terminals and I need to know what capacitance to use. Other similar motors have small capacitors attached but I don't know their value, and I am unfamiliar with sizing capacitors for this purpose.

Can anyone advise me as to what I might need for this application, or how to determine the size?

  • \$\begingroup\$ Does the motor ever operate in a regenerative mode? In other words, does it ever operate in a mode where the external load is applied in the same direction as the rotation, and the torque is applied counter to the direction of rotation? \$\endgroup\$ – mkeith Oct 19 '16 at 3:53

Each motor should have a small ceramic capacitor (10-100nF) across it to reduce RF (Radio Frequency) interference caused by brush arcing. A popular configuration is two 100nF capacitors in series, one from each motor terminal to the metal case. This 'grounds' the case to RF to prevent it from radiating interference, but doesn't put a DC voltage on it.

This small capacitance will not prevent inductive voltage spikes. If PWM is applied then you must not use a large capacitor, as this will become charged up and prevent the voltage from dropping between PWM pulses.

Your motor controller should have 'flyback' diodes in it, which suppress inductive voltage spikes by recirculating current through the motor. This is required not only to prevent damage to sensitive electronic components, but also for efficiency and linear PWM response. The diodes should be Schottky type for fast response and low voltage drop.

If the motor is only driven in one direction then a single flyback diode can be wired directly across it, but this is not possible in a bidirectional bridge circuit because in one direction the diode would short out the motor. Therefore a bridge circuit needs 4 diodes, one across each output transistor. MOSFETs already have built-in body diodes, so external diodes are not normally required for them.

You should also have a large low ESR capacitor (100~1000uF) across the controller's power input rails, to suppress voltage spikes caused by inductance of the power supply wires. If the controller does 'active freewheeling' AKA 'synchronous rectification' and/or dynamic braking then this capacitor also helps to slow down the voltage rise caused by the motor pushing current back into the battery as it slows down.

| improve this answer | |
  • \$\begingroup\$ How did you determine 100 - 1000 uF? Thanks. \$\endgroup\$ – perigalacticon Oct 19 '16 at 2:23
  • \$\begingroup\$ It's the range of values typically used in motor controllers. The minimum capacitor size required depends on length of the power wires, current draw, PWM frequency, MOSFET voltage ratings etc. \$\endgroup\$ – Bruce Abbott Oct 19 '16 at 6:13
  • \$\begingroup\$ The wires to the driver are ~3ft of stranded 18 gauge wire in 2-conductor parallel configuration, the current draw is up to 4 amps total in transients I believe for each driver which controls 2 motors each. The supply battery voltage is up to 12V (Li-Ion), PWM frequency to the motors is audible, I believe it's got to be 1000-2000Hz or so, and the drivers are rated for 18V, I don't know the component rating is there a way to assume worse case? \$\endgroup\$ – perigalacticon Oct 19 '16 at 6:45
  • \$\begingroup\$ 18V, 20A, dual outputs - which motor controller is this? Does it have an on-board filter capacitor, and if so what value is it? \$\endgroup\$ – Bruce Abbott Oct 19 '16 at 15:10

How to design an RC snubber for a solenoid relay driving an inductive load?
- similar question but different voltage range requires different RC snubber

RC snubber are also used on AC relay coils , but RCD snubbers are popular as well for PWM motor drivers.

  • This helps to recirculate the currents $ reduce peak commutation voltage
  • Too little R increases PWM turn on current into C and raises Q or ringing
  • too much R increases back EMF voltage
    • let Cload = 2x (Coss + stray) as a starting point

Snubber purposes

  • · Reduce or eliminate voltage or current spikes
  • · Limit dI/dt or dV/dt
  • · Shape the load line to keep it within the safe operating area (SOA)
  • · Transfer power dissipation from the switch to a resistor or a useful load
  • · Reduce total losses due to switching
  • · Reduce EMI by damping voltage and current ringing

  • power in series R that was energy stored in the cap on average;

  • balancing these two factors yields critical dampening at the expense of lossy carbon resistors
    • Pd = C V^2 * f. for V [pp] and PWM rate, f
    • Zo = sq.rt(L/C). for motor primary inductance and snubber C


| improve this answer | |
  • \$\begingroup\$ This seems to be for an AC motor, do you know if this works for DC also? \$\endgroup\$ – perigalacticon Oct 19 '16 at 2:27
  • \$\begingroup\$ Did I assume wrong you intend to control speed with PWM with Arduino? then it is AC. If just ON OFF, clarify your question and show exact transistor or MOSFET switch pn. \$\endgroup\$ – Tony Stewart Sunnyskyguy EE75 Oct 19 '16 at 2:44
  • \$\begingroup\$ The microcontroller sends a 0-100% PWM signal to the motor controller. The motor controller then controls the voltage to the motor, I believe it is a switching type with MOSFETS. Thanks. \$\endgroup\$ – perigalacticon Oct 19 '16 at 3:04
  • \$\begingroup\$ this is essentially AC motor operation with average DC out .... wiring ,, shielding are important .. not long inductive sloppy wiring \$\endgroup\$ – Tony Stewart Sunnyskyguy EE75 Oct 19 '16 at 3:07

I believe that DC Relays and Contactors which use DC Coils use a diode across the windings to sink the voltage spike. Its called a flyback diode. No capacitor required. This might work for your DC motors. Read this https://en.wikipedia.org/wiki/Flyback_diode.

| improve this answer | |
  • \$\begingroup\$ A flyback diode isn't usable if you want to drive the motor bidirectionally. As OP claims this is for a "robot project", I suspect that this is the case. \$\endgroup\$ – jms Oct 18 '16 at 23:34
  • \$\begingroup\$ Yes the motor needs to run in both directions. But they are more like RC car motors than hobby motors in terms of power. \$\endgroup\$ – perigalacticon Oct 18 '16 at 23:53
  • \$\begingroup\$ For clarification the microcontroller controls the motor speed by sending PWM signal to the motor driver which then sends the correct power to the motors. \$\endgroup\$ – perigalacticon Oct 19 '16 at 0:28
  • \$\begingroup\$ Also, I found out each motor has an inductance of 0.37 mH. \$\endgroup\$ – perigalacticon Oct 20 '16 at 6:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.