use a gpio (and resistor) connected to Vref to pull the reference voltage down a bit, reducing the current
use a gpio (and resistor) connected to Vref to pull the reference voltage down a bit, reducing the currentNo orthodox approach... do you have any link to provide an example where this solution has actually worked?
I'm quite worry about how external environmental temperature could make this value oscillating too much...
Looking at that driver chip it just controls the current within a step, there is no variation according to the mode, for example when stationary, by the sounds of it in your app it could spend a fair amount of time stationary, in that case you could modulate the ENABLE input to reduce the power dissipation, for example 50% duty cycle would halve the power. I guess the frequency probably has to be low enough not to confuse its (A4983) intelligence so a few hundred hertz might be worth a shot but you need to avoid any mechanical resonance, of course it might end up comforting the drivers hand tooThis sounds crazy, but could work. In this way I could decrease a little the current when full torque is not necessary.
As I wrote above, I'm just searching for a little margin in motor temperature to take me on the safe side. I think that even a 20% lower current should lower the temperature more or less of the same amount.
Anyway, now both Pololu and Sparkfun have migrated their products to the A4988 chip. As I see from the datasheet, the mechanism used to control the current is the same (PWM).
What's even the point of cooling it down? There isn't anything heat sensitive in it. There isn't any electronics in it, just some wires and some metal and oil. Unless it is like 90 degrees hot, I dont see a reason why you want it cooled.
In fact, maybe it doesn't even get proper lubrication or the bushings in it don't work properly if it is not at design temperature.I would agree with you. Furthermore, 99,9% of commercial stepper have a Class-B insulation. If I remember correctly, this means an heat resistance up to 110 °C.
Nevertheless, I wrote at two manufacturers and both have answered with the same karma: "max environment temperature MUST be max 50 °C". So, if you close your stepper in a box, that must be the max temperature inside your box.
In a hot summer day of August I think that you're going to crash that limit very easily. So any temperature grade saved is like gold for my outdoor application.
(I also plan to add some opening in my enclosing box somehow, to guarantee a minimal ventilation added to an external heatsink.)
The most sophisticated stepper motors controllers I know of are from Trinamic. We developed some very precise controllers with the TMC5130, TMC5160 and TMC5072, they are offered in a small PCB called a BOB that makes it easy to mount and interface with. Our application used a Raspberry Pi, and these controllers mounted on to a HAT type PCB which plugged directly into the RPi.
These controllers allow various parameter tuning to achieve remarkably smooth motor/system operation with little vibration and no sound.
The datasheet for your motor says maximum 80C rise with ambient temperature of 50C, that means an absolute temperature limit of 130C.
In other words, see how hot it gets in a normal 20C room, and you'll see how much extra margin you have. It is unlikely to be a problem.
I have some old printers with stepper motor drives, and there are labels on the motors that say "WARNING: HOT SURFACE! DO NOT TOUCH!" They heat up to over 100C when in use (hot enough to boil water), and also discolour the surrounding plastic over a few decades of use. I would be more concerned about the effects of those temperatures on other parts of your device than the motor itself.
The datasheet for your motor says maximum 80C rise with ambient temperature of 50C, that means an absolute temperature limit of 130C.
In other words, see how hot it gets in a normal 20C room, and you'll see how much extra margin you have. It is unlikely to be a problem.
I have some old printers with stepper motor drives, and there are labels on the motors that say "WARNING: HOT SURFACE! DO NOT TOUCH!" They heat up to over 100C when in use (hot enough to boil water), and also discolour the surrounding plastic over a few decades of use. I would be more concerned about the effects of those temperatures on other parts of your device than the motor itself.
Hi, your direct experience make me feel much better. I second your observations and I think there is a lot of safety margin in temperatures even by adopting no particular countermeasures against the rise of temperature.
Anyway, I usually saw stepper motors operating in a "open-air" installation. Not protected by any enclosure box.
I have no idea what happens when the stepper is inside a box to protect hit from rain and water splashes. In this case the thermal exchange between air and the metal surface of the motor is greatly reduced, and I think that some heat-dissipation media should be provided.
For this reason I think that a layer of (not conductive) thermal paste between a face of the motor and a big alu-bracket should help. Also a layer of thermal past between the motor and the internal surface of an enclosing metal box could work as heat-sink.
What you think?
Unfortunately, seems that nobody have an experience about how much time a commercial thermal paste can last when exposed to outdoor temperature...
The most sophisticated stepper motors controllers I know of are from Trinamic. We developed some very precise controllers with the TMC5130, TMC5160 and TMC5072, they are offered in a small PCB called a BOB that makes it easy to mount and interface with. Our application used a Raspberry Pi, and these controllers mounted on to a HAT type PCB which plugged directly into the RPi.
These controllers allow various parameter tuning to achieve remarkably smooth motor/system operation with little vibration and no sound.
Hi, stuff from Trinamic is really cool stuff. I looked at it some weeks ago and I was impressed (they have also good "torquing" steppers too). It is still in my browser bookmark list.
As I understand Trinamic offers also a free integrated IDE for programming their drivers. Also a Linux version is available!
Honestly, I was intimidated from the large options they offer with their drivers, and I felt a little bit lost.
I have to write down an email to Trinamic guys and ask more info about my application. Decisively.
Also the prices seems quite reasonable.
steppers have much more torque than servos of the same size and the drive with modern ICs is dirt cheap
steppers have much more torque than servos of the same size and the drive with modern ICs is dirt cheap
That hasn't been my experience. Servomotors can be very powerful, think how much torque you can get from a cheap cordless drill for example, that's just a little brushed motor which could just as easily have an encoder on the shaft to be a servomotor. Compared to a stepper of the same size it would be no contest. Friends of mine own a CNC machine shop and they have upgraded several old machines from steppers to servos and got dramatically improved performance, the servos are faster, smoother, quieter, and being closed loop they never skip steps.
use a gpio (and resistor) connected to Vref to pull the reference voltage down a bit, reducing the currentNo orthodox approach... do you have any link to provide an example where this solution has actually worked?
I'm quite worry about how external environmental temperature could make this value oscillating too much...
why wouldn't it work? it is just simple DC voltage that set the reference for the current limit. A potentiometer isn't exactly a
precision instrument either.
use a gpio (and resistor) connected to Vref to pull the reference voltage down a bit, reducing the currentNo orthodox approach... do you have any link to provide an example where this solution has actually worked?
I'm quite worry about how external environmental temperature could make this value oscillating too much...
why wouldn't it work? it is just simple DC voltage that set the reference for the current limit. A potentiometer isn't exactly a
precision instrument either.Uh! I think I got it. Do you mean to "digitally" lower the VCC voltage used by the potentiometer, yes?
(See schematic)
What's even the point of cooling it down? There isn't anything heat sensitive in it. There isn't any electronics in it, just some wires and some metal and oil. Unless it is like 90 degrees hot, I dont see a reason why you want it cooled.
In fact, maybe it doesn't even get proper lubrication or the bushings in it don't work properly if it is not at design temperature.I would agree with you. Furthermore, 99,9% of commercial stepper have a Class-B insulation. If I remember correctly, this means an heat resistance up to 110 °C.
Nevertheless, I wrote at two manufacturers and both have answered with the same karma: "max environment temperature MUST be max 50 °C". So, if you close your stepper in a box, that must be the max temperature inside your box.
In a hot summer day of August I think that you're going to crash that limit very easily. So any temperature grade saved is like gold for my outdoor application.
(I also plan to add some opening in my enclosing box somehow, to guarantee a minimal ventilation added to an external heatsink.)
But I will test the PWM approach first.
In a hot summer day of August I think that you're going to crash that limit very easily. So any temperature grade saved is like gold for my outdoor application.
(I also plan to add some opening in my enclosing box somehow, to guarantee a minimal ventilation added to an external heatsink.)
They are kinda the same If you imagine you want to reduce power while stationary for example you could either do it by modulating the enable signal with a pwm or the suggested play with the reference voltage.
They are kinda the same If you imagine you want to reduce power while stationary for example you could either do it by modulating the enable signal with a pwm or the suggested play with the reference voltage.UPDATE
I was playing today with the analogWrite() istruction of arduino. The PWM-approach doesn't work.
By using the BED (Big Easy Driver) the stepper is fully powered when the ENABLE pin is LOW. On the other hand, is unpowered when the pin is HIGH.
I tried different duty-cycles (5%, 10%, etc.) to keep the enable-pin a little bit above the 0 voltage to get a smaller current. Unfortunately the stepper rotates in an abnormal way, with a lot of forward-and-back movements, a lot of noise, etc.
In other words: a disaster. It is not usable in such conditions.
The stepper works normally and smoothly when the duty cycle is zero or 255. Other values make the BED getting "confused" ( I was using a Pro Mini Arduino with PWM frequency equal to 490Hz). I suppose for reasons you write above.
It's a sin... it would be very nice if I could digitally control and modulate the current to the stepper, not only to reduce the temperature, but also to provide a different intensity of the motor force (torque) in different situations. That would be a real "game changer" for my project.
Maybe I should migrate to another driver? At the moment I have no idea of what driver board allows to modulate/regulate the current by using an Arduino-like micro-controller.
+1 for Trinamic drivers - they can be set up to automatically reduce current when the motor isn't moving
+1 for Trinamic drivers - they can be set up to automatically reduce current when the motor isn't movingAre you the devil? You're tempting me...
Anyway can a Trinamic driver programmatically lower the current sent to the windings? Or it is just a static configuration setup?
It would be fine if I could do that upon the input of an external sensor, or even a pressed button/switch.
+1 for Trinamic drivers - they can be set up to automatically reduce current when the motor isn't movingAre you the devil? You're tempting me...
Anyway can a Trinamic driver programmatically lower the current sent to the windings? Or it is just a static configuration setup?
It would be fine if I could do that upon the input of an external sensor, or even a pressed button/switch.