AstroDMx Capture - Overview
The AstroDMx Capture project was originally started to produce a stable astro-imaging application for use with the Imaging Source DMK, DFK and DBK range of cameras. Since then, the project has grown into a fully featured astronomical image capture application written on Linux and now ported to macOS and Microsoft Windows. AstroDMx Capture is a long term project which I will be adding additional features and improving the camera support as often as possible.
AstroDMx Capture has been written from the ground up in C++ / wxWidgets with performance and reliability as some of the most important factors. For example, the software automatically detects if a camera has gone offline. If an offline camera is detected then the software will automatically reinitialise the camera with all the previous settings and continue as if nothing had gone wrong. This function works even if a camera was accidentally disconnected and reconnected during a capture session.
The software currently supports saving data in both 8 and 16-bit formats, off-chip frame integration, dedicated functions for capturing both dark and flat frames, real-time frame calibration which can be applied to calibrate the saved output or just to the preview screen, over-exposure indication, a custom colour guide reticle, Region of interest nudge during capture, off camera debayering using high-quality interpolation algorithms, automatic debayer pattern selection and many more features.
Key Features of AstroDMx Capture
The look and feel of AstroDMx Capture's UI is directly inherited from the desktop environment and its user selected theme. As mentioned above, the AstroDMx UI has been written using wxWidgets which is currently compiled against GTK2. This effectively means that AstroDMx Capture will inherit the look and feel from the active GTK2 theme. The user can alter the look and feel simply by changing or modifying the system's current GTK2 theme.
Most of the controls are dynamic, and so only the controls relevant to the connected camera are visible. For convenience, the camera controls are organised into logical groups, all of which can be minimised to save space. If the computer monitor is not large enough and too many controls are maximised, then a scrollbar will appear which allows the user to see all available controls quickly and efficiently.
Camera Connection Monitor
There are many things that can cause a camera to go offline and stop delivering frames. Some of these could be loose USB cables or the incorrect use of USB bandwidth settings. AstroDMx Capture has a Connection Monitor, this feature is enabled by default and regularly checks to see if the connected camera is still streaming. If the software detects that the camera has gone offline, then the camera is automatically reset and reinitialised with its existing settings. If the software is currently capturing, then the capture is paused while the camera reinitialises and then automatically continues from the point of failure.
This function works for any camera and even works if a camera is accidentally disconnected during use. The camera connection monitor function can be disabled during the connection routine if required and the timeouts can be changed from the main options drop-down menu.
AstroDMx Capture implements real-time calibration. The user can capture and apply either a flat field, a dark frame or both and have the software apply the calibration in real-time.
Some cameras, such as uncooled entry level QHY or ZWO cameras, produce lots of hot pixels during long exposures which can make the object of interest more difficult to see on the preview screen. This issue can also skew the histogram (because hot pixels are seen as signal). To fix this issue, it is possible to configure the real-time calibration system to calibrate the preview screen and not affect the saved data. When used in this mode, the histogram will produce a more accurate curve due to the absence of hot pixel noise and the hot pixels themselves are not visible on the preview screen. In addition to dark frames, flat-fields can be applied in this mode.
All camera controls within AstroDMx Capture are context aware. That is to say, only controls valid to the connected camera and its specific setup are shown. For example, if a 12-bit camera is connected in 8-bit mode, then 16-bit options will not show in the UI.
The user can specify the exposure control's range depending on the circumstances and the particular requirements of the intended imaging session. The available exposure range is dependent upon the camera in use.
The software supports all the usual camera controls such as gain, gamma, brightness and contrast etc. If supported by the camera the software also shows controls for the following: USB Bandwidth optimisation, Region of Interest, Chip Temperature, Binning, Realtime Debayering, 16-bit display and save optimisation, together with various other controls.
Most camera controls can be reset to the camera's default by right-clicking the control's slider.
The software supports image flipping and flopping, scaling of the real-time display and shows a real-time frame rate. If a camera has a larger resolution than the real-time display, then the display output is scaled on startup. If the area to be previewed is larger than the screen, then the software will show scrollbars in software acceleration mode or will allow the user to pan if in hardware acceleration mode.
Typing Camera Control Values
As of version 0.68.1, all camera controls can have arbitrary values typed into the control's associated text box. Controls such as gain, gamma, brightness etc are entered as a percentage. The exposure control's value is typed by entering a number followed by either ms for milliseconds, s for seconds and m for minutes.
The following list shows four examples of how to type exposure values.
- 150ms (exposes the camera at 150 milliseconds)
- 5s (exposes the camera at 5 seconds)
- 1m5s (exposes the camera at 1 minute and 5 seconds)
- 75s (exposes the camera at 1 minute and 15 seconds)
- 3000ms (exposes the camera at 3 seconds)
The Enter key must be pressed after entering a value. The software will automatically validate the values entered and warn the user if a value is out of range or otherwise invalid.
ROI Nudge Function
If an object is drifting, the Region of Interest can be nudged during capture. To use this feature, simply press shift followed by cursor controls keys to nudge the ROI. Once the ROI range has been exceeded a message appears on the live preview screen.
The software supports a fully functional histogram. The histogram has the following functionality:
- Modes: Linear and Logarithmic
- Channels: Red, Green, Blue, RGB Average, Luminance, RGB combined and greyscale
- Plots Modes: Dotted line, filled colour, RGB overlay, RGB merge
- Histogram image is saved as a TIFF when capture completes
- Histogram scales when the application is maximised or the control area is made larger or smaller
- Histogram can be disabled
Markers and Guides
It is possible for AstroDMx Capture to indicate to the user if part of an object has reached saturation. Saturated areas are show as one of three different predefined colours or can be set to any colour deemed appropriate by the user. Saturation indication is only visible on the real-time display and will not be present in the saved output. Some cameras don't saturate at the usual expected value, in order to fix this, the software has a saturation sensitivity function. These options are available from the drop-down menus.
AstroDMx Capture also has a reticle which is designed to stay dead centre regardless of the size of the UI or the scale factor of the real-time display. The reticle can be shown in one of three predefined colours or can be set to use any colour deemed appropriate by the user. This option is available from the drop-down menus.
Currently, the software supports the ZWO range of filter wheels.
The software allows the user to give an arbitrary name to each filter and provides a quick and convenient method to change filters during capture. If the user enters the exposure ratios of their filters, the software will automatically adjust the exposure based on the value entered. The name given to the filter will be appended to the file name when saved.
AstroDMx Capture can save in the following formats: SER 8 and 16-bit, AVI, Windows Bitmap, TIFF 8 and 16-bit and FITS. DSLR cameras are also capable of outputting RAW files (Nikon .nef and Canon .cr2 etc).
The software allows the user to specify extensive custom metadata for FITS output as well as automatically adding camera specific metadata (Exposure, Gain, Gamma etc) to the FITS header.
The AVI processor in AstroDMx Capture has been written from the ground up and does not require any external dependencies. Furthermore, it only outputs uncompressed AVI files because compression is not wanted or required in any Astronomical data.
Registax 5 and 6 running under current versions of Wine cannot open AVIX (Extended AVI). The older standard is usually limited to 1GB. To avoid this limitation, AstroDMx Capture can output two AVI formats. The first is a standard AVIX file which applications such as Autostakkert! can open. The second is a custom AVI which makes it compatible with Registax under Wine. AVI files in this mode are limited to 2GB instead of the usual 1GB and for compatibility reasons, the image will be inverted.
The software will output a log file which contains information about the specific capture session.
AstroDMx Capture provides four run modes. They are as follows:
- Frame Limit - To capture a specific number of frames
- Time Limit - To capture as many frames as possible until the user specified time has elapsed
- Timelapse - To capture a specific number of frames after a specified time interval
- Manual - To capture continually until the stop button is pressed
Output File Naming
AstroDMx Capture has a dynamic file naming system. It allows for a user specified file prefix, configurable file index, timestamped files in two different formats and saves individual files (Not AVI or SER) into a timestamped sub-directory. This sub-directory is created each time a new dataset is captured. The timestamp and sub-directory are optional.
AstroDMx Capture is able to debayer the camera's output and display it on the screen using one of four algorithms. It is also capable of saving the fully debayerd output as standard RGB files using: Adaptive Homogeneity-Directed (AHD), high-quality linear interpolation, bilinear interpolation and Nearest Neighbour algorithms.
For performance reasons, the software allows the user to disable real-time debayering but have the display debayerd using a lower quality, less resource hungry debayering algorithm (Nearest Neighbour) while having the output saved as RAW, or choose not to have the display debayered. If no debayering is selected then the display will show a monochrome undebayered image with the bayer pattern visiable. The undebayered output will then need to be debayered during stacking.
The software works with four debayer patterns. RGGB, GBRG, GRGB and BGGR. The software can automatically discover the correct bayer pattern or the user can specify it manually. Depending upon the camera, AstroDMx may be unable to discover the correct bayer pattern and so may show incorrect colours. In such a case, the user can manually select the correct pattern.
AstroDMx Capture supports the following debayering algorithms in order of quality:
- Adaptive Homogeneity-Directed (AHD)
- High Quality Linear Interpolation
- Bilinear Interpolation
- Nearest Neighbour
The highest quality debayering algorithm is Adaptive Homogeneity-Directed (AHD), however, this algorithm is computationally heavy and so should only be used for long exposures. Using this algorithm for short exposures may significantly reduce the frame-rate. The best debayering algorithm for short exposures is High Quality Linear Interpolation.
AstroDMx Capture now has support for motion detection. This functionality has been added primarily for wildlife photography. The Motion Detection function can be invoked from the main drop-down options.
AstroDMx Capture can now be used to save a single image. If the connected camera is a colour camera providing RAW output, then the Snapshot function will automatically save a full colour image debayered using the highest quality debayering algorithm (Adaptive Homogeneity-Directed). The Snapshot mode can be used to save a single frame in either TIFF or FITS formats.
This functionality is primarily for Microscopy but could be used for any application.
ZWO, QHY and Atik Cooling
As of version 0.82.1, AstroDMx Capture now implements cooling functionality for ZWO and QHY cameras. Atik cooling has been implemented in previous versions. This functionality must be supported by the connected camera.
The following is a list of specialist Astronomical cameras that have been directly implemented in AstroDMx Capture and have been tested. The cameras listed here should work "out of the box" and do not need an INDI server. There are some issues associated with the ASI120MC, for more detailed please see the help page.
- Atik 314L
- Atik 314L+
- Atik 314E
- Other Atik cameras should work
- Nikon D50 DSLR (No tethered bulb)
- Nikon D5100 DSLR (No tethered bulb)
- Canon 4000D
- Canon 600D
- Canon 40D
- Canon 500D
- Other DSLR cameras should work but are untested
- QHY 5-II-M
- QHY 5L-II-M
- QHY 5-II-C
- QHY 5L-II-C
- Other QHY cameras should work (Cooling functionality not yet implemented)
- DMK 21AU04.AS (8 bit ADC)
- DFK 21AU04.AS (8 bit ADC)
- DBK 21AU04.AS (8 bit ADC)
- DMK41AU02.AS (8 bit ADC)
- DMK 37AUX273 (requires the libwebcam dependency)
- Other DMK, DFK and DBK cameras should work
- ZWO ASI120MC (USB2.0, 12 bit ADC)
- ZWO ASI120MC-S (USB3.0, 12 bit ADC)
- ZWO ASI120MM-S (USB3.0, 12 bit ADC)
- ZWO ASI178MC (USB3 14 bit ADC)
- Other ZWO cameras will probably work (Cooling has not been implemented in this version)
- Bresser MicrOcular Full HD Digital Camera (8 bit ADC)
- SVBony SV105
- SVBony SV205 (may require firmware upgrade, see the technical help page)
- SVBony SV305
- SVBony SV305PRO
- Lumenera USB2 and USB3 Cameras. Due to SDK limitations, only USB3 cameras are supported on Linux. There is no support for Lumenara cameras on macOS.
The following is a list of UVC compliant cameras which have been specifically tested in AstroDMx Capture. All other UVC compliant webcams and capture cards should work.
- Sweex WC066 HD webcam series (8 bit ADC)
- Philips SPC900NC including SPC800 and Philips 740 flashed to SPC900NC (8 bit ADC)
- Philips 740 ToUCam Pro (mono feed only) map YUYV to greyscale for true mono. (8 bit ADC)
- Philips 690 Vesta Pro Webcam (8 bit ADC)
- Logitech HD C525 (8 bit ADC)
- Microsoft LIFECAM 2 (8 bit ADC)
- Creative Webcam Live (8 bit ADC) Bayer output only.
- Creative Webcam Live (8 bit ADC) JFIF/JPEG output only
- Teslong Endoscope Camera
- Orion Starshoot Solar System Color Imager IV
- All UVC compliant cameras should work
In addition to the camera support, AstroDMx Capture for Linux also supports the following motorised filter wheels. For more information about AstroDMx Capture's filter wheel support please see the Key Feature section on this page.
- ZWO Range of motorised filter wheels
Known Issues | All Platforms
Due to a possible issue with the QHY SDK, AstroDMx Capture occasionally crashes when changing resolution or pixel format. Although this problem was confirmed in 0.88.2, it has not been observed in 0.90.2. This issue is mentioned here just in case it still exists.
All Versions: ZWO USB2 Cameras
There are various issues with the ZWO USB2 cameras running under Linux and macOS. These issues are not caused by AstroDMx Capture but are due to these cameras having an invalid max packet size. These issues do not affect ZWO USB3 cameras.
USB2 ZWO cameras can also be problematic under Microsoft Windows if the hardware is relatively new. For more information about these issues, please see Technical help for Windows
Raspberry PI 32bit (armhf) Due to a recent update to the 32bit Raspberry Pi OS distribution (Buster), it is not currently possible to use AstroDMx Capture in hardware acceleration mode. If you are using the 32bit Raspberry PI OS then you should switch to software acceleration by clicking on Options and then making sure that hardware acceleration is disabled.
Fedora 34: On some installations of Fedora 34, AstroDMx Capture fails to start. In order to fix this, simply remove libstdc++.so.6 from /usr/local/AstroDMx_Capture/lib . I will make a maintenance release to fix this problem in due course.
If a DSLR is set to anything other than Manual then changing the exposure causes a segmentation fault and so AstroDMx Capture crashes. Make sure that the DSLR is set to Manual.
Version 0.78.5: x86-64 Linux
Some ZWO cameras show multiple error messages during the connection routine. This issue will be fixed in the next release but for now, it is safe to dismiss the messages.
Version 0.78.3: x86-64 Linux
Version 0.78.3 requires a CPU with the AVX instruction set. All CPUs manufactured from 2009 should have this support. If you have a CPU manufactured before 2006 then you should not upgrade to 0.78.3.
Version 0.68.1: Ubuntu 20.04 Problems
Problem 1: Ubuntu 20.04 introduces an incompatibility with the version of libstdc++.so.6 distributed with version 0.68.1. If AstroDMx Capture does not start on Ubuntu 20.04 then remove libstdc++.so.6 which
is located in /usr/local/AstroDMx_Capture/lib
Problem 2: New builds of Ubuntu 20.04 cause AstroDMx Capture to take about 20 seconds to start. Systems upgraded from previous versions of Ubuntu are not affected.
Version 0.66.x: Raspberry PI QHY Cameras
Due to an issue in the QHY SDK, long exposures sometimes take longer than expected. Depending upon your timeout settings, the connection monitor might reset the camera. The timeouts can be changed or the connection monitor can be
disabled from the options drop-down menu.
Versions 0.50.x and below
If multiple camera controls are changed during a long exposure then the last control will take effect, all others will be cancelled. For example, if the user changes the exposure to one minute and then immediately changes the gain,
then the exposure control will be cancelled. To avoid this issue, change one control and wait for the exposure to complete.