Stepper driver problem - Page 1
Forum section: electronics / projects

author: bitwelder
author_rank: Super Contributor
timestamp: June 08, 2013, 04:11:45 pm
content: I'm assembling a 3D printer, and I have a weird issue with one of the axes: if I give a command to move to the left, it steps to the left, if I give command to turn to right... it still steps to left!The controller is based on Ultimaker, so it's basically an Arduino Mega piloting a 'pololu' driver (it uses Allegro A4983 chip) which drives a bipolar stepper motor.I already swapped the pololu drivers, the steppers, and they look ok.The driver works so that when it receives a pulse on the STEP input, it moves the stepper in one direction or the other depending on the level of the signal DIR, so I investigated that line.PCB looks ok, no pins shorted or tied to ground or to +V.I separately tested the arduino mega with a simple program that blinks a LED connected to the pin used for the DIR signal, and it's ok.So I remount everything, and I hook a couple of wires from the DIR pin and the GND on the stepper driver socket, and via croc clips I plug the DMM to check the voltage while I give the command to the steppers: the issue disappears, everything works!I unplug the croc clip that goes to the DIR: the issue reappears again.It seems that as far as I keep the DMM (a UT-61E) plugged,even if it's turned off, everything works.What is going on? In the schematics the signal goes straight from the arduino to the driver, without any need for a pull up/down resistor or anything else and yet it seems in this case to benefit from adding a high resistance path (I guess the DMM input resistance is >10MOhm) to ground?

author: C
author_rank: Super Contributor
timestamp: June 08, 2013, 05:21:31 pm
content: SoIn simple terms you are missing something. Until you find the actual source of the problem, it will most likely not make sense.I worked a problem once of a good switch that was a bad switch. Test the switch with ohmmeter and it was good, in circuit it was bad. The problem was the switches would not switch the much lower current used in the circuit.Take a good look at the ground side.I found a problem once where a poor ground on a cable showed up as a problem on a specific data bit that went over that cable.So missing something,Look at how all your testing has changed the circuit.What changed when you swapped ___ and what did not change during that time.Does the problem change with where you connect you meter leads.For your DIR signal, you could connect to mpu end or driver chip end.Does it change when you connect to different ground points?C

author: GeoffS
author_rank: Unknown
timestamp: June 09, 2013, 11:01:44 am
content: It might help if you can you give more details of the controller you're using. RAMPS, Atzeeg, RUMBA etcI'm running a RAMPS 1.4 with an Arduino mega 2650 on my printer.

author: bitwelder
author_rank: Super Contributor
timestamp: June 09, 2013, 12:13:56 pm
content: As I wrote before, the controller is a Ultimaker, which is in the RAMPS class i.e. it has Arduino Mega and Pololu Shield. It uses Marlin firmware.

author: David_AVD
author_rank: Super Contributor
timestamp: June 09, 2013, 12:17:30 pm
content: Could it be a logic level (3v3 vs 5V) issue on the DIR line?

author: bitwelder
author_rank: Super Contributor
timestamp: June 09, 2013, 02:59:59 pm
content: For what I was able to measure, the DIR line was able to get to 5V.Besides, the controller design is a tested architecture, so I would not expect such issues. Also, the other two axes are made the same way but they work perfectly.Back to my last observation, any idea why adding a digital multimeter between DIR and ground makes things work?

author: MacAttak
author_rank: Unknown
timestamp: June 09, 2013, 04:59:38 pm
content: It isn't impossible that the socket you are jamming the probes into is defective. The pressure from that could very well be "fixing" it. You tried using something else there like a toothpick just to be sure it's an electrical quirk and not mechanical?

author: David_AVD
author_rank: Super Contributor
timestamp: June 09, 2013, 09:54:10 pm
content: Just to clarify, does the fault follow the board or the axis ?

author: sleemanj
author_rank: Super Contributor
timestamp: June 10, 2013, 12:36:13 am
content: I had an issue just yesterday with some very peculiar measurements. After some head scratching, I had the thought to check the resistance of the alligator clip test leads I was using... wildly fluctuating readings 10 to 100 Ohms. The copper had "burnt" inside, carbonised in various places, with no external signs.So anyway, moral of the story, check the most unlikely of things when something unexplained starts happening!

author: bitwelder
author_rank: Super Contributor
timestamp: June 10, 2013, 05:21:17 am
content: Thank you for your answers.@MacAttak: As I needed to have the hands free to send the commands to the printer, I was using a looped piece of wire inserted between the leg of the stepper driver and its socket, and during measurement I wasn't putting any pressure on it.@Avid_AVD: in the initial testing when I tried to swap steppers, pololu driver, etc between X and Y axes, the fault was staying on the same X port on the board (if I was swapping the stepper it was showing on Y axis).Yesterday I was doing a few more tests, and I noticed that actually all I need to have the axis working 'correctly' was to have the piece of wire from the driver (10cm) connected the multimeter cord (50cm?) just dangling in the air (i.e. not connected to the meter). I also noticed that after moving a few steps left-and-right (really only a few seconds) the driver chip which has a heatsink on top gets relatively hot.I think at this point I just contact the seller to take the controller back and verify it, rather than me spending more time getting puzzled by this weird issue.

author: airiclenz
author_rank: Contributor
timestamp: June 10, 2013, 02:24:50 pm
content: ...this sounds definitely like a cold solder joint, a broken connector or something else loose-ish. It is not the wire that is dangling around, it is how you connect that wire to the driver-board. The problem sits right there.A.