# Arduino + MCP41010

I would like to control two 48V DC motors (500W) from electric scooter with my Arduino.

I've bought two PWM controllers from eBay and they work excellent. Issue is that controllers have pot on them (10k linear) and I need to replace that with digital one so I can drive it from Arduino.

I've bought MCP41010 (10k digital) and connected it via SPI, it all works great for one motor. Problems arise when I want to control two motors and connect both digital pots to Arduino. It doesn't work, precisely it burns pots :(

PWM controllers are DC6-90V and pot on them is (5V, 0-5V, 0).

Setup is following:

Arduino is powering and controlling over SPI MCP41010. Motors are connected to PWM controller and controller pot terminals are connected to MCP41010. Controller is powered with batteries (48V).

If I connect only one POT and motor controller all works fine, if I connect two, they burn out :( ?

p.s. Controller pictures: http://pastebin.com/RpUpWKfk

• Sounds like a wiring problem shorting out one of the POTs... Can you add a schematic or drawing? – Adam Head Jan 19 '15 at 15:34
• Tnx for helping out, I've added schematic – user505160 Jan 19 '15 at 17:02
• Could using parallel connection for powering both controllers be problem? – user505160 Jan 19 '15 at 18:13

If I connect only one POT and motor controller all works fine, if I connect two, they burn out :( ?

Your circuit may have a ground loop. The potentiometers are connected to 'ground' on each speed controller, but these two grounds are only joined together via the negative wires going to the battery. When a motor draws current a voltage drop will occur across its negative wire, and then the two 'grounds' will not be at the same voltage.

On 48V a 500W DC motor will draw peak currents greatly exceeding 10A, which could produce spikes of several volts in the controller negative wire. The MCP41010 will blow up if the voltage on any pot terminal goes below -0.6V or above +6V (relative to Vss). Each MCP41010's pot is connected to a separate ground at the controller end, but their Vss pins are both connected to Arduino ground. Therefore they are exposed to any difference in ground potentials.

To eliminate this ground difference you have two options.

1. Join the two controller negative terminals together with a very short thick wire. At the Arduino end, connect both pot ground wires to Arduino ground. This may not be sufficient if the motor currents are very large.

2. Pass the SPI signals through opto-couplers, and power each MCP41010 from its controller's +5V and GND. This is the safest option because it isolates the grounds from each other, so any voltage differences that may occur between them are irrelevant.

• Thanks for this, I don't have any excuse for not thinking about decoupling whole thing :( GREAT IDEA! – user505160 Jan 19 '15 at 20:59

I think the problem is that the PWM controller is burning your d-pot by overloading it. Common pots have a power rating of several watts if it is not a trimmer pot, but d-pots usually are only rated for tens of milliwatt. If the PWM controller is designed for a conventional pot, it may burn your d-pot.

You might want to roll your own PWM and control it directly using the PWM outputs of your Arduino board.

Read the datasheet for IR2110 MOSFET driver and you will see a possible way of building your own H-bridge.

• Thanks for pointer, but I already have 2 controller built, starting out from scratch should be my final option. It is obvious that burnout is going on, but why is the question? Did I wire it wrong somehow? – user505160 Jan 19 '15 at 17:34
• @user505160 You can try to hack the existing controller and maybe after removing one chip you can attach wires directly from your Arduino's PWM pins to the MOSFET driver. – Maxthon Chan Jan 19 '15 at 17:36
• There are no marking on the chip which is located on PWM driver, but by number of pins and general look could be 555. – user505160 Jan 19 '15 at 17:38
• High-definition pictures of both sides please? – Maxthon Chan Jan 19 '15 at 17:39
• @user505160 Also the controller board have suspiciously few power MOSFETs. Usually for a H-bridge you need four MOSFETs (and two gate driver chips) instead of two. – Maxthon Chan Jan 19 '15 at 17:41