I program using a computer language called LabVIEW. LabVIEW is designed for real-time control and data aquisition applications which is what I did for 30 years as an Electrical Engineer in a Steel Company. I formed my own internet company back in 2003. My company is called Quilting Mouse Technologies.

Pro-Q Designer

The first application I sold on the internet is called Pro-Q Designer. Pro-Q Designer is a computer aid drafting program for robotic quilting machines. Yes…robotic quilting machines do exist and many quilters has set-up cottage industries using them. I still sell it but the 2008 recession has taken a big bite out of my sales. Disposable income is a distant memory for most folks these days.


This is the first program I have written for the astrophotography community. CaLIGHTs is a LIGHT frame calibration tool designed to help beginner and advanced astrophotographers learn and use master BIAS, DARK, FLAT and DARKFLAT frames. I offer CaLIGHTs as “donation-ware”. All that means is that the program is free to install and run. All I ask is that you consider a donation if you feel CaLIGHTs has been useful. Click on this link to learn more about CaLIGHTs

I have a few more programs I am considering making available to the astrophotography community. If all goes well I may be able to offer some of them later in 2021. All of the following software has been custom built for my set-up. Part of the development I need to perform is to connect to my cameras via ASCOM instead of a dedicated DLL. Everyone has different equipment so using a standard interface like ASCOM make sense. Luckily, most of this work can happen over the winter months.

Backlash Assistant

Backlash Assistant is a tentative name I have for a program I wrote and use full time whenever I am imaging. It communicates with PHD2 Guiding via it’s server and also my Celestron CGEM mount via ASCOM. My CGEM mount has ~50 arc-seconds of declination backlash. Ordinarily this much backlash causes big issues with guiding.

Backlash Assistant maintains a model of my mounts DEC backlash and watches PHD2 as it makes corrections. My program can tell when PHD2 need assistance and will co-ordinate with PHD2 to issue additional DEC guide pulses to quickly move the DEC axis thru it’s backlash. The net result is that Backlash Assistant dutifully moves the DEC axis thru it’s 50 arc-seconds of backlash without PHD2 realizing it’s happening. PHD2 thinks that my CGEM mount has only 5 to 10 arc-seconds of DEC backlash.

I have logged 100’s of hours using Backlash Assistant and it is very reliable. It is routine for my CGEM mount to slew thru a 50 arc-second backlash event while autoguiding and my PHD2 guiding graph barely shows any issues. Stay tuned.

Flex Comp

I have been using Flex Comp for 100’s of hours. I use an 8″ EdgeHD SCT and a separate guidescope when I image. Normally this combination is a recipe for differential flexure which easily causes oval stars in your LIGHT frames. I have measured my system’s differential flexure and it can be as bad as 40 arc-seconds per hour. With Flex Comp I have been able to routinely take 600 second exposures with nice round stars.

Flex Comp will detect when a new LIGHT frame is saved to disk. Flex Comp will then read the LIGHT frame and quickly build a database of where all of the stars are located. DSLRs and dedicated astrocams that generate FITS files are supported. As each LIGHT frame is analyzed, Flex Comp will determine if the stars in your LIGHTs are drifting over time. Flex Comp has the ability to translate this pixel drift into RA/DEC drift.

Flex Comp communicates with PHD2 Guiding via it’s server. Flex Comp will send commands to PHD2 Guiding causing PHD2 to ramp it’s guiding set-point in the equal but opposite direction so that the LIGHT frame pixel shift stops. A typical method is for me to start taking 60 second exposures and let Flexure Comp get PHD2 up to speed. After about 4 or 5 exposures I switch to 600 second exposures and Flexure Comp carries on making adjustments after each exposure to keep the LIGHT frame pixel shift in check.

The big caveat with using Flex Comp is that you can’t dither. This is not a problem for me because I use CaLIGHTs to calibrate my LIGHT frames. Dithering is typically used to minimize the damage caused by DARK current or HOT/COLD pixels. CaLIGHTs virtually eliminates DARK current and easily identifies bad pixels…so I end up having more imaging time available for taking LIGHT frames.

