Heatsinking a Pololu A4988 / A4983 stepper driver
I have been using the Pololu A4983 / A4988 stepper drivers for quite some time to drive my timelapse dolly’s stepper motor. I used them due to their relative low cost and their ease of use as well as the fact that they support 1/16 microstepping mode which when using a toothed belt with the timelapse dolly is perfect for tiny movements such as ramping.
A note on the microstepping, the steps are so small that it can even be used for focus stacking etc moving just 0.2 mm per step.
The only problem I have with these stepper drivers is that the chip is so tiny and even though rated up to 2A, without proper cooling they are realistically only able to deliver about 0.7 A before overheating and shutting down.
Since the design I use for the dolly is one the “U” configuration with the belt secured on either end of the rail and the motor driver on the sledge itself (along with the camera of course) a failure or thermal shutdown of the driver could be catastrophic in terms of cameras crashing to the ground.
I use BIG stepper motors and in order to drive them at their highest capacity I would ideally need to run the driver at 2A. If I set this without any cooling it will overheat in about 15 seconds and will go into thermal protection mode, this is understandable if you consider the size of the chip:
For those of you who have not seen it before:
There have been a few incarnations of my heatsink endeavors but they all rely on a the premise of using epoxy to fix a larger heat conducting material onto the chip with some thermal paste in between the chip and the larger piece of metal and then fixing an even larger heatsink to that.
The first heatsinks I built were the following:
As you can see it relied on a large piece of aluminum with some rods coming out of it, they were pressed into holed slightly smaller than the rods to ensure they would hold. I used a piece of U-Bar aluminium to with a hole in it with which I could attach the large heatsink.
This method worked relatively successfully but it made the whole thing rather fragile because if that ever caught on anything the chip would be ripped right off the board (fun fact, epoxy gets harder when heated). The current I could put through the chip with this heatsink was about 0.4V on the ref pin, meaning about 1A of current to the motors. This is acceptable but the transfer of heat was not optimal and I was relying on the epoxy, bonded to the components on the board to hold the whole thing in place. This was the Maximim of this setup.
The calculation for current by using the sense pin (ref pin) is ref * 2.5. 0.5 * 2.5 = 1.25A
The case in which the electronics (screen, button pad and arduino) were housed also contained the stepper driver and the subsequent heatsink, this meant that the box had to be quite big and should have some sort of air flow else everything could get rather hot.
In order to minimize this whole setup I purchased some chip coolers meant for high performance PC components such as north bridges etc. These copper heatsinks come with thermaly conductive tape to attach to the chips however their sheer size means the amount of heat they can dissipate is only about 1A worth (VRef of 0.4). After this the chip will go into thermal runaway and shut down. Pity that nothing is ever that simple. As a side note, this was one of the methods that I found while researching ways to heatsink a pololu.
Finally I changed the general design of the controller-dolly setup. Previously I had the following setup:
- Power cable from battery to control unit
- Camera trigger cable from unit to camera (on the dolly slider)
- 4 cable, high current cable from stepper unit inside control unit to stepper motor
This complexity meant when out in the field you had to worry about 3 cables, it was a pain.
I changed the design to move the stepper driver onto the sledge along with the optocoupler to fire the trigger, all I had to do was to change the 3 cables to 1 8 strand cable to send the various control signals from the arduino to the stepper driver and optocoupler circuit to drive the stepper as well as control the camera and then of course send back the 5V from the regulator to the arduino / screen and button pad.
This meant only 1 cable from arduino to dolly, and only one extra to the dolly sled in the form of the power cable.
With the added freedom of design I gained I was able to design a high power heatsink as space was no longer such an issue:
Note the crocodile clip, that is the one measuring the vRef.
Over tightening will destroy the chip.
I ended up turning down the pot a tiny bit as running at max all the time is no good as well when thinking of longevity.
The aim is to make this a sturdy and weather resistant device so of course I will embed it in Resin
Bubble removal… A hot topic which I will create a post on.
So That is my method of heatsinking the tiny A4988 stepper driver, it is now able to drive up to it’s maximum potential and is also waterproof and nicely packaged.
*Update* – Mounted driver unit