Archive for a4988

Heatsinking a Pololu A4988 / A4983 stepper driver

Posted in Arduino, DIY, Electronics Projects, Heatsink, Stepper Motors, Uncategorized with tags , , , , , , , , , , on July 13, 2012 by Nilsen

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:

Pololu stepper driver front and back. (Image credit pololu)

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:

Rudimentary but a lot of cooling area.

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.

A4988 with 5V regulator, Chip heatsink and match

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:

Pololu with small aluminum square tube epoxied to the chip. Chip is mounted on a breadboard which I designed for ease of connection.

Note the crocodile clip, that is the one measuring the vRef.

Closer View with thermal paste on top

Partly boxed, connecting cables soldered onto the board

Using thermal paste and a large aluminium bar I secured the bar tightly via two bolts onto the aluminium tubing.


Aluminium base with threaded holes to allow for easy bolt tightening.

Over tightening will destroy the chip.

Vref – Far too much, this would equate to 2.25A in the chip’s output.

Chip temp after adjustment of vRef to about 0.8 (2A)

Temp of heatsink, pretty damn good thermal conductivity. Use thermal paste!

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.

Without any heatsink, soon after this the chip shut down.

The aim is to make this a sturdy and weather resistant device so of course I will embed it in Resin

Some copper

Mixed resin with bubbles from mixing

Bubbles being shaken out (put the resin tub into an ultrasonic cleaner)

Bubble removal… A hot topic which I will create a post on.


Completed and filled (the two copper sinks were thrown in for good measure, really not necessary but giving a more serious look)

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.

Open Source!


*Update* – Mounted driver unit

Mounted driver module – front looking back

Control cable and stepper motor cable

The mounted module with the cabling attached