Driving 3V DC motor causes Ethernet shield to lose tcp connection

Hello everyone,
I'm having trouble with my Ethernet shield maintaining an open tcp connection while also trying to drive a 3V DC motor and I suspect it is due to interference from the motor. The connection opens, stays connected, and sends and receives just fine up until I set the input to the base of the transistor high. Here is the circuit I was using at first (minus the pot):

I'm using a 3V power source for the motor and a common ground for everything. As soon as I set the input pin high the connection would immediately drop and the Ethernet shield LEDs would blink off (and maybe blink back on sporadically). So I added a 100pF capacitor across the motor. This seems to have helped a little in that I can send and receive for a bit longer. But eventually the same problem will happen where the LEDs on the ethernet shield switch off and the connection is dropped.

Any suggestions?
Thanks for any help!

PS. I'm not using the motor driver shield I have because it says it won't work on 3V motors. Also, I tried using the L293D that I had but I think I fried it making a wiring mistake :slight_smile:

You MUST have a resistor between the output pin and the base of the transistor. 220 ohms will probably be OK.

Thanks for the response. I added a 220 ohm resistor between the PWM pin and the transistor's base, unfortunately, it didn't seem to help much. The LEDs on the ethernet shield still blink out.

Any other suggestions?

Use 3 x 10 nF capacitors on the motor terminals instead, as described in this tutorial: Pololu - 9. Dealing with Motor Noise

Thanks for that link. I added 1 (only because I couldn't easily add the other 2) 10nF directly across the motor terminals and it seemed to have improved things (still getting intermittent outages, but nothing like before). I'll go ahead and add the other 2, and also follow some of the other tips in the link.

Oops, I should have said 100 nF capacitors (0.1 uF).

Ok, I swapped the 10nF cap with 100nF and will add the other two tomorrow. The tcp connection on the Arduino is much more reliable now. Occasionally the status LEDs will blink off but it isn't common and the connection is still maintained despite that. I can now control my little robot from a website :slight_smile: