Dome control



I’m just finishing to create my dome controller (roll-off roof), and I have few questions about it :

  • is there a way to set an option in sgp where moving the telescop is not allowed as long as the shutter is not in the status “open”. actually, I do some tests with the simulators, but if I connect the dome and let it closed, I can nudge the mount, run some sequences …

  • 2nd question : is it possible to change the polling delays values in SGP ? I see it’s available in Maxim, and I’m really interesting by these options. by default in SGP, seems to be 1sec or less which is bad for my dome as it has to request the shutter status to my controller and then run serial commands every seconds (5 seconds will be more than enough)

thanks in advance for your help !!


The ASCOM telescope Park method does this and SGP supports it. In SGP set the dome control options to park the telescope before closing the roof and open the roof before unparking.

It’s really up to you to handle the frequency of checks of the hardware in your dome controller. The application should be able to call functions as fast as it likes. You may need to set up some sort of throttling in your driver so that hardware is interrogated at a frequency of your choosing. If the application calls more frequently it gets the last value until you choose to check the hardware again.

Chris R


The “Update Frequency” should limit how often your hardware is called most of the time. However you really need to handle threading and throttling in the ASCOM driver like Chris is recommending. It’s not all that difficult to implement. Minimally you should throw a read/write locking mechanism (mutex) around the serial communications to keep things atomic (this will keep your serial communication thread safe). if you need to throttle just create a caching object and returned cached values when LastReadTime + Throttling < CurrentTime

I’ve done this to a handful of drivers. It really only takes about 15 minutes to make them work with a highly concurrent multi-threaded application like SGP.



Thanks Jared, Chris,

I was thinking about enhancing my code with this multhreading option, but as I’m not a VB expert, I tried to use shortcuts :wink: so I will update my code :wink:

for this other point, it still brings me some questions… ok, when I unpark or park my mount, I can also select an option in SGP which will also open/close the roof BUT what happen :

  • if my mount is unpark and I click on “close shutter” in SGP ? apparently I still can move my mount which is not good for me …
  • if the shutter is in error state, what happen if I try to nudge the mount (I can not test it in simulator mount, and do not really want to try it in my remote observatory …)

for me an option like checkboxes where I can choose what to do in the different state of the shutter like :
do not allow to move the mount as long as the shutter is not in “open” status (or maybe even more granular)


We don’t have options for manual moves. We figure if you’re manually moving your gear then you’re responsible for it being safe. We can’t guard against everything and adding lots of options about when it’s safe and not safe just isn’t something we’re interested in doing. Essentially if you move your gear you are responsible to make sure it’s safe.

If you have certain areas where it is NOT safe to slew your mount I would highly recommend adding some sort of protection that doesn’t allow your mount to be powered if your observatory is closed or (if the mount has the capability) forces it to be parked when the observatory is not open.

You can always create a wrapper around the telescope driver that also connects to your observatory and only relays commands to your scope when it is safe to do so. That would probably be the easiest to implement but also not as safe as a hardware implementation.



ok, thanks again for your quick answers. I will add external controls.
maybe simulator is not working fine, but as far as I can see, when I select “simulator” for camera, dome and telescop and connect it, + set the shutter with the “slave” option and run a sequence, then sutter does not open and sequence starts… this is strange