Closed Loop Stepper motor chatter at low speed causes?

WobblyHand

H-M Supporter - Diamond Member
H-M Lifetime Diamond Member
Joined
Dec 18, 2019
Messages
6,447
Not sure this is the right place to ask this question, but hope by posting here I may get answers from those with some motor control experience.

I have put together a home brewed ELS, using a 4 Nm closed loop stepper and the CL57T stepper driver, and a Teensy4.1 controller. The kit is similar to url https://www.ebay.com/itm/2336693137...SSxR1aWitFAA6b/rSUMYchRYBhij|tkp:BFBMqpuhlOdg I am using those parts.

The ELS seems to work fine, successfully cutting 16 and 40 TPI threads. However, there seems to be an issue for slow feed rates at low RPMs. It also occurs for 50-100 TPI threads at 100 RPM (spindle). The stepper motor seems to chatter and make odd noises. At first I thought there was something loose and rattling. I have isolated it to the motor itself by removing the belt to the lead screw. The motor itself is tightly screwed to the motor bracket which is securely fastened to the lathe. It is not loose at all.

Does anyone have an idea what might be causing it? Any fixes that you know of? The SteppersOnline site mentions current drive of 10mA on their optoisolator inputs. I believe there is sufficient drive. Besides, it works fine at 200-300 RPM. The minimum pulse width on the driver is called out as 1us. I am using 2us. My driver current is set to "A" which is 5A RMS. Selector SW S3 is 5V. PUL-, DIR-, & ENA- are pulled down using a PN2222A transistor. Base of transistor is driven by the Teensy @3.3V through a 2K resistor, which gives 1.25mA base drive. Assuming a minimum beta = 10, yields a collector current of at least 12mA. I am using the same configuration for drive as shown in Figure 5 of the driver datasheet. My motor drive cable and closed loop encoder cable are widely separated after exiting the lathe.

I will check the pulse widths of my signals to confirm they are 2us. Have to drag my oscilloscope down to the basement, but I may as well check off that box. The chatter never showed up in testing on the bench, just on the lathe. Thanks for any insights.

Other than that, I'm at a loss for the chatter.
 

Attachments

  • CL57T_V4.0.pdf
    1.2 MB · Views: 6
Using 8 microsteps. Have not tried anything different yet.

What's odd is that it worked on the bench, (attached to nothing) albeit with lower stepper current. On the bench, the stepper would jump due to the torque if the spindle encoder moved quickly, so I dropped the current. Low current mode stalls the motor when attached to the lead screw.

8 microsteps works fine at full current at higher speeds. The CL57T has all these darn physical switches, so it's nearly impossible to change stuff on the fly, using a microcontroller. I can't change microsteps using my microcontroller, only by flipping physical switches, which is needed for coarse threads.
 
No motor expert, but could this just be the physical characteristics of a stepper system? You mention spindle speed being low, but what RPM is the stepper operating at? 8 microsteps is 1600 steps/revolution, how many steps per second is that when encountering chatter? Each step is obviously a pulse of torque. With low RPM, low mass or high friction that step will result in a discrete position step. With higher RPM, higher mass, less friction, or more microsteps, should give you smoother operation.

Expanding on @markba633csi's comments, I would try configuring it for something like 64 microsteps (vs 8) to see if that helps. Are you still using the three speed leadscrew gears? Could you configure it to use a different one of those gears so that the stepper runs at higher RPM? Either one would give you more steps/second.
 
Last edited:
Oscilloscope showed me that the wall wart power supply was the issue. Voltage was very noisy. Replaced the supply with an Apple cube 5V 1A supply, and voila, Everything works. The noisy supply was falsely triggering the buffer and the Teensy was faithfully following the input. Noise is much reduced. Now I have fine feed at low and high RPM. 0.0025"/rev at 96 RPM and at 890 RPM. Fine pitch threads work ok as well. Happy dance time! No more chatter at any speed.
 
Glad you got it figured out. Power supply issues can be extremely annoying to find.

Nice job getting another option for ELS designs running. With the parts shortages, electronics has become a frustrating hobby. More options can only help.
 
It's interesting that I can stall the motor grasping the lead screw pulley for a second, but since it's a closed loop system as soon as I let go it jumped to position and kept on going. Won't help on threading, indeed it would pooch the thread, but interesting nonetheless.
 
Last edited:
The CL57T has all these darn physical switches, so it's nearly impossible to change stuff on the fly, using a microcontroller. I can't change microsteps using my microcontroller, only by flipping physical switches, which is needed for coarse threads.
Depending on the driver design (and PCB laiyout), you might be able to use optoisolators to set the state of those switches. If they're SMT switches maybe not possible but it's worth taking a look at. That is, if you feel comfortable modding your driver.
 
Depending on the driver design (and PCB laiyout), you might be able to use optoisolators to set the state of those switches. If they're SMT switches maybe not possible but it's worth taking a look at. That is, if you feel comfortable modding your driver.
New CL57T's are listing for ~ $60. When I bought it (this summer!) was $48 or so. Might be worth opening the box to take a look. What I won't find out from looking at the PCB is when the switches are read by the internal CL57T controller. Could be they are sampled at startup only - that wouldn't help me. Only way to find out is to try, I guess.

The ModBus stepper motor controllers are much more flexible, but cost ~ $140. They can change micro step settings via RS485 message. Seems like a big up-charge for something not that tough to implement. What's a bit difficult - is wading though the parameter lists. All I really want to change (for now) is the micro step settings. The large pitch (low TPI) screws need micro step = 4, so that N/D (the Bresenham ratio) is less than 0.5. Everything else runs comfortably with a micro step setting of 8.
 
Have some old slow 4N35 opto couplers. Switch times in 10's of us, if I am lucky. Should be fine for changing pitches, as we are in setup mode and the stepper is disabled. Guess I would have to wire in two opto channels to change from 4 usteps to 8 usteps. According to the CL57T driver datasheet, using STANDARD binary MSb on the left, the settings are:

SW4 SW3 SW2 SW1

ustep 1 0000b
4 0001b
8 0010b


Think I will open up the driver box. It's not like I think there's a real warranty on these stepper drivers.
 
Back
Top