I also like the fact that I can keep using my guidescope with it’s large field of view. The standard solution to differential flexure is to use an off-axis guider with it’s much smaller field of view and it’s issues finding suitable guide stars. I probably will switch to an off-axis guider some time in the future but with Flex Comp I can take my time. I have used Flex Comp with my Nikon D5300(Ha Modded) and this year with my QHY294C. Watch this space!

PA Tool

PA Tool is my tentative name for a program I have written to polar align my GEM mount using my guidescope. I can typically begin polar aligning as little as 10 minutes after sunset. Your guidescope needs to have a minimum field of view of roughly 2 degrees.

PA Tool communicates with my QHY5II-M guide camera via the qhyccd.dll and maintains a real-time display of the image with adjustable gain and exposure. PA Tool also uses ASCOM to allow me to slew my GEM mount. Initially I will slew my mount until Polaris appears in my guide camera’s field of view. If I then use my mouse to click on Polaris a centroid calculation will activate to track Polaris. PA Tool will then briefly slew my mount’s DEC axis so that the guidecamera rotation angle can be determined.

When I now slew my GEM mount’s RA axis, PA Tool will track Polaris. Because I only using the RA axis, PA Tool knows that the motion of Polaris in my guide camera field of view will be a perfect circle. PA Tool will then build a database of Polaris locations in each image and calculate the radius and center of rotation of the tracking circle.

I had previously entered the image scale of my guide camera in Arc-Seconds per pixel. PA Tool will then convert the pixel locations into arc-seconds and will determine exactly where Polaris needs to be located to polar align my mount. At this point I will stop slewing my mount’s RA axis and begin making adjustments to Alt and Azm. PA Tools graphically overlays the required movement as a straight blue line on the real-time image from my guide camera. Using the PA Tool screen I will make Alt/Azm adjustments and see real-time updates of the movement of Polaris. The Polaris tracking logic will also provide real-time updates of the residual polar alignment error.

I put a video of PA Tool up on youtube. The video starts just after I located Polaris with my guidecamera. I created PA Tool a few years ago but have not got around to making it available to everyone. There is a lot of work involved is converting “I and my” into “you and yours”. Maybe…someday.


This is a routine I created to help me align and calibrate my Celestron mount. I use Nexremote to perform a 2+4 calibration but I expect I could use the hand controller as well. My search routine runs while Nexremote is performing the calibration. As Nexremote slews the mount to each star I watch the live video stream from my guide camera. Typically the star will pop into view when the slew completes.

I perform this calibration remotely. I use a 80′ powered US2 cable to connect my computer in my home to a USB port at my mount. The blackflies and mosquitoes are unhappy…but I’m not.

If I don’t see the star I click the Search button which starts slewing the mount using a square spiral search pattern. The Search button changes to a red colour and the text changes to Active. When the star streaks across the screen I click the search button once again which stops the search. Just above the Search button is my “trail of crumbs” graph that shows the RA/DEC movements of the mount as a trail of crumbs. This allows me to keep track of what’s happening and also decide how to backtrack should the star streak off of the screen before I react.

Once I have the star in view I click on the star which causes a circle to appear around the star. Search is now tracking the star. I now click on the Centre Star button which turns on a position regulator that repositions the star to the dead centre of the screen. Search uses a backlash compensated position algorithm to consistently position the mount.

I then tell Nexremote that I have the star centred in my eyepiece. Nexremote happily does it calculations and moves on to the next star. This whole calibration process ends up being like a video game that is fun to play.

I put together this video to demonstrate Search. The video starts after I have centred a star. I demonstrate the square spiral search and then move the star to a random position off-screen. I then use the Search button to find the star. Finally, I use the Centre Star button to reposition the star back to the dead centre of the screen. Maybe someday…


