Friday 4 December 2020

AstroDMx Capture for Windows Released

 AstroDMx Capture for Windows Released


I am pleased to announce that Nicola has released AstroDMx Capture for Windows. alongside major releases of AstroDMx Capture for macOS, and Linux, including the Raspberry Pi 64-bit and 32-Bit ARM architectures.

All of the software can be downloaded at https://www.astrodmx-capture.org.uk/

Some notable features of AstroDMx Capture

  1.      AstroDMx Capture has a context aware UI which presents only relevant functions to the user.
  2.     Where the camera supports a Region Of Interest, AstroDMx Capture allows the Shift, and cursor control keys to be used to nudge the ROI in order the track the planet or other feature if it is tending to drift out of the ROI.
  3.     Controls tethered Canon and Nikon DSLRs and enables them to be used to capture images just like any astronomy camera. The camera control is direct not via a secondary abstraction layer. This support is for camera models that the manufacturer supports for tethering. This is quite a long list of Canon and Nikon models. In the Windows version, the camera driver must be changed via software that can be downloaded from the same site as AstroDMx Capture. The driver change is easily reversed if this is ever required.
  4.     Has real-time image calibration with dark-frames and or flat-fields. The calibration frames can be captured and saved by AstroDMx Capture.
  5.     Has frame-integration to sum up to 250 short, 8-bit exposures. The summed frames can be saved as 16-bit images if required. This can be useful to increase the sensitivity of a short exposure, 8-bit camera.
  6.     Has non-destructive Software Controls of Gain, Gamma, Brightness and contrast. These can be used to make a more pleasing image on the display without affecting the data that are saved. However, if required, the applied controls can be applied to 8-bit saved data. This can be very useful if a camera with few if any controls is being used.
  7.     AstroDMx Capture has a group of Transforms that can be applied to the preview image to enable 16 bit images to become visible while they are being captured. These Transforms in combination with the non-destructive Software Controls allow the optimisation of the preview image of a 16-bit Deep Sky Object.
  8.     Motion detection can be set so that the camera only saves images if motion has been detected. The sensitivity of the detection can be controlled. This function has a variety of uses and one example is the monitoring of nest boxes.
  9.     AstroDMx Capture has a connection monitor that attempts to re-establish connection with the camera if the connection is lost for any reason, for example accidentally knocking the USB cable in the USB port, or if the camera for any reason drops its connection with the computer. This feature usually re-establishes connection and the capturing carries on as if undisturbed.
  10.     A histogram can be enabled or disabled and displayed in linear or logarithmic mode.
  11.     Markers and guides can be set to show a variety or reticles and saturation markers of various colours if required.
  12.     AstroDMx Capture can control ZWO filter wheels.
  13.     AstroDMx Capture allows the user to specify custom metadata for FITS output as well as automatically adding camera specific metadata (Exposure, Gain, Gamma etc.) to the FITS header.
  14.     AstroDMx Capture has a snapshot mode that saves a high quality, uncompressed Tiff image, or Fits image into a snapshots folder. This is useful for microscopy.
  15.     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; Time-lapse - To capture a specific number of frames after a specified time interval; Manual - To capture continually until the stop button is pressed.
  16.     AstroDMx Capture has a dynamic file naming system. It allows for a user specified file prefix, configurable file index, time-stamped files in two different formats and saves individual image files (Not AVI or SER) into a time-stamped sub-directory. This sub-directory is created each time a new data-set is captured. The time-stamp and sub-directory are optional.
  17.     Saved file formats are Tiff, Fits, BMP, SER, AVI. The Fits files are saved to the latest Fits standard.

Results from different cameras and scopes and AstroDMx Capture for Windows

Recent test results from AstroDMx Capture for Windows with a QHY 5M-II-C camera or a USB tethered Canon 4000D DSLR with an f/5.5, 80mm ED refractor mounted on a Celestron AVX EQ, GOTO mount.

The equipment with the QHY 5M-II-C


Screenshots of AstroDMx Capture for Windows capturing 16-bit data on the Orion Nebula with a QHY 5M-II-C camera.



Final image of M42/43




The equipment with the Canon 4000D DSLR

f/5.5, 80mm ED refractor mounted on a Celestron AVX EQ, GOTO mount.

Screenshot of AstroDMx Capture for Windows capturing 16-bit data on the Orion Nebula with a USB tethered Canon 4000D DSLR camera.



Final image of M42/43 and the Running Man Nebula





Using the f/5.5, 80mm ED refractor mounted on a Celestron AVX EQ, GOTO mount and a QHY 5L-II-C camera.

AstroDMx Capture for Windows was used to capture 16-Tiff data on the globular cluster M2


Using the f/5.5, 80mm ED refractor mounted on a Celestron AVX EQ, GOTO mount and a QHY 5L-II-M camera.

AstroDMx Capture for Windows was used to capture 16-bit Tiff data on the globular cluster M15

Using the same refractor plus the 
QHY 5L-II-M camera, the 88.8% waxing Moon was captured as 8-bit SER files using AstroDMx Capture for Windows. 
The data were stacked in Autostakkert! and stitched using Microsoft ICE.

