I’m using a Dual G2 High Power Motor Shield (24v14) in combination with an Arduino Mega 1280 to digitally control a lawn mower. Only recently we completed integrating the other safety measures. Everything was a mess so we decided to take it all apart and make it more compact. Before taking it apart, everything was working fine.
This is where the issue starts. When I go to power the Arduino using the 7.5V coming from the VREG + GND pins on the motor controller, the motor controller starts to violently overheat and the 8 chips near the VIN/GND pins become too hot to touch. I’ve isolated the problem to the SLP pins on the motor controller. It only overheats when the SLP pins are connected to the Arduino via PWM pins 2 and 4. I’ve also verified that none of my solder joints are touching each other or other pins and that no exposed wires near those joints are contacting each other causing a short.
Does anyone know why this could be happening and what a possible solution is? Is it possible to drive 2 30V DC motors without the SLP pins? I’m powering the motor controller with a 40V electric lawn mower battery. I also can’t currently communicate with the Arduino (it might be fried) but am getting a new one soon and would like to not fry this one as well. The current Arduino that I have does turn on but it can’t communicate with my computer.
It does sound like there is a short somewhere in your setup. Can you post some pictures of your setup including close-ups of both sides of your board?
The nSLP pins on the dual G2 24v14 shield are pulled high to enable the driver by default, so you should not need to connect them at all to use the shield. How does your driver behave if you leave the nSLP pins disconnected?
That’s what I thought as well, but I couldn’t find evidence of a short anywhere. Also, from what you said if I leave the SLP pins unplugged from my Arduino, the motors will still be enabled and I can still control them using the Arduino when all of the other pins are plugged in?
It is only when I plug either of the SLP pins into the Arduino that the motor controller starts to violently overheat. It didn’t do this before, and all I have done since is take my previously wired setup apart with no modification to the controller. When re-wiring, I made sure to follow the guide that is currently on Pololu.com for the correct pins.
I’ve attached pictures of the motor controller. In the picture with the red/white wire plugged into the breadboard, the wires from left to right are 2 SLP, 2 DIR, 2 FLT, and 2 PWM. The white wires correspond to M1 and the red wires correspond to M2.
I haven’t tried seeing how it would behave without the SLP pins yet, but that will be one of the first thing I try once I can get back to it.
Can you try improving your solder joints before powering the board again or testing anything else? Your terminal block joints are not wetting fully to the pads, and many of your header pin joints have solder peaks that could be shorting hazards (even if they appear not to be making an active short now). The Adafruit Guide To Excellent Soldering is a good reference with guidance about how to make good solder joints and how to avoid and repair those and other common soldering problems. Please post updated pictures once you think the soldering looks okay.
Also, please note that you are using a Pololu Dual G2 High-Power Motor Driver 18v18 for Raspberry Pi, not the dual 24v14 shield for Arduino that you mentioned and which I linked to in my previous reply. One of the differences between those boards is that the nSLP pins on the Raspberry Pi board does are pulled low, disabling the drivers by default, so you will definitely need to connect them to use the driver.
Another difference is that the Raspberry Pi board does not have a 7.5V regulator; VREG outputs 5V on that board. Where are you connecting the driver’s VREG pin to on your Arduino, and do you have a common ground between the two boards? Is your Arduino powered from any other source (including through USB)?