MacroDSLR overview

MacroDSLR is a powerful, but still easy to use macro photography application for Apple Mac computers built around INDIGO and INDI standard.

It can control digital single-lens reflect camera (or actually any other supported digital camera) and its lens or external focuser, to allow proper framing, focusing and capturing a batch of images suitable for further processing by some focus stacking capable application.

It can control many devices supported by built-in INDIGO drivers or it can use any 3rd party remote INDIGO or INDI driver. Out-of-the-box it contains INDIGO drivers for the following focusers:

What's new in version 3.17

What's new in version 3.16

What's new in version 3.15

What's new in version 3.14

What's new in version 3.13

What's new in version 3.12

What's new in version 3.11

What's new in version 3.10

What's new in version 3.9

What's new in version 3.8

What's new in version 3.6

What's new in version 3.5

What's new in version 3.4

What's new in version 3.3

To see a new video tutorial, please visit

What's new in version 3.2

What's new in version 3.1

Please note, that MacroDSLR contains many INDIGO drivers, but none of them with exception of ICA driver is loaded by default. To enable the driver you actually need, select it on Preferences → INDIGO Drivers pane. You may need to scroll down to find some of them.

Initial setup and preferences

When MacroDSLR is started for the first time or when button in toolbar is clicked, preferences panel is shown. It has four different panes. On the first one there are general settings and the rest is related to INDIGO framework.

Many options, e.g. Use mirror lockup or Avoid AF works only with certain cameras or lens.

Port number, Bonjour service name and Bonjour service type are parameters for configuration of internal INDIGO server. Do not change them unless you understand how INDIGO works. If something will go wrong you can try to set Log level to debug or trace to see more verbose output from INDIGO framework.

MacroDSLR contains many INDIGO drivers, but none of them is loaded by default. To enable the driver you actually need, select it on INDIGO Drivers pane.

MacroDSLR will connect to any INDIGO server in the local network automatically, but if you want to configure connection to a service without Bonjour support (e.g. linux based INDI server or INDIGO server outside local network), you can do it on INDIGO Services pane.

Camera panel, operations and state

On the camera panel you can select an active camera and configure parameters for its driver:

Not every parameter can be configured for every camera and not every parameter can be configured from the camera panel (e.g. advanced or device specific parameters). For these parameters you need to use INDIGO or INDI control panel instead while MacroDSLR is running and device is connected. Make sure that you saved the configuration before closing control panel (configuration control property in main group).

The camera related operations represented by the toolbar buttons in LiveView and Capture groups are:

The buttons are enabled only if camera is selected.

The indicator in the lower right corner shows current battery status (if this information is available).

Focuser panel, operations and state

On the focuser panel you can select an active lens or focuser and configure parameters for its driver:

Variable speed is not supported by all focusers and also step size meaning may differ. For focusers with stepper motor it is number of steps while for focusers with DC motors it is duration in milliseconds.

The focuser related operations represented by the toolbar buttons are:

If step size is greater than zero, focuser is in stepper mode and will move in or out specified number of steps or milliseconds every time focus in or focus out button is clicked. If step size is equal to zero, focuser is in timed mode and will move in or out while focus in or focus out button is pressed. Timed mode is not supported by all focusers and lens.

In the status bar there is an indicator which shows the current position and the status of the focuser.

With Nikon and Canon camera bodies it is possible to control some of the lens. Nevertheless, that possibility differes from camera to camera. You can focus only during LiveView and if you want avoid AF before subsequent capture, make sure that Avoid AF before capture is selected in Preferences for Canon and that Focusing is set to M for Nikon (unfortunately, this is not possible for semi-profi and profi bodies with AF switch).

Batch panel, state and operations

On the batch panel you can configure parameters for capture of simple series of images:

If any focuser is selected on focuser pane, each time an image is captured, focuser will execute selected number of steps out. Rewind in or out will execute the selected number of steps multiplied by image cound in or out.

MacroDSLR never overwrites existing file, instead sequence number is increased.

By clicking the image name you can load it into preview pane. By doubleclicking you can show it in Finder.

Image, histogram and PSF panels

Image preview panel shows the last image captured by the camera or loaded from a file.

If you move the mouse cursor over the image, coordinates and RGB values are shown in status bar.

In the histogram panel (top right) you can see among histogram in logarithmic scale, size of the image and some statistical data. Below the histogram there are sliders and steppers for setting black and white point for image stretching and also button to set the component into automatic mode.

The image preview related operations represented by toolbar buttons are

INDIGO control panel

MacroDSLR has a built-in control panel for managing all INDIGO or INDI devices found on the local INDIGO bus. You can expand a device → group → property tree to examine or set items of any device property.

Remember to save your changes each time you customise any settings (navigate to device → Main → Configuration control and click Save)

MacroDSLR device represents MacroDSLR itself and can be used by scripting tools etc.

Please note, that embedded control panel can be used only to control local devices. To access remote devices you need full featured INDIGO Control panel.

Distributed setups

As far as MacroDSLR is based on INDIGO, it can natively use distributed setup, e.g. to control device driver running within other application or on another machine. INDIGO uses bonjour service discovery, so you don't need to configure anything while both MacroDSLR and the remote server are running on machines connected to the same local network. Otherwise you need to add hostname and port of INDIGO service to the list at INDIGO Services tab in Preferences.

You can download INDIGO for various linux platforms (including INDIGO server and device drivers) from If you want to use Mac computer as remote server, you can use INDIGO Server for macOS.

Device detected by remote servers appears in the list of available devices the same way as local device, just with '@ server' suffix in the name (e.g. 'Titan @ rpi.local').

To setup properties of local or remote devices not managed directly by MacroDSLR (e.g. serial ports for focuser configuration) you can use INDIGO Control Panel. Remember to save the configuration of the device driver (each device has Options section with Configuration page).

Debugging the application

AstroDSLR has a built-in debugging support for case that something went wrong. On AstroDSLR → Preferences → INDIGO set "log level" to "trace", restart AstroDSLR, repeat failed operation, save the log to a text file by Control → Save log and send the file to for further analysis.

Optional INDI driver pack

If your device isn't supported by INDIGO, but has INDI driver ported to Mac computers, you can use it with optional INDI driver pack. These drivers can’t be bundled with MacroDSLR due to GPL license, but you can download and install them yourself.

Source code of these drivers is available from INDI github repository.

Further questions?

Please contact us at or