88.8% waxing, gibbous Moon




H-alpha Solar Imaging

AstroDMx Capture for Windows was used with a DMK 21AU04.AS camera and a Coronado Solarmax II, 60, BF15 H-alpha scope mounted on a Celestron AVX EQ, GOTO mount.

Screenshot of AstroDMx Capture for Windows capturing a SER file of H-alpha solar data

Final Mosaic of 4 overlapping panes, stitched in Microsoft ICE


Screenshot of AstroDMx Capture for Windows capturing H-alpha data using a x 2.5 Barlow

Final image of AR 2786 and AR 2785 made by stacking the best 5000 frames of a 10000 frame SER file




Calcium K-line Solar Imaging

AstroDMx Capture for Windows was used with a DMK 21AU04.AS camera and a Coronado CaK PST scope mounted on a Celestron AVX EQ, GOTO mount.

Screenshot of AstroDMx Capture for Windows capturing Ca K-line data in a 1000 frame SER file


Final image of AR 2786 and AR 2785 made by stacking the SER file in Autostakkert!




AstroDMx Capture is now available for 

    • Windows, 

    • macOS, 

    • Linux, 

        ◦  Including Raspberry Pi 64-bit and 32-bit ARM architectures

Nicola has worked strenuously to bring AstroDMx Capture to all of the major computer operating system platforms. As well as working on the common code-base to bring more features and to rectify any issues that may arise, she also intends to complete the work that she started earlier in the year, and bring a version of AstroDMx Capture to the FreeBSD operating system. Because of lack of SDKs for this platform, the FreeBSD version will be limited to UVC devices and USB tethered DSLR cameras. 

It is important to be able to move between operating systems and still be able to use the same imaging software, and this is what can be done with AstroDMx Capture. 

You might think that preparing software for release 'simply' involves writing the code. Of course, writing the code is necessary but not sufficient for the release of a piece of software. AstroDMx Capture now has more then 55 Klocs (50 thousand lines of code), so it is obvious that this will have to be checked every which way to make sure that it works as intended. Checks have to be made for deadlocks, memory leaks, data races and race conditions as well as tiny logical errors that can make the program work incorrectly or not at all. Worst of all are heisenbugs, named after the Heisenberg uncertainty principle. A heisenbug is a bug that disappears or changes its behaviour when you try to study it. They are real and we partly understand why they might behave the way they do. However, it adds to the difficulty in tracking them down.

When you are working with a single code base across three different platforms (operating systems), with two of them being essentially Unix systems (macOS and Linux), and one of them (Windows) working in a significant number of ways, differently from the other two, it is not surprising that new ways have to be invented to get the single code base to run on all of the platforms. Even when you are working within a given OS (Linux), there is a wide range of distributions ranging from the cutting edge Fedora that has for example, kernel updates every week, to Debian and Debian-based distributions which tend to track older kernels and libraries. This means that it is vital to check that the dependencies are always satisfied correctly, whatever distribution you are using. Then, of course, there are different architectures to take into account such as the 32-bit and 64-bit ARM architectures used by the Raspberry Pi computer as well as the X86-64 architecture of Intel and AMD processors supported by the software. 

So, you have to compile the compilers required to compile for the different operating systems and to set up independently the different environments for each of the operating systems so that the code can be compiled for that platform.

There are other factors to be considered, such as the age of the CPU which can vary quite considerably among computers used by users of the software. It would be possible to compile for the lowest common denominator, but that would compromise the performance achievable by more modern CPUs. AstroDMx Capture uses hardware acceleration in all versions and optional software acceleration in the  Linux versions. 

The Linux version checks on the CPU in the computer on which it is installed before it attempts to run to make sure that the CPU has the Intel Haswell microarchitecture. There are versions of AstroDMx Capture for Linux that will run on pre-2013 CPUs before the Haswell architecture was introduced, and for more modern CPUs with the Haswell architecture. The checks are made  in case the user has downloaded the wrong version, and to prevent the software from just crashing, as well as advising the user that they have downloaded and installed the wrong version.

This brings us to the delivery of the software to the user via the download website. The website has to be maintained in such a way that it is search engine optimised, and structured so that the visitor will be able to find the software that they are looking for. Also, explanations have to be presented that will assist the user to download the correct version of the software (assuming the user takes the time to read the instructions). It is a shame to receive a crash report, only to find that the user has downloaded and attempted to run the wrong version of the software. Then there is the protection of the website itself from vulnerabilities by making sure, for example, that website security is kept up to date and that the certification is in date. Of course a problem reporting system has to be incorporated into the website.

Before any release is made, be it a maintenance release or a major release, exhaustive testing has to take place

It has been a mammoth task for Nicola to bring a common code base to Linux, macOS and then to Windows, which as I mentioned earlier, is different in many significant ways from Unix systems. Many problems have had to be solved in order to do this and Nicola has done an inordinate amount of work to bring it to fruition. I have enjoyed being a lesser part of the process by suggesting, testing and obtaining image data. We hope that you will enjoy using AstroDMx Capture.

I shall be writing a number of short tutorial type articles on how to use different functions of AstroDMx Capture that will supplement the articles that I have already written on this blog.