Skybadger Observatory


Skybadger dome shutter controller

For most the problem is how to justify the cost of a purchased dome drive system compared to a home-built system. For me it was slightly easier - I have a 2.7m dome that isnt a standard manufacturer or for which an Off-the-Shelf system is available. So the only approach is to build my own.

I'd previously built a timing belt dome rotation solution for the first dome I had, about 10 years previously. This used 12v DC car wiper motors and glued belting inside the dome edge and ran a timing pulley against that to drive the dome around. But I haven't motorised a shutter before. The reason to do this is typically to automate the dome for unattended operation. For some systems, there is a cost in added noise of the solution using clanking chain, for example.

The dome rotation is already automated using motors and an encoder into an ASCOM driver and can be found on the ASCOM Dome page


The outside looks like this

and from the side:

The Dome layout

The dome is a 2.7m wholly fibreglass dome. The shutter is in two parts - an upper sliding section and a lower sliding section which tucks under the upper section as it moves up the dome and is pulled out as it comes down. the image below shows the rear section with its power electronics, charge controller, fuse box, remote ASCOM switch, environment sensors and flat field panel.

Below is the interior of the sliding shutter parts, showing the two-part shutter, retaining elastic spring and below-shutter recess for controls.

The bottom of the lower section has a plunger with a mushroom head which I used for locking it using an electronic latch driven by a solenoid. The shutter rides on PTFE glides up and down the slot sides - the glides support the shutter on the edge of the slot and preserve its spacing and alignment to the edge of the slot. One of the key problems I wanted to address in automating this shutter was to prevent the upper shutter running away once it had crested the balance point at the top of the dome and sliding to a slamming crunch on the far side of the dome against the stops in the middle of the night.I had tried several solutions including elastic rope used as springs to keep the two shutter parts engaged but the last solution only survived 6 months of weather.

The other problems were to minimise the intrusion into the slot gap of the drive system, to keep operating noise at a minimum, to provide manual and automatic modes in case of systems failure and to fully integrate into the observatory control system.

As you might see from these project pages, I have written a lot of ASCOM drivers in ASCOM ALPACA as embedded hardware devices using the ESP8266 chipset. These devices have native wifi built in and are quite powerful little beasts. I also run a Node-Red server on the observatory PC with MQTT messaging, openweather api and the Node-Red web dashboard available for integrating. So using that as a basis for driving any solution was an obvious choice for me. I'd spent time looking at other dome and shutter pulley systems like Steppenwolf and Hugh's and chain systems like the Pulsar before coming to something I wanted to try.

The solution I devised took a lot of testing of drive systems, motors and electronics.

To minimise the visual intrusion into the slot space I adopted 1.6mm diameter steel wire rope to pull the shutter up and down, attached to a lower corner in an 'endless-rope' model. The steel wire does the actual pulling: as it pulls the shutter up it rides over the slot-mounted idler wheels on the way up and back through wire cable guides or sheaths for the returning wire.

The problem of the collapsing shutter and its changing length could be ignored since I was only interested in driving the lower edge to carry the entire load. The wire rope needed to be carried over the home-made idler rollers since it also needed to be picked up by the rollers on the way down again. They were turned from NYLON and attached to a lathe-turned alloy mount block which was then body-filler glued to the slot edge at just the right height to pick up the wire while allowing the shutter to ride cleanly over. In the picture you can see the alloy block, the nylon pulley wheel and the transiting wire guide below. There are 4 of these in total from top to bottom. The white object is one of the PTFE glides.

At the top of the run, the motor and its winch bobbin takes a few ( 5 or 6) turns for its winch action and then returns the wire through the cable guides back to the bottom, around an idler pulley there and then finally back to the bottom edge of the shutter.

The drive motor itself is the ubiquitous 12v electric geared motor, effectively a wiper motor but purpose bought for the 20Nm torque requirement that I measured by experiment: I tried various motors and destroyed a few, trying to lift a 20Kg weight off the garage floor as the test. The drive comprises this gearmotor on which is mounted a turned bobbin, acting like a ships sail winch on the coils of wire wrapped around it. The infeed and outfeed of the wire rope is displaced by 10mm or so across the width of the winch to prevent it winding over itself, so by laying a few turns of wire around the bobbin, the bobbin behaves just like a sailing winch it is intended to copy. For this to work, the wire has to be kept under a certain tension and the wire has to play through evenly otherwise it lays over itself and jams.

