stepper motor synchronization
-
Hi I have a problem with my dual leadscrew driven Y axis which sometimes blocks. I have unscrewed everything multiple times and I have only 2 options left.
Option one is a thermal expansion problem. While it is unlikely, it is still possible and I am currently calculating whether this could be the cause. I can move everything by hand with no problem, so I'm assuming it's probably option two which is a stepper problem.
My Y axis is driven by two independent 1.8° stepper motors. Both drive a 6mm pitch leadscrew with zero backlash nuts. I used them unconnected with two individual homing sensors but they are not accurate enough for my setup and it is really hard to get them in the right position which resulted in the axis being blocked sometimes. My current attempt is a belt connected approach with only one end stop at one side. I energized both steppers in full step and aligned them with a measuring gauge. It worked for a while but it blocked again.All of this leads to my question about initializing of the stepper motor. What happens when a Stepper gets power for the first time? Is the same phase always supplied with power at start-up or does this change in some way?
The only thing I can imagine now is that the axis gets tense over time due to the motor angle and therefore blocks. I'm at the end of my knowledge and don't know where to look anymore. My linear guides require a very precise alignment and I just can't imagine that it is due to the chamber heating. I know that not many people work with lead screws, but has anyone had a similar problem and if so, how was it solved?
-
@chris94 When a motor energises initially, it usually jumps to the nearest full step, but it can be as much as two full steps, either way. If you're two motors are independent of each other, and home to different points on their phase, then yes, occasionally you may get the situation where one jumps one way two steps, and the other one jumps the other way. Initial load on the motor before enabling may also make it more likely to jump the 'wrong' way.
I don't know if this can be mitigated by powering up the motors with a low current (to minimise how many full steps the motor jumps) and then increasing it. Or powering up one motor, then the other (you'll have to split the axis to do that), as they are connected by a belt.
The only other way I can think of to synchronise the motors would be to drive them both from the same driver, either in series or parallel. Then they should stop on the same phase, and jump a similar amount and direction at startup.
Ian
-
@chris94 said in stepper motor synchronization:
My linear guides require a very precise alignment and I just can't imagine that it is due to the chamber heating.
Your motion system sounds overconstrained. Can you show some photos of the printer?
-
@droftarts I thought by synchronizing the stepper motors with a belt I could force both motors to jump to the same step, but it sounds like that is not possible.
@Phaedrux
THK RSR15M1 rails
I would show you the thermal expansion simulation, but I can't access my SolidWorks data anymore -
@chris94 said in stepper motor synchronization:
I thought by synchronizing the stepper motors with a belt I could force both motors to jump to the same step, but it sounds like that is not possible.
If synchronized by a belt, I don't think they are getting out of sync at all.
That setup looks like it would be prone to binding.
-
@droftarts said in stepper motor synchronization:
When a motor energises initially, it usually jumps to the nearest full step, but it can be as much as two full steps
When the board is powered up the driver current always starts in the same phase position. The phase position of a stepper motor repeats every 4 full steps. So in theory the motor should jump to the closest position that matches that current phase, which could be up to 2 full steps away from the initial position.
If it's right between the two nearest 4-fullstep positions, it could jump either way. If you trammed the bed, either using the Z probe or by using multiple Z endstop switches, then the motors will be at different start points anyway, making it even more likely that they will jump in opposite directions.
The consequence of this is that your Z axis mechanics must not bind even when the motor positions are mismatched by 4 full steps. That's 7.2 degrees when using standard 1.8 degree/step motors.
If you don't drive the Z motors independently but use a belt to try to keep them synced, then you need to ensure that the belt is tight enough to sync them but the motors are not fighting with each other, in other words when the motors are all in the same phase position the belt tensions are equal between the motors. If the motors do not have flats on their shafts then you can perhaps achieve that by powering up the motors with all but one grub screw loose and motor idle detection disabled to maintain full motor current, adjusting an idler to achieve a suitable belt tension, then tightening the grub screws. However, if you are using a belt to couple all the leadscrews, why not use a single motor?
HTH David
-
@dc42 Thanks for this clarification.
I'm currently using 2 motors because I originally had two limit switches which didn't work so well. that's why I wanted to switch to only one limit switch. The only problem was that I couldn't find a closed belt that was the length I needed. The chamber is heated (theoretically up to 120°C) and therefore I cannot use just any belt. I would also have to switch to a Nema 23 motor so that I can generate enough torque for both lead screws but I don't have the space for that. So, for me the option with the least effort was to use 2 motors which I then connected with the longest belt I could find.As soon as I find the time, I'll try again with the current configuration and pay more attention to the belt tension. I probably made a mistake last time when connecting the two motors.
In your opinion, does it make more sense to use two limit switches or to connect both motors?