I want to measure the torque constant of a stepper motor but seems I am doing it wrong. I have an MST342C02 stepper motor (200 step/rev and 4 phases) with SMD42C2 Driver. I have a converter that gives 48VDC 12.5A from 110VAC. I have Teensy 4.1 as the microcontroller and use Accelstepper library. …
Your question is a bit confusing: (1) “motor is stationary the current is 0.4 A” – When you apply power with no load (free running), the not load current is usually small, perhaps 400mA. (2) But if load is more than maximum, or when you force it to “stall” (in your word “stationary”, than the stall current is very big, perhaps a couple of Amperes. (3) PWM255 means high number of steps per seconds, meaning high speed, but not necessary high torque. (4) To measure things, I would suggest to set full stepping mode (ie, no microstepping).
(5) Some useful references: (a) NEMA34 Step Motors MST340, 341 and 342 Product Data – JVL jvl.dk/files/pdf-1/datasheets/ld0042gb.pdf (b) SMD42C2 Driver Datasheet – Motion Control 247motioncontrol.com/media/1230/smd-42.pdf (c) Microstepping myths – MachineDesign 2003oct09 machinedesign.com/archive/article/21812154/microstepping-myths
(1) When the motor is stationary it has holding torque that can hold 9 Nm. (2) Stall happens when more than 9Nm is applied. (3) if you look at the driver manual we have a moving current pin that connects to the microcontroller. The manual says it gets 0-2.5 VDC using the PWM, but using the 3.3VDC digital pins on Teensy I got to have all values from 0-255. This moving current has nothing to do with the speed but the torque. The speed is another pin on the driver named stepclock. By setting 10 for the driver resolution, and knowing 200 step/rev for the motor, 2000 ministep/s equals 1 rev/s.
Question: You said “if you look at the driver manual we have a moving current pin that connects to the microcontroller.” Are you referring to the driver manual of my (5) (b) Above? I cannot find the “moving current” pin!
That’s “move current” pin 12 on the driver, sorry I said moving current. (5)b is the motor datasheet. For the driver manual use the following link: jvl.dk/files/_2011clean/pdf/lb043gb.pdf
Oh my goodness, so there is a driver user manual beside the driver datasheet, and this is the root cause of confusion. Updated reference list v0.1: (i) SMD42C2 Driver Datasheet (Manual) – Motion Control 247motioncontrol.com/media/1230/smd-42.pdf (ii) SMD41 and SMD42 Step Motor Ministep (MicroStepping) Drivers User Manual – JVL Industri Elektronik A/S 1998-2005 jvl.dk/files/_2011clean/pdf/lb043gb.pdf, /to continue, …
(iii) NEMA34 Step Motors MST340, 341 and 342 Product Data – JVL jvl.dk/files/pdf-1/datasheets/ld0042gb.pdf (iv) Microstepping myths – MachineDesign 2003oct09 machinedesign.com/archive/article/21812154/microstepping-myths / to continue, ….
You might like to let me know if you have a scope to display the waveforms of the stepper motor coil current. A cope is useful to explore the nature of the coil current, especially for microstepping mode operation. If you don’t have much experience in experimenting with microstepping, chopper drives, you may need to read some basic tutorials. You might also like to skim my chats with other forum news, to how to test microstepping/chopper mode operation currents and torques etc. / to continue, …
tlfong01’s chats on microstepping motor current and torques: (a) chat.stackexchange.com/rooms/134387/… (b) chat.stackexchange.com/rooms/133950/… (c) chat.stackexchange.com/rooms/133829/… (d) chat.stackexchange.com/rooms/133206/… (e) chat.stackexchange.com/rooms/134572/…
I checked the chats, I don’t want to make it that complicated. I have access to a range of speeds from 0 to 600 RPM and I can quantify the torque using PWM, my main problem is to find the value of torque using current by having the torque constant.
Ah yes, the chat records are only my suggested solutions workarounds for a coupe of EE SE questions/problems. Your problem seems simple but not very clear. Perhaps we can make it more precise. (1) What do you mean by “torque constant“? (2) Are you assuming that torque is directly/linearly proportional to coil current? For my two questions above you might like to give answers with maths equations and charts. In your answer, you might need to specify the test condition, ie, (a) are you using microstepping, such as full, 1//2, 1/4 etc? , (b) Are you using AccelStepper?
(1) I assume that T=k*i since it is a DC motor (k: torque constant) and (2) torque is a linear function of the coil current at a certain speed. In the main problem statement, I mentioned that I use AccelStepper library. Also, earlier I mentioned that I use resolution or ministeps/fullsteps is 10. With the knowledge of 200 fullsteps/rev for the motor, when I set stepper.setMaxSpeed(2000), it goes by the speed of 1 rev/s. Thank you for helping.
Your assumption of t = k * I is a bit confusing, because it oversimplified, and the real world is more complicated. I would suggest to use JohsonElectric’s motor docs as a reference: (6.1) DC Motors: Classification in JE Motor Range – JohnsonElectric johnsonelectric.com/en/resources-for-engineers/dc-motors/… (6.2) DC Motors: Overview – JohnsonElectric johnsonelectric.com/en/resources-for-engineers/dc-motors/…. / to continue, …
(6.3) Stepper Motors: Classification in JE Motor Range – ohnsonElectric johnsonelectric.com/en/resources-for-engineers/stepper-motors/… (6.4) Stepper Motors: Overview – JohnsonElectric johnsonelectric.com/en/resources-for-engineers/stepper-motors/…
Your classification of your step motor as a DC motor is a bit too vague. When you are using microstepping mode, you are chopping the current and the k = f(i) is a bit complicated. (7.1) Stepper Motors: Driver Electronics – – JohnsonElectric johnsonelectric.com/en/resources-for-engineers/stepper-motors/…
My last question, let’s look at the graph in the motor datasheet. For example, the motor runs at 300 RPM, the graph shows 7 Nm, is this for the max torque at that speed (setting PWM = 255 for the move current)?
You seem to have mixed up Stepper motor with DC motor. It is true that for DC motor, (a) Torque generation: T = k * I, (b) DC Motor Equation: ω = U/k – R/(k**2) * T (Speed is highest at no load condition and decreases with rising load torque) (8) (8.1) DC Motors: Performance Curve (Load, Current, Speed, Torque, Efficiency, Rated operating point) – Johnson Electric johnsonelectric.com/en/resources-for-engineers/dc-motors/…
OK. Now let us focus at the Stepper Motor and Stepper Motor Driver: I have an MST342C02 stepper motor (200 step/rev and 4 phases) with SMD42C2 Driver
And let us use this picture for reference in our further discussion: jvl_mst_342_spec.jpg imgur.com/gallery/w8YbtFd
18 hours later…
An update of the setup photo.
Now let us agree on how to setup, test, measure to torque constant of the JVL MST342 stepper motor.
Please confirm if I understand your setup/wiring correctly.
@Amirmkr It is not clear what your PWM = 255 means. I guess you are using Adruino/Teensy4 PWM 255 on top of the AccelStep which would make the control signal a bit completed.
I usually test by hand, manually, use PWM signal from a PWM/square wave sign gen (See my chat records for more details) So I would put away the MPU Arduino/Rpi, and use 8kHz (ie, 8000 steps per second) to the step input of driver, and dc 0V/5V direction signal, …
Confusion between Torque and Torque Constants
You question is on how to find torque constant, but our discussion so far only talks about torque, not torque constant. For a particular DC motor product, its torque constant is a constant, a fixed value, a ratio based on the architecture of the particular motor.
On the other hand, torque (not torque constant) is a variable, depending on a couple of things. In other words it is a (dependent) variable depending on other (independent) variables. The following graph shows the independence.
5 hours later…
Now, how to obtain torque constant from the datasheet.
Reference: Stepper Motor Two-Phase – ni
13 hours later…
@tlfong01 For the move current we need to have a value of 0-2.5VDC (Section 1.4 Driver Manual). This value is chosen by PWM in a digital pin from Teensy 4.1. This value has nothing to do with Accelstepper. As this library only deals with position, velocity and acceleration.
Also by looking at the manual, we see there is another pin for stand-by current. I use this pin with PWM to quantify the holding torque; Howver, today I measured that by setting it to PWM = 255, the holding torque only goes to 6 Nm not the 9 Nm that is in the motor Datasheet.
@tlfong01 My main problem is to find a way to know the Torque at a defined speed, by measuring the current.
@tlfong01 Regarding this, in the main question page I wrote that we would have 1.41 * 9.5 = 13.4 A. And for the torque constant we have (Holding Torque)/current = 9/13.4 = 0.67.
2 hours later…
Let me read the manual again.
SMD41 and SMD42 Step Motor Ministep Drivers User Manua – JVL 1998~2005
Now the relevant pictures.
2 hours later…
@Amirmkr There is slight problem here: Have you used a scope to display the Teensy digital pin with PWM 255 signal, to make sure it is an analogue DC signal?
@Amirmkr Well, you might have mistunderstood the adjective “standby” in the standby current. Are you sure it is related to the “holding” of the holding torque?
@Amirmkr As I pointed out earlier, you might have mixed up the concepts with (1) DC motor and stepper motor, (2) torque and torque constant.
@Amirmkr We need to first make sure that we agree on the definition of torque and torque constant, which I pointed out earlier, are very different things. The below Singapore Uni EE&CE prof’s YT gives a good explanation/clarification:
Torque constant and back-EMF constant – Prof Aaron Danner, EE and CE Dept, National University of Singapore
Talk is cheap, let us calculate:
ChiHai Motor CHW4632-370 permanent magnetic worm reducer motor power off self-locking 6/12/24V (6mm shaft dia) – AliExpress US$7 ~ 11
You can find below more motor specs for you to calculate motor torque.
How to use motor drivers with H-bridge and PWM input, to control direction and speed of DC motors?
6 hours later…
You might also like to watch another prof lecturing how to find motor constants Kt and Kb.
Finding Motor Constants Kb and Kt- Sarah Dart, QUT, 2018aug17, 4,817 views
13 hours later…
@tlfong01 I didn’t scope but measured the voltage using a voltmeter. It shows that the voltage is 0-3.3VDC as the PWM is 0-255. Similar to Arduino digital pins except for the Arduino it is 0-5VDC.
@tlfong01 As I mentioned, I got to change the holding torque using the digital pin of Teensy connected to “standby” on the driver. PWM = [0,255] equals Holding Torque = [0,6] Nm
@tlfong01 I assumed that we have a linear relationship between Torque and Current (Torque matters, if the relationship is not linear then let’s not talk about the torque constant). As it is also in the video that you referred to.
@tlfong01 This video is what I want.
@Amirmkr You made 4 comments. This is a quick reply to your first comment, about using PWM to create an analogue signal. You might like to read the following tutorial first.
Teeny 4 PWM (Pulse Width Modulation)
Teensy can output pulses digital signals that are useful for many projects. PWM creates an output with ***analog-like properties***, where you can control the intensity in fine steps, even though the signal is really a digital pin rapidly pulsing.
The problem is that what Teensy 4 creates is NOT a true analog voltage. This ‘fake’ analogue voltage can control the brightness of an LED, but no guarantee your motor driver accepts it.
3 hours later…
Arduino PWM and Analog Output (True Analog Output using Low Pass Filer and DAC) – Pro HP Halvorsen – South-Eastern Norway Uni
* Arduino UNO has no true built-in Analog Output Channels (only PWM)
* ***What if we need a real Analog Out Signal (0-5V)?***
* We will use a 2 different options:
(1) Create a RC Lowpass Filter that converts PWM to Voltage
(2) Use a DAC chip/IC (Digital to Analog Converter)
* Such a chip uses either the SPI bus or the I2C bus
More videos on Stall Torque, etc.
(11) DC Motor Problems: Examples 1-4 (Motors #5) – Prof Aaron Danner, EE and CE Dept, NUS
(12) DC Motor Problems: Examples 7-10 (Motors #9) – Prof Aaron Danner, EE and CE Dept, NUS
(13) DC Motor Problems: Examples 5-6 (Motors #6) – Prof Aaron Danner, EE and CE Dept, NUS
(14) Torque constant and back-EMF constant – Prof Aaron Danner, EE and CE Dept, NUS
Ref 13, Example 5 is good for you! 🙂
You have not told me how did you measure the torque in you tests. As mentions in the chats, I used a bag of screws as the torque load, similar to what Prof Danner is doing.
(15) Let’s build a DC motor from a coffee can (Motors #1) – Aaron Danner
(16) Let’s build a 3-pole DC motor that’s self-starting (Motors #2) – Aaron Danner
(17) ***Let’s measure the torque of a DC motor*** (Motors #3) – Aaron Danner
2 hours later…
@Amirmkr Well, actually I never bothered about the Torque constant, either for DC motor or Stepper motor. For stepper motor, I only know that the “step” pulse tells the step motor to move one step. In other words, if you send 2000 step pulses, then the motor moves 2000 steps, or 10 revolutions. About the current, YOU might like to tell me how the current is related to what.
5 hours later…
Now read 1.4 of driver user guide, with extraction below.
Look at the green box. Why I * 1.41?
The driver user guide:
SMD41 and SMD42 Step Motor Ministep Drivers User Manual – JVL Industri Elektronik A/S 2005
13 hours later…
@tlfong01 That comes from one of your earlier messages. 1.41 = sqrt(2)
@Amirmkr Yes, your step motor is too large. I usually start testing with current less than 1A, and my max was only 3A (yes, Micky Mouse toy projects).
@Amirmkr Yes, 1.41 = sqrt(2), but I expected you to go deeper, say, it is “peak” value of “rms” I which is chopper bipolar, …
4 hours later…
More references to bipolar chopper stuff.
(18.1) Misconceptions about Stepper Motors Explained – MachineDesign 2017feb18
(18.2) Step Motor Basics – GeckoDrive 2017nov03
(18.3) What is a chopper drive for a stepper motor? – Dantelle Collins, 2017aug11
(18.4) Optimized Current Control Chopper Modes – Trinamic
2 hours later…
@Amirmkr I found your comments in “Holding Torque” a bit confusing. I think we need to agree on the definitions of “Holding”, “Stalling”, “Detention”, “Stationary”, “Moving”, before we move on.
Yet more references:
(1) Detent torque and holding torque – Danielle Collins, 2016jan13
(2) Misconceptions about Stepper Motors Explained – MachineDesign 2017feb18
21 hours later…
@tlfong01 I didn’t make up the terms. Holding torque is in the motor datasheet. Also in the driver manual, we have steps and mini-steps.
The holding torque is the motor resistance to the external torque when stationary. The motor stays stationary until it reaches the limit. Then it starts to move by the external torque. The limit can be set by the PWM voltage coming from Teensy or Arduino to the standby pin on the Driver. One point is that the motor does not draw current as it is resisting. In other words, it has a constant current all the time even when it reaches the limit and passes it.
And there is nothing to be confused about.
1 hour later…
Thank you for your definition on “Holding Torque”. Sadly, I still find the general motor terms confusing, perhaps I should google more to clarify. Cheers.