SPEC is a software based Periodic Error Correction (PEC) solution for my CGEM Celestron mount. I have been using SPEC for my CGEM mount since 2014. It uses the PHD2 Guiding server and an ASCOM connection to my mount. It also uses custom Nexstar commands. SPEC has gone thru several iterations but the main attributes have always been to offer a real-time PEC learning facility that is designed to learn and adapt while imaging. If I have great quality skies I can enable the learning facility and it will continuously adapt and refine the PEC table yielding tight RA guiding.

My CGEM mount has roughly 20 arc-seconds peak-to-peak of periodic error in it’s RA axis. This periodic error also includes a significant 15 second oscillation that is very fast compared to the 480 second worm gear period of rotation. Adding to this is the fact that the RA gearbox has non-integer gear ratios. It takes 3 full worm gear rotations for the periodic error waveform to repeat.

Sample SPEC LEARN history displaying the current adaption of the 3 cycle PEC curve for my Celestron CGEM mount. Each adaption required one rotation of the worm gear. The previous 639 adaptions are also shown as a faint shadow. On the right is a harmonic spectrum of the current adaption. The dreaded 8:3 harmonic, attributable to the non-integer gearing, is hi-lighted by the yellow crosshairs.

The standard one rotation look-up table approach is not suitable for my CGEM. I believe this explains why most CGEM users don’t bother using PEC. The “as-shipped” PEC logic in my CGEM mount has an 88 element look-up table which translates into one element for roughly every 4-5 seconds.

SPEC uses Nexstar commands via ASCOM to synchronize it’s algorithms to both the high resolution encoder on the RA axis and the index marker that uniquely identifies the worm gear rotation. This allows SPEC to extremely accurately track the worm gear rotation night-after-night.

SPEC maintains a 1,440 element look-up table which translates into one element per second for three consecutive rotations of the worm gear. SPEC uses a one second heart-beat approach to update my CGEM mount so that it’s periodic error is very tightly compensated. The once-a second approach puts virtually no load on my computer’s CPU or the Nexstar communications to the CGEM. I have been using SPEC for 100’s, if not 1000’s of hours.

SPEC has a SYNC function and a LEARN function. The index marker on my CGEM yields a pulse once per revolution of the worm gear…BUT…the periodic error of my CGEM mount is three full rotations of the worm gear. The SYNC function works while PHD2 is guiding to determine which of the three rotations of the worm gear best explains what PHD2 is doing right now to guide the mount. It normally takes 1/3rd to 1/2 of a worm gear rotation (approx. 200 seconds) to determine this status. The SYNC function pops-up a window with three bar graphs that visually inform the user what the current “voting” status is. After about 200 seconds it becomes obvious what worm gear rotation is “winning the election”. The user can then use this information to choose which worm gear rotation should be declared active.

LEARN watches how PHD2 is making corrections to the mount and, as each rotation of the worm gear completes, LEARN will apply an adaption to the PEC table. There are several controls available to the user to refine how aggressive this learning feature is. There is also graphs displaying the previous and current PEC curves.

But what about that pesky 15 second oscillation????

SPEC uses a digital band-pass filter especially designed to identify when PHD2 Guiding is trying to correct for this very fast oscillation. A 15 second oscillation is 32 times faster than the worm gear rotation and it is too fast for PHD2 to correct with pulse guiding. This digital filter is synchronized using the high resolution RA axis encoder and it has an integration feature that allows it to identify how big this oscillation is at any moment. This oscillation is then fed back into the RA axis positioning system so as to eliminate the associated guiding errors.

The end result of all of this bother is that I can guide with my non-integer gearing CGEM mount with a total RMS guiding error of 0.5 arc-seconds. I routinely take 600 second exposures with a 2032mm focal length EdgeHD SCT and a separate guide scope. The resulting stars are nice and round. I don’t use dithering and my astrophotos never show dark current effects. And this is with a mount having 20 arc-seconds of periodic error and 50 arc-seconds of Declination backlash. I want to believe that this is how a retired electrical engineer enjoys his hobby…I’m not bored!