Arduinobased focus stacking controller for macrophotography.

What is a focus stacking controller?

A focus stacking controller is a device that, with the help of a small stepper motor and a microprocessor, automatically takes a series of photos, each focused on a different portion of the subject, and merge them all together in postproduction to get one really sharp image.

How does it work?

This stacker contains a small LCD display originally designed for the Nokia 5110 mobile phone. There I can easily see how to program the stacker using a standard remote control for a TV set.

When the stacker is programmed, the motorized stage will automatically move between slices, and a predetermined number of shots will automatically be taken during the desired time interval.

Nokia 5110 LCD Display

Looking for inspiration

When surfing the net for inspiration to my stacker I found this interesting page. Rylee Isitt is a Canadian nature photographer who also built his own Arduino stacker. I liked his design and decided to build my version of his tracker. Many thanks to Rylee for his inspiration and well-documented information.

Circuit layout

I built my circuit on a 160 x 100mm breadboard. I found this size suiteble since it has plenty of space for both components and Arduino Uno. For my build, I used what I had at home, the rest was bought on Ebay.

For the 74HC595 and L293D Quad half-H bridge IC sockets were used, which makes them easy to change if I cause a short circuit while building the stacker.


The breadboard layout

28BYJ-48 stepper motor

I chose the 28BYJ-48 stepper motor because it is cheap and efficient. Less than 2 EUR on Ebay.  The engine was originally designed to automatically adjust the habits of an air conditioner unit. It has a built-in gearbox, which gives it extra torque and reduces the speed of the output shaft.

28BYJ-48 stepper motor

Arduino Uno

I bought an Arduino Uno clone for the stacker. Usually, cheap Chinese Arduino clones works well, but sometimes you have to download and install the driver for the CH340 chipset on the Arduino Uno. Here is a link how to do this. Original Arduino Uno costs about 20-25 EUR while a clone costs about 4 EUR including shipping.

Microcontroller board

Aluminium enclosure box

I chose a relatively large box for the electronics. On the left side I have mounted a powerswitch. There is also incoming power from a 9 volt battery eliminator. On the top I have mounted the LCD display and 3 LEDs. The first is a power on LED. The other two light up when focus and shutter signals are sent to the camera.

Main unit


On the right side you will find outputs for the stepper motor and outputs for signals to the camera. There I also placed the IR receiver.

IR receiver and connections

Remote control for a TV set.

I adapted the software to work with an old used remote control I had. You can use virtually any remote control as long as it has at least 19 buttons.

Remote control

The rail

The rail consists of a slightly modified MANFROTTO 357 quick release plate, a 28BYJ-48 stepper motor, a metal bracket for the stepper motor, a modified micrometer screw gauge, a piece of sandpaper, a rubber band, a grip ring from a discarded lens and a few spirit levels. Everything mounted on a piece of wood.

Guide rail


I use a micrometer screw to push the manfrotto 357 quick release plate forward with precision. To improve the grip of the belt on the micrometer screw gauge, I use a piece of sandpaper that I glued to the micrometer. The rubber belt is a grip ring from an old lens.

Stepper motor drives the micrometer

No backlash

When the stepper motor is driven in the opposite direction, the rubber strap pulls the manfrotto 357 quick release plate backwards with precision without any backlash.

Rubberband for return


Here is a photo of flakesalt that I took using the focus stacker. The saltflake is about 2mm large. I have used a 100mm macro lens with a reversed 35mm lens mounted in front of it. Then I also cropped the image a bit. I have placed the flake salt on a mirror to get a nice reflection. The image consists of about 50 stacked images that have been merged using the Zerene Stacker program.

Flakesalt on mirror