In my previous blog post, I mentioned that I had done many activities in order to make the dual motor x-axis work using Polulu A4988 stepper motor drivers. I also mentioned that I kept burning up the drivers due to the fact that the drivers did not come together with any surge protection capacitors, and that I had to install these myself. Then I also noticed that one of the motors seemed to be faulty, but became alright when an earth wire was connected from its housing to an electrical earth terminal.

Voltage surge protection capacitor and Hex Inverter IC connected in place

Voltage surge protection capacitor and Hex Inverter IC connected in place

During the experimentation, I was also not sure what was the root cause when something did not happen as expected, whether it was the fault of the driver board (even new boards gave faulty results), or the fault of the stepper motor (because one motor was running alright while another motor was giving erratic movements). Sometimes, I had to interchange the set-up in order to establish what was actually faulty by a process of elimination.

And then, in the initial stages of the step configuration of the joints (axis) in LinuxCNC, I also tried to program separate step and direction wires to an A-axis which would then drive one joint X-axis motor (motor 1), and another set of wires to an X-axis which would then drive another joint X-axis motor (motor 2), but later found that this did not work. So finally, I connected both step wires together and both direction wires together for the two different motors in the breakout board.

I also managed to reverse the direction of one of the motors using a HEX Inverter IC connected with a circuit found on the internet, so that both motors, facing each other and running together engaging with timing belts, would be able to drive the gantry in one direction only.

With all the above concerns addressed, I was able to connect the x-axis motors to their drive belts. With some minor adjustments, cleaning up and lubrication of the bearings and sliding surfaces, I was able to make the gantry move for the first time. Yippee!

As per LinuxCNC stepconfig wizard procedure, I had to adjust the velocity until the machine does not miss any step. The result that I got was disappointing. I could not go faster than 5 mm/sec velocity even when the machine was without any resistance. This would not be acceptable. Why was this the case?

The motor that I used for the Y-axis was performing well. When I compared the characteristics of the motors, I thought I found the answer. The Y-axis motor was labelled 65V 1.55A while the X-axis motor was labelled as 2.32V 5.0A. The reason why I had used the latter for driving the x-axis on dual motor mode was because they were the only identical ones that I had two units.

However, at the time of writing, I had acquired more stepper motors and I happened to have two 5.7V 1A motors which I could use to replace the existing x-axis motors.

Theoretically, this was what I figured out as causing the problem: The A4988 driver would be adjusted so that it could deliver a maximum of only 1 Ampere per phase. This meant that when I used a 5A motor, it would roughly be able to deliver 1/5 of its torque assuming that torque vs ampere had a linear relationship. Now that was rather low – 20% torque only for that motor. With the same argument, if I used a 1A motor, then I would be getting almost 100% of its full load torque. For stepper motors, the voltage rating almost never make any difference because the driver would be chopping the power supply into pulses to accommodate the set maximum current. So there you have it – the motor that I used did not match the stepper driver.

So I replaced the previous 5A motors with the 1A ones.

As you can see from the video, after replacing the x-axis motors, I noticed that the motors had more torque and I felt that I should be able to increase the velocity more in the stepconf wizard of LinuxCNC. I tried turning the motor shafts by hand and found that they were quite difficult to move. However, as you can see from the video, when the x-axis moved there was some squeeking sounds of touching contact with the drag chain tray at certain points. The drag chain tray needed to be adjusted higher in order to prevent touching. I will do that first.

Only after that will I be adjusting the velocity of the motors.