Problem with unexpected behavior of easydrives together with a dc motor

I have build a CNC with Arduino Uno + 3 easydrives and it is running successfully. But when I placed a small 12V 33000rpm DC Motor for milling I get all 3 steppers from the easydrives running some steps with different directions without control. If I don’t put the DC motor running, all 3 steppers run perfectly. When I activate the DC motor I get the problem. This is what I tried to do to solve it:

  • I thought it would be noise of the DC motor and I tried to place a parallel capacitor of 470uF with it but without success.
  • I also measure the DC supply and the system drains only about 1A of my 12V 5A supply with all motors on and my supply is stable on 12V.
  • I tried to use a different supply for the DC motor with the same Ground reference, without success again.
  • I am using a ULN2003 on the DC motor, but I tried a L293NE and I keep having the same problem.

Does anyone had this kind of trouble? What should I try next?

20140128_235158.jpg

Put a1N4007diode at the motor, anode to ground, cathode to positive. Do you have a schematic?

You have interference from the motor - are there runs of cable in parallel perchance?

Without knowing how its all cabled and grounded its hard to suggest improvements. Some ceramic capacitance across the motor soldered right onto the motor terminals will kill off a lot of RFI, If PWMing the motor also the flyback diode across the terminals.

Keep high current grounds separate from signal grounds of course, that's a great way to induce voltage spikes onto all your signals.

Shielded cables may also be a good idea.

Thank you! I have tried now:

  • LarryD: I put a 1N4007 Diode, but withou sucess (as I thought because the ULN2003 already have a bypass diode). Sorry I do not have a schematic.
  • MarkT: Yes there are cables closed to each other. I took them apart to test and it didn't work out.
  • MarkT: The DC motor is not powered by PWM signal. Only by direct DC ON/OFF.
  • MarkT: I have all ground on the same power supply. Arduino, Easydrives and DC motor grounded on the same place. This might be the cause. I will try next to apply a different power supply to the DC Motor with a mechanic relay to have the 2 power supplies separated as you suggested to separate the grounds.

New information: The easydrives have a 20KHz PWM power signal applied on the stepper motors and since this DC Motor have rotation of 30000rpm there will be lots of noise.

•LarryD: I put a 1N4007 Diode, but withou sucess (as I thought because the ULN2003 already have a bypass diode). Sorry I do not have a schematic.

Yes but there is length of wire between.

Try a .1uf capacitor across the motor terminals if "this is just a dc motor supplied by a on/off source".

I wasn't going as far as advocating an entirely separate power supply for the DC motor, just that the power ground is kept away from the logic ground except for one common point, basic star-grounding...

Some more decoupling on the motor terminals may be called for - if PWM isn't used you could try upto 10uF.

What kind of cable does the motor have?

Try a .1uf capacitor across the motor terminals if “this is just a dc motor supplied by a on/off source”.

I have tried with the closest I had of .33uF - it didn’t workout.

I have tried with a complete different power source and I had the same problem. This means that there are inductive transient currents across my CNC that interfere with my steppers, right? Or, are there electromagnetic waves at high frequency because of the 33000prm of the motor?

I have tried with 2 old printer DC motors and it runs perfectly well. But they have low RPM.

Check my photos. I have a cable that is used for sound but is unshielded. My motor is insulated from any direct contact toward my machine.

20140201_170450.jpg

In the last image I do not see how the Arduino 0V is referenced to the ULN2003.

The croc clips for the DC motor show that there is a big gap / loop between the two wires for the motor - this is always a bad idea for noise, current loops are effectively radio antennas, especially efficient if near / overlapping loops in other circuits (this is an air-cored transformer).

I think you need to take your red/black twin wire for the motor and its supply and turn it into twisted pair (a bench vice and a hand-drill make this easy). Keep all the connections in the motor circuit tight and compact and lose the loops / space between red and black as far as possible.

Twisted pair cancels flux coupling pretty effectively.

You are probably exceeeding the current rating of your breadboard for the motor wiring BTW - best to solder the high current connections (and this helps keeps the wiring nice and compact)

In the last image I do not see how the Arduino 0V is referenced to the ULN2003.

I took the Reference directly from my power supply for ULN2003. Isn’t my reference all the same? I can take it from everywhere, right?

Twisted pair cancels flux coupling pretty effectively.

I change my DC Motor connection for a twisted pair cable and I got the same problem.

You are probably exceeeding the current rating of your breadboard for the motor

My motor is low power and high speed (only for my student class object study). It is only 3W, 0,25mA@12V máx.

I took my motor away from the CNC and it runs perfectly with a second power supply. Then I tried directly from the ULN2003 and I got again the same problem but with much less interference.

SOLVED: Thinking on Foucault induced currents or noise I have changed the aluminium support of the DC motor with a plastic one and now everything runs perfectly from the same power supply and with the ULN2003. Great guys!!! :smiley:

My goal is to control the speed with the L293D and PWM signal and try milling some soft material at different speeds. 8)

Glad its working at last - I doubt your 0.25mA spec for the motor though (!).

Small (cheap) brushed motors do tend to generate a lot of sparks which pump out RFI and sometimes you happen to get resonances that make the interference much worse than others - perhaps the metal mount for the motor was resonating at radio frequencies and re-radiating it to the sensitive bits of the circuit.

Further measures would be to shield the cable to the motor (shielded twisted pair), add RFI suppressing ferrite toroids onto the cable(s) in strategic places...