I have been blocked by other activities and additionally, I killed my PC due to being electrostatically loaded. My old laptop is unable to run W10 and is so slow I feel like I can follow the processing of each byte. Since the time I had the intention to write about stepper, motors technology has advanced and the products of the company Trinamic I had used now are the defacto standard in 3D printers on small boards, stepper motor driver boards, called SilentStepStick followed by the name of the stepper motor driver used. Today most common are the TMC2208 and TMC209. I have decided to use the SilentStepStickTMC5160hv which now seems to have changed the device name to TMC5161. Contacting members of forums about 3D printing with my questions that reflect that I have been dealing with stepper motors and Trinamic driver ICs I was attacked on a personal basis, typical behavior of forum members that feel superior to everybody else. But reviewing my understanding of topics related to the driving of stepper motors I did find an error in my understanding. The error happened to me due to the fact that I did my experiments operating stepper motors that had no load to take. So I am happy I can now share with you my understanding of stepper motors and about parameters that influence their operation.
My first experiments trying to operate a stepper motor NEMA34 with 3.6 VDC nominal voltage and 2.8 A nominal current, were done using a stepper motor controller board that used the IC pair of L298/L297. I did apply 12 VDC and I did operate the stepper motor with full steps. The motor had a step of 1.8° or 200 full steps for a 360 turn. All my stepper motor did was vibrating. After a while, I started to question my ability to deal with stepper motors.
This changed when at a trade show in Munich Trinamic gave me as a present a stepRocker stepper motor driver board. So I downloaded and installed their development tool, the Trinamic IDE, and fed the board with 12 VDC for the stepper motors. I found out that my stepper motor just started to do steps when I did use the setting of 16 micro-steps per full step. The IC pair L297/L298 did support only 4 micro-steps per full step. So getting my stepper motor to do steps with those old stepper motor driver ICs was prone to fail. It was impossible to have my stepper motor even doing a single step.
The Trinamic IDE was ideal to experiment with all those parameters with which I could play in the process of understanding stepper motors. The IDE is for free. Trinamic has a full set of parameters that influence the operation of the stepper motor implemented not only in their TMCxxxx driver ICs but also in combination with code they execute on an ARM Cortex M3 controller. In those distant days, I did purchase the LPCXpresso1769 board. Quite a few of the current 32-bit 3D printer controller boards use this old LPC1769 controller from NXP. I have a channel on YouTube, Hellmut Kohlsdorf, where you can see videos I uploaded. Especially valuable for me in those days was to find out how fast stepper motor could do its steps. The video is relatively long due to the fact that I had not expected the stepper motor could do its steps at such a high frequency resulting in a huge velocity I did achieve feeding this stepper motor that had a nominal voltage of 3.6 VDC with 12 VDC. Each 360° turn is 200 full steps, each split into 256 micro-steps or 51200 micro-steps for every 360° turn.
https://youtu.be/nopezWBlDL0Here a very strongly simplified description of stepper motors:
There are different types of stepper motors. Unipolar, Bipolar and Bypolar Hybrid. The unipolar stepper motors are very simple to control using a controller and so it was the predominant style of stepper motors used and they can be very cheap. We see this kind of stepper motors when we cannibalize old printers. Bipolar and Bipolar Hybrid stepper motors are identical in the way they are controlled, the hybrid ones can realize higher torque performance. I will write exclusively about bipolar stepper motors meaning both kinds of bipolar stepper motors.
Stepper motor like other motors does have coils through which the applied voltage and current results in a certain amount of current flowing through the coils. The torque a stepper motor can deliver depends exclusively on the amount of current that flows through the coils. Stepper motors with 8 cables coming out of them can feed the coils connected in series or parallel, each way has its pros and cons. But mostly you will have stepper motors that show 4 cables that are feeding every pair 1 coil. There are also ones that have 6 cables, as this offers access to coils connected in series between those coils. It is simple to identify the pairs of cables that are connecting to a single-coil. Those have a resistance resulting from the copper cables that make the coils. 2 cables that are connected to different coils will show infinite resistance.
Stepper motor driver ICs use a technique called PWM. That is known to us naval modelers from the signal pin of a receiver channel. Pulse width modulation means that the signal flowing through that pin has a duty cycle, that is when the polarity is plus and the reminder length of a wave the polarity is zero. So stepper motor driver ICs use PWM to limit the current supplied to the coils of a stepper motor to that value specified on its plate, the nominal value. So applying a voltage higher than the nominal value requires the driver IC to reduce its duty cycle from 100% when the nominal voltage is applied to 25% when the applied voltage is 4x the nominal voltage.
Now comes a very important topic. When the voltage applied to a coil changes, the coil will generate a voltage of inverse polarity to the applied voltage. So when a stepper motor makes a step or micro-step the amount by which the applied voltage changes than every time an induced voltage is generated. But besides the amount by which the applied voltage to a coil changes, the frequency at which it changes is responsible for the amount of induced voltage generated.
This is why a stepper motor has its highest torque when it is holding its current position. This means there is no change in the applied voltage and the induced voltage is zero. The simple equation shows this:
Veffective = Vapplied + (-Vinduced)
Lets put values in the equation:
6 VDC = 12 VDC + (-6 VDC)
Now, as the current that flows through the coil is responsible for the torque of the stepper motor, at a certain speed at which the stepper motor makes its steps, the induced voltage will halve the effective voltage. This means that then the stepper motor has only 50% of the torque when holding a position. So when the speed at which the stepper motor makes its steps reaches a value wherein absolute numbers the induced voltage is very close to the applied voltage, the current would practically stop flowing and therefore the stepper motor loses all its torque.
So what stepper motor do we choose when 2 stepper motors have the same torque capability? Yes, the one with the lowest nominal voltage value which means the higher capacity to allow for more current to flow. In the FAQ section of the Trinamic website for motors, there is a section as to why we operate stepper motors at a higher voltage than the nominal value and that 20x is a value often found. It was when I published this section of the FAQ all those aggressive and the ones attacking me personally disappeared. There is much more to say and a lot of pictures that can be used to present topics related to stepper motors.
I have recently purchased a Creality Ender 5 Plus 3 D printer and for upgrading, I purchased the most powerful controller board offered for 3D printers and SilentStepSticksTMC5160hv. The controller boards for 3 D printers and the SilentStepSticks board with the Trinamic stepper motor driver ICs are really cheap. So as soon as I can reopen my electronic workbench I will reinitiate the experiments with the stepper motors as I plan to use them as winches on my sailboat model.