Multiple cameras on the same telescope mount with GoQat

Sometimes you might have more than one camera on the same telescope mount and you want to make simultaneous exposures with each of them. You've also got a number of targets to look at during the night and you want to make sure that the mount doesn't start slewing while one of the cameras is still exposing. This is easy to do with GoQat!

Creating a list of targets

Let's start by creating a list of targets in a text file with right-ascension and declination coordinates like this:

Procyon 07:39:17 05:13:09 Sirius 06:45:08 -16:43:23 Betelgeuse 05:55:10 07:24:26 Aldebaran 04:35:55 16:30:30

We will load this list into GoQat but the telescope controller link must be opened first. If you have INDI installed, you can start indiserver with the indi_simulator_telescope driver and select that as the telescope controller from the Devices menu. Then open the telescope link on the Telescope tab. There's an empty drop-down combobox to the right of the GoTo button; click the combobox once to reveal the '...' option and click again to open the file chooser dialog. Select the list of targets and click the 'Open' button. This loads your targets into the combobox and sets the list to the first item.

Moving from target to target

Ideally we'd like to have the telescope slew from target to target automatically. You can do that with the GoToNext task. Clear the task queue by clicking 'Clear tasks' on the Tasks tab and click 'Edit tasks...' to open the tasks editor. Click the GoToNext button to add the task to the task queue. Now click the Play button on the Tasks tab and see that the telescope mount slews to the first target in the list while setting the combobox to the next entry in the list. It also sets the 'Object' FITS keyword on the Camera tab. Click again until you get to the bottom of the list and you will see that the combobox is then reset to the first item. You don't have to start from the first item - you can select any item you like, but the list will always be reset to the first item when it gets to the end.

Synchronising cameras

So now, having loaded our target objects into the GoTo combobox, we can synchronise two cameras on the same mount with two instances of GoQat like this:

Task queue for instance 1, controlling the mount and one camera:

GoToNext SyncWait 2 Expose TARGET - 1200 1 1 1000 1000 1 1 -10.0 SyncWait 2 GoToNext SyncWait 2 Expose TARGET - 800 1 1 1000 1000 1 1 -10.0 SyncWait 2 GoToNext SyncWait 2 Expose TARGET - 1000 1 1 1000 1000 1 1 -10.0 SyncWait 2 GoToNext SyncWait 2 Expose TARGET - 1200 1 1 1000 1000 1 1 -10.0

Task queue for instance 2, controlling the other camera:

SyncWait 1 Expose TARGET R 400 1 1 1000 1000 2 2 -10.0 Expose TARGET G 400 1 1 1000 1000 2 2 -10.0 Expose TARGET B 400 1 1 1000 1000 2 2 -10.0 SyncWait 1 SyncWait 1 Expose TARGET R 270 1 1 1000 1000 2 2 -10.0 Expose TARGET G 270 1 1 1000 1000 2 2 -10.0 Expose TARGET B 270 1 1 1000 1000 2 2 -10.0 SyncWait 1 SyncWait 1 Expose TARGET R 350 1 1 1000 1000 2 2 -10.0 Expose TARGET G 300 1 1 1000 1000 2 2 -10.0 Expose TARGET B 420 1 1 1000 1000 2 2 -10.0 SyncWait 1 SyncWait 1 Expose TARGET R 300 1 1 1000 1000 2 2 -10.0 Expose TARGET G 300 1 1 1000 1000 2 2 -10.0 Expose TARGET B 600 1 1 1000 1000 2 2 -10.0

You can start either task queue first. If you start instance 1 first, the telescope slew will commence immediately. If you start instance 2 first, it will wait at 'SyncWait 1' until the slew has completed. Both task queues will then start their imaging sequences. For the first sequence, instance 1 is taking an unfiltered and unbinned exposure of 1200s with a chip temperature of -10.0C. Instance 2 is taking a series of three colour exposures through R, G and B filters, binned 2x2, of 400s each. When each queue finishes its exposures it will wait at the second SyncWait task for the other instance. Only when both exposure sequences have finished will instance 1 make the next telescope slew. Instance 2 proceeds to the third SyncWait task, where it waits for the slew to finish. The important thing is to match up the number of SyncWait tasks; instance 1 has two between each exposure sequence so instance 2 must have two as well.

Automated sky survey

If you want to do an automatic sky survey, perhaps studying galaxies of similar brightness where all exposure lengths are the same, it's possible to take advantage of a special feature of the GoToNext task to make things even simpler. If GoToNext is used in a 'While ... EndWhile' loop, it will always cause the loop to stop executing when the final object in the GoTo combobox has been reached. To see how this works, create a task queue that looks like this:

While 1 GoToNext PauseFor 3 EndWhile

Click 'Play' on the Tasks tab and watch what happens. When the final slew has been made, the PauseFor task is executed, but since this is now the end of the target list, the task queue continues on through the end of the 'While ... EndWhile' loop. Normally a loop that begins with 'While 1' would continue to execute forever. There's nothing after the EndWhile statement in this example so the task queue stops.

Now we can have two very simple task queues like this:

Instance 1:

While 1 GoToNext SyncWait 2 Expose TARGET - 1200 1 1 1000 1000 1 1 -10.0 SyncWait 2 EndWhile

Instance 2:

While 1 SyncWait 1 Expose TARGET R 400 1 1 1000 1000 2 2 -10.0 Expose TARGET G 400 1 1 1000 1000 2 2 -10.0 Expose TARGET B 400 1 1 1000 1000 2 2 -10.0 SyncWait 1 EndWhile

This will iterate through every object in the GoTo combobox and then the instance 1 task queue will stop. Instance 2 will wrap round and wait at the first SyncWait task, but could be stopped by clicking 'Stop' on the Tasks tab.

And that's it - synchronising operations with GoQat really is very simple.

One last thing...

There's a final bit of polish which is nice to have. When you save an exposure with GoQat, it writes the object name and telescope mount coordinates to the FITS header. That's all very well for the camera that is controlled by the instance of GoQat that's operating the mount (instance 1 in the above example), but what about the camera controlled by instance 2? It has no idea where it's pointing or what it's looking at.

GoQat has a solution for this with its 'Status' directory, by default in the GoQat folder of your home directory. Instances of GoQat higher than instance 1 have the instance number appended to it like this: 'Status_02' for example for instance 2. You can change the location of the directory by starting GoQat with the '--statusdir' or '-u' option, just as for the Sync directory in the previous tutorial. The Status directory contains information relating to GoQat's current state that is useful to external applications. Two of the items that are saved there are the object name and telescope coordinates.

To write the object name and coordinates from a Status directory entry to the FITS header when saving an image file, go to the Files tab (in instance 2 for this example) and click on the directory chooser button in the 'Data source folder' section. Pick the Status directory belonging to instance 1. Then click the 'Use for object name' and 'Use for telescope coordinates' checkboxes as desired. Now those details from your chosen instance of GoQat will be saved in the FITS header of the image file.