In the image below you can see the bike wire tensioners from bicycle brake parts, the winch bobbin, and the large motor. It bolts directly to the bulkhead using a length of drilled alloy L bracket.

The motor started off located at the bottom of the shutter opening where it was accessible but there wasn't much space there and when I needed to get a bigger motor it would no longer fit the small cubby hole, so I had to change to mounting the motor at the top of dome, above the telescope. Interestingly, a very small DC motor with a 500:1 gearbox on was also successfully tried but the key problem there with the torque required was getting the pulley not to slip on the small gear axle. It takes more than a 4mm screw on a flat to hold that pulley.

The motor controller also went through a few iterations. While using small motors, small controllers could be used. I started with small PWM DC motor drivers and ended up at a 40Amp controller which could easily provide the 20A stall current of the final motor.

In early use, the fastening point at the lower edge of the shutter just captured the ends of the wire rope under a screw on an aluminium fixing bolted through the shutter. That's not very kind to the rope or your fingers when the rope starts to part and presents nasty sharp wires to the fingers trying to feed it back into a small hole for fastening. Also, the rope stretches a bit after a few operations so needs a re-tensioning capability to take the slack out, otherwise the bobbin doesn't take on the friction necessary to drive the cable without slipping.

In later use, I redid the fastening point as per the picture below - spring tensioners on both upper and lower runs, with cable tensioners for easy take up, proper wire clamps to form wire end loops nicely and small v-groove bearings to take the wire round the corners into the up and down runs. The spring fastening points are the bolts used to mount the mushroom headed bolt used for the dome latch onto the lower shutter. The springs have turned out to be great safety and operating feature. In the picture, the handle provides the inner shutter guide with the wheels which prevent the shutter blowing out and off. To the right is one of the limit switches. The wire guide goes to the slot lower surface, turns the wire around the pulley wheel underneath and comes back to the wire tensioner rig that can be seen on the lower shutter below the handle.

Industrial switches are used for the two range sensors - one represents a closed signal - i.e. the shutter is at the bottom, the other is the fully open signal, i.e. when the shutter is fully at the top. Anywhere in-between is also regarded as open - there will eventually be an inclinometer fitted as part of the controller to register its actual position between open and closed to allow the shutter to be controlled to a part open position. This helps in observing the sun and moon to maximise shade and observer comfort. The switches are glued on to the dome using hot melt glue. This is OK if care is taken cleaning the surface before gluing and the surface isn't in full sun. If it gets too warm, the glue fails. At some point, both of the fixings will be replaced with body filler used as adhesive.

Power is provided by a 100W flexible solar panel on the outside of the dome section the shutter runs over, so while the shutter is open the panel is not charging. Two batteries are used to collect this power - totalling 21 Ah at 12v. A MPTT charge controller, an automotive 6A 12v regulator and a fused distribution point completes the power system. The local devices attached to this mobile power distribution board include the shutter controller, the shutter motor, the dome environment internal sensors, the flat field light tile and two IP cameras currently under test. The last device is an ASCOM ALPACA switch device which controls 4 relays remotely over wifi to the Node-Red web dashboard.

The shutter controller provides a manual and automatic mode of operation. A switch flicks between the two modes. A second switch then operates the dome direction by providing the right signals to the high current driver stage. The driver can take PWM signals for soft speed control. I haven't included that yet... In automatic mode, the controller signals to the motors are allowed through, otherwise the manual inputs from the local switches are fed to the motors. The shutter controller monitors for web calls from the Dome controller and moves the shutter to the tasked position using the switches to detect the travel limits. When opening, the latch is operated automatically by the controller to release the shutter for a short period until clear of the lock. Nothing needs to be done but close it to lock it in the down/close direction.


This project has taken a lot of elapsed time but maybe a month or so of duration - i.e. time I actually spent on the project. Over about 4 years: I had to work out whether the winch model would work, what bobbin profile was required, where I could source a winch from or whether to make my own, test some motors for torque and size, turn the bracketry and wheels and then finally fitted the spring tensioning system.


The system cost was relatively low.

  • £180 for the motor from rapid electronics
  • Wire rope is £5 for 10m from various stockists including B&Q and ebay
  • Wire rope clamps are a few pounds each, also including Amazon, Ebay and B&Q
  • Aluminium bracketry was from the scraps box but can be bought online from various metals shops for a few pounds.
  • Pulley wheels turned from material again in the scraps box but can be bought as offcuts for a tenner
  • Wire guides bought in 5m lengths from a bike shop website for about £15. The sort used for bicycle brake and gear wire guides.
  • A few bicycle brake and gear end nipples and trension adjusters from the scrap bikes bin
  • A few bearings for the bottom wire pulley from teh scrap box
  • £2.50 for the ESP8266 controller, £2 for the PCF8574 i2c expander chip and assorted Resistors, capacitors and connectors for a few pounds more.
  • £12 for the BTS7960 motor drive unit from Amazon
If I replaced the driver I would use a Cytronics i2C motor controller for direct control rather than requiring bit bashed signals. These are also cheap and can control 30A of current.

Risks and issues

The motor is sufficiently powerful to probably pull itself from the mountings if the batteries lasted and the shutter ran up to the hard stops for long enough. To try to prevent this it is individually fused to 10A and the 12v regulator limits that further to 6A. The motor in stall mode also drains the batteries very quickly. They are not really meant for this type of load. The way to manage this for me is to provide a way to remotely charge the battery at night. So far this has taken the form of a wireless charging coil capable of 100W through 10mm of free air from Taidacent via Amazon.com. In the case of the batteries going flat, I can rotate the dome to align the charging coils and recharge that way by turning on the charger from the mains remotely using a wifi remote mains power switch. That is on the bench right now for testing.

The Electronics

As mentioned, the controller is an ESP8266-01 wifi module which is programmable using Arduino tools. Its a 3.3v device so the device bottom left in the picture is the 5v to 3v3 regulator along with another 12v to 5v regulator to manage the power drop from the supply. The ESP is the red/blue led device with the visible wiggly wifi aerial. It is tiny but consumes between 50-250mA depending on WiFi activity. To the middle is the i2c expander. This turns an industry-standard 2-wire 10 bit serial control signal into an 8-bit parallel set of signals, 1 bit for each input or output required. One bit does nothing but flash at a 1 second interval to indicate life. Another bit provides the control to the MOSFET transistor buffered through a 2N2222a NPN transistor that powers the solenoid lock and is protected by a flyback diode. Two are the switch inputs to the controller and two more are outputs to the motor controller that configure the H-bridge motor driver. The section at top right provides the switch signal inputs and the signals from the manual switches that are then fed to the motor driver unit through the 6-pin connector. The code is available if interested at Github. As mentioned, it implements the ALPACA interface which can be operated manually via curl commands, it also supports remote debug over telnet, remote firmware update through the browser and remote querying for state from the browser.


The dome power is enabled by script (windows batch file using curl commands) or manually through the web dashboard. That means turning on the mount remote switch power feeds and then turning on the shutter control as part of the observatory start up sequence. The shutter control is turned on through the dome remote switch and integrates into the ASCOM dome controller and operated directly from the observatory command and control software. As discussed elsewhere, Voyager is used in the Skybadger observatory and opens and closes the dome based on observing conditions inputs from external sources. My external sources are the openweather api forecast for my location and my weather station (itself a rebuild using an ESP of an old maplins weather station to wifi enable and integrate it into MQTT data collection). The weather and conditions get reported to an ASCOM observing conditions hub which Voyager queries for Safety events. Here's a short video of the shutter in operation.

Responsive Embed

Create a responsive video and scale it nicely to the parent element with an 16:9 aspect ratio

Final disclosure.

All the drivers (observing conditions, safety, dome controller, shutter controller ) are all built and operating with Voyager, I have finally debugged the shutter control logic for full automatic operation from the Voyager manual and automatic interfaces while all the time the manual switching has worked like a dream... What I find most satisfying is the way the spring tensioners move in and out like pistons as the winch drives the shutter up and down and they take up the slack at varying poiunts in the system. And that its a whole lot quieter than the manual process before. And it means I can think about leaving the dome to finish an imaging session on its own. As long as the dome power lasts out.

Test code samples

curl -v http://espdsh00/status curl -v -X PUT -d"shutter=open" http://espdsh00/shutter curl -v -X PUT -d"shutter=close" http://espdsh00/shutter curl -v -X PUT -d"shutter=abort" http://espdsh00/shutter curl -v -X PUT -d"latch=powered" http://espdsh00/latch etc..