So, I built a CNC machine but for some reason one of my stepper drivers just keeps frying when i send a move-signal to it.
I am using the following parts:
- 5 Nema 23 steppers (23HS30-2804S): The X-axis and Y-Axis get two steppers each with one of the pair in reverse.
- 5 Stepper Drivers (TB-6560 Single Axis Stepper Drivers) rated for 3.5A.
- Arduino Uno rev3 (tried a Nano as well, same problem).
- PSU 24V 20A
For software i use GRBL 1.1 and the wiring is done according to the diagramm from https://github.com/gnea/grbl/wiki/Connecting-Grbl (https://github.com/gnea/grbl/wiki/Connecting-Grbl) .
The wiring is as follows:
The current limiting on the steppers is set for 2.6A, which is below the 2.8A that the motors are rated for.
Now, as I mentioned, the problem is that the X-Axis driver (the one on the far right in my diagram) keeps frying when i send a move signal. It's fine when i turn it all on, so the power supply should not be the problem, it's only when i send a move signal that it burns.
What I tried and thought of so far:
- The Arduino cannot be the problem, for two reasons: firstly, i tried another one and it was the same trouble. secondly, the driver for the reversed x-axis gets the exact same signal (same wires) and it works perfectly.
- The driver itself cannot be the problem since i have already tried a bunch of new ones and burned through all of them! :smiley-cry:
- The driver settings are the same for all drivers and all but that one work well.
- The principle of connecting two drivers to the same arduino pins cannot be the problem since it works well for the Y-axis pair.
- The motor cannot be the problem, because when i connect the motor in question to one of the other drivers it works.
- I have rewired all of the connections so many times and I am as sure as can be that all connections are good.
- It cannot be the GRBL settings since all the motors have the same settings and again, all others work.
I hope i didn't leave any relevant information out.
Seriously, i am at my witts end with this! Please, if you guys have any ideas what could cause my problem, please tell me. I am not a professional with this, but i do have spend a lot of time with all of this and it's frustrating that i cant find a solution.
Thanks in advance
It's great to see someone listing their analysis of potential problems - very unusual.
These are my thoughts ...
You say "one of my stepper drivers just keeps frying when i send a move-signal"
Does that happen instantly, or does it take some time? If so, how long.
A loose connection between a driver and a motor that allows a brief disconnection while the driver is powered is a reliable way to fry a driver.
What are you using for your connections? - post a photo of your system
Is it always the the driver that is connected to the same Arduino I/O pins - which pins?
Have you tried writing a simple program that just makes a single motor rotate for (say) 2 revolutions and then tried the program on each driver in turn
I wish I could think of a test that would avoid frying another driver but I can't immediately think of any
Thanks for the quick response! To your questions:
The frying happens instantly, when i press the send command. and i checked all the connections a million type already, and i am as sure can be that they are well, but i am sure i will check them again! :)
the drivers use screw terminals and on the arduino side i actually soldered them into the pins just to be sure. see picture of setup below!
Yes, it is always the same driver. It is connected to pin 8 for enable (all drivers share this one as instructed on grbl website), pin 5 for direction and pin 2 for step signal. But as I said, the second X-axis drivers shares all of these arduino connections and it works well.
no, i didn't try writing a simple program yet, i will as a last resort. however that would indicate that it is a software issue, which cannot really be since the other x-diver works with the same connections and same signal! just weird....
the bad apple is X1 on the far right!
by the way: the midi connectors which i use to connect to the motors: i have tested each of them if they are soldered properly and the all seem to work perfectly. so also not the cause! :/
You say that X2 and X1 get the exact same signals from the Arduino pins 5 and 2 (and 8 for enable) yet driver X2 always works properly and driver X1 is instantly fried - is that correct?
If that is correct then it is some difference between them that is causing the problem.
More random thoughts ...
Does driver X2 work properly if there is no driver X1 in place?
Can you rewire things so that the driver in the X2 position does the job that is presently done by the X1 driver (and vice versa). And if you do that, does the problem move to the driver that is second from right?
Have you used your multimeter to look for short circuits?
Yes, you got it exactly right! However i cannot find any difference between the two. If one is working the other should too, since it gets the exact same signals, but it just doesn't.
Yes, the driver X2 works, whether there is an x1 or not.
I don't know exactly what you mean by your second random thought! since both are connected to the exact same source pins i don't know in how far i could rewire anything. the cable from the step pin from both drivers is joined in the appropriate arduino pin, same for direction and enable. So there is no purpose in switching them around, since it is the same.
I have tried to do some measurements with the multimeter, everything seems normal to me, however i only have a multimeter that cannot display pulse signals only continuous ones. but again, the signal must be alright, since the x2 driver receives the same signal from the same source and works.
it's just baffling! haha
Are motors X1 & X2 tied together mechanically?
Regarding the specific problem OP is posting about, I would have to guess something with the connection to that motor.
Intermittent in some way, maybe?
Just as another note, you don't want to daisy-chain power and ground like that. You want individual power and ground lines connecting only at the power supply.
Are those 3D printed brackets? It is a clean installation.
I am not sure what you mean by mechanically, but they are daisy-chained! i made a picture to clarify:
I checked the connection from that driver to the motor thoroughly with the multimeter and i also tried this specific motor with all the cabeling it has up to the driver on another driver and it worked. so shouldn't be the issue! sorry, english is not my first language, maybe you can tell, but what does intermittent mean in this context? something like "somewhere along the length of the cable"?
Yes, those are 3dprinted brackets! haha yeah, it simply bothered me to just have those things lying in a box! :)
also: the daisychaining.... if you say that it is not ideal, i will change it, but it cannot be the source of the problem, can it?
>intermittent mean in this context?
Unreliable. If the motor gets disconnected from the driver output whilst running, the driver can fry.
The Sherline CNC box uses the same 5-pin DIN connectors for the motors, and there was a problem with driver chips blowing because the jacks/connectors are not all that reliable.
I recommend wiring the motor directly to the driver, at least as a test.
>the daisychaining.... if you say that it is not ideal, i will change it, but it cannot be the source of the problem, can it?
In theory, you want to have a star ground. In practice, it might not make a difference. :-)
I don't think it is making your driver fry.
So there is no purpose in switching them around, since it is the same.
but again, the signal must be alright, since the x2 driver receives the same signal from the same source and works.
I think I was about to respond to this a while back when my internet connection or the Forum server failed.
Clearly something is NOT
the same as one motor driver works properly and the other does not. Better evidence would be hard to find.
So try switching things around.
I am a novice so perhaps not well qualified to respond but I am confused when you say the driver only burns when you "send a move signal" so I would like to ask are the motors all powered up when stationary? as they should all be drawing current and would appear locked if you tried to turn them by hand.
You also didn't say if the motors are connected together mechanically, in other words would one turning affect the others?
Have you tried with the stepper shafts NOT driving anything?
Check the directions of rotation, the X pair should rotate in opposite direction to each other when looking at the shaft end.
If not then when they are fitted they will be working AGAINST each other rather than WITH each other.
As suggested earlier can you leave the code you have and write some code just to EXERCISE one driver and stepper.
Then swap over steppers and drivers to check that each is performing correctly.
Do not connect the steppers to any load, let them freewheel.
Your code needs ONLY to be for ONE driver, use a potentiometer input to control speed and a couple of switches for direction and stop.
Can I also suggest the driver powersupply to the SMPS be in a star type connection from driver back to the SMPS, rather than daisy chained from one driver to the next.
Looking closely at your "schematic" to reverse the direction of your steppers you have swapped the complete coil pair over, this will not work.
Please read this link;
If the motor turns in the opposite direction from desired, reverse the wires so that ABCD would become ABDC (swap one coil) or DCBA (turn the entire plug around).
You are doing ABCD to CDAB which does not change direction
You only need to swap around the connections to ONE winding to get reverse direction.
Did you disassemble the DIN plug for that motor and check the connections? With an ohm meter?
I finally got around to some more troubleshooting!!
I redid all the wiring, connect all the grounds and power lines in a star pattern, connecting the motors directly to the drivers , discarding the din connectors completely and used a arduino screw terminal to connect to the controlller (just in case my solder connections were faulty)!
Long story short, IT WORKS NOW!!!!
i am not sure what exactly was to blame now, but my guess would be the DIN connectors. If those are known to be flakey, which connectors would you recommend? bc it would be very convenient to be able to disconnect the electronics enclosure from the rest of the machine!!
about the motor wiring when it comes to reversing direction: i changed it now to how you suggested and it works, however it did work the other way as well! and it even says so in the article in the link you posted! :)
Anyway, I just want to sincerely thank all of you who showed interest and tried to help! It's nice to see that the internet is not only the place for anonymous assholes to make dumb comments, but also a place where a lot of good happens! :) So THANK ALL OF YOU!