
The Velleman K8055 is the USB controller used with my old Exploradome, and was controlled through a Windows driver called Lesvedome. I want to continue using it as the controller for my new dome’s drive, but I need to come up with a Linux compatible software driver, if I am to avoid needing a Windows PC.
Back at the time I had the Exploradome, all my computers ran Windows XP, 7 or 10 later on. On the job I was a Microsoft Certified System Engineer, as well as a Microsoft Certified Trainer, so I was very familiar with Windows. However, when Windows 11 came along and tried to force me to buy all new “Microsoft-approved” hardware, I drew a line in the sand. Now all my “old” laptops and workstations run Linux, Linux Mint specifically, and I love it. I’m never going back.

All the motor controller electronics are built into a watertight housing, except for two relays that control the shutter motor and lower door actuators, which need to be mounted in the rotating dome. The system uses a set of contacts at the park position to transfer power from the lower controller to the upper, plus two magnetic links to pass shutter/door open and closed feedback signals back down to the USB controller card. These two signals are not used at present and are included for future development.

To fit everything within the box, and still have access to the USB socket along the bottom edge of the Velleman card, the double relay module was mounted on standoffs so the USB cable can route under it and plug into the socket. My old Exploradome controller was little more than a prototype, so this time around I improved and simplified the build using modern relay modules, which are readily available online. It was necessary to update my original Lesvedome schematic somewhat to adapt it to the modules, but the end result is the same, and much neater than my prototype ever was.
One issue when using these relay modules is it appears no one makes a 30-Amp double pole double throw (DPDT) relay module. Instead, I used two single pole double throw (SPDT) modules with their input signal lines paralleled to emulate a DPDT relay. The six relays shown in the photo are set up to provide two SPDT and two DPDT relays.

A hand controller is included for easy manual control. There are four control switches, two for the azimuth motor, and two for opening and closing the shutter/lower door. The four red LEDs associated with the switches provide visual feedback, even when the dome is under software control. The handset interfaces to the main controller through an RJ-45 feed-through jack. Because some of the logic diodes are located inside the hand controller, it is an integral part of the main controller, and must remain plugged in during normal operation.

Inside the hand controller, the circuit is fairly simple. Besides the four control switches and associated LEDs, there is another front panel mounted bi-color red/green LED on a small PCB. This LED indicates whether the dome is in an open or close cycle – red for open and green for close. There are also four logic diodes going to the switches, mounted on a small terminal board.

The upper dome control box contains only two DPDT relays, plus the components for the diode logic, and a bridge rectifier for providing +12VDC to the four-relay module and limit switches. As with the main controller, I used two pairs of SPDT relays, with their control signals paralleled, to emulate the DPDT relays.

I added two control signals that were not on the original Lesvedome schematic. One signal indicates the completion of the Open shutter cycle, while the other indicates the end of the Close cycle. These two signals are coming from limit switches, so they are physically generated by movement of the shutter and lower door. They are not just a software timeout function as in Lesvedome, although a timeout delay is still used with the linear actuators.
The open/close cycles only run while at the Dome’s Park position, and each of the two feedback signals energizes a corresponding fixed electromagnet in the upper dome that lines up over a matching hall sensor connected in the lower dome.

The limit switches are part number ME(TZ)-8108, and are, like most things these days, made in China. I found listings online for three versions. The cheapest one listed has a plastic roller and iron/copper contacts. The second tier has a metal roller and iron/silver contacts. And the third, which is the most expensive, is listed as having a metal roller plus copper/silver contacts. All the listings I found for this third version were out of stock, so I went with the second tier, which was a buck or so more than the cheapest option. It’s easy to tell the difference in the rollers, but I’m not sure how to tell if the contacts are really as stated.
Each switch has one set of normally open (NO) contacts and one set of normally closed (NC), with no common between them. To make an SPDT switch, which is what is needed, a jumper is added from one NC contact to one NO contact. This jumper obviously becomes the common.
I’m also addressing safety concerns as I go. For example, if a shutter limit switch were to fail, there is a real possibility of damaging the dome or even injuring someone because the motor can provide a good bit of torque. To address this I am installing two upper and two lower limit switches on the shutter, with each set wired in series, instead of using just a single switch. The switches are mounted on both sides of the shutter, and only one of the two needs to trip to shut off the motor.
For the lower door actuators, which already have built in cutoff switches, only one external limit switch is needed for both the open and closed positions, because the built-in switches provide the redundancy.

To complete the azimuth drive I need a gray coder for tracking the dome position. I was originally going to reuse parts from my old, Exploradome’s homemade gray coder, but then I found a Bournes contact encoder online, and it is smaller and not susceptible to stray light like my open encoder, so it should work at least as well as the old design and hopefully better.
The old encoder disc I made has 24 holes, and this Bournes encoder provides 24 pulses-per-revolution, so I expect it to work just fine. However, I can’t fully test it until the dome wiring is finished so I can power up the main controller.

A closeup of the new encoder including a simple 3/4″ to 1/4″ shaft coupler made from a piece of leftover stock for the shutter rail spacers. The encoder board holds the Bournes encoder plus two 10nF capacitors to negate switch bounce noise. The digital inputs of the K8055 already have 5VDC pullup resistors, so none are needed on the board, and it all connects to the controller through the labeled encoder connector. The CY-27 home position detector is also wired through the encoder board. This Bourns encoder part number is: ECW1J-B24-BC0024.

The home position sensor is an infrared photoelectric retroreflective device from SunX, model number CY-27. I found it and a spare in a box of parts I purchased at a hamfest. It will operate directly from +12VDC which is perfect. The reflective strip has not yet been installed on the dome wall. It connects to the encoder PCB where it picks up power and ground, and routes the output signal back to the controller through the encoder connector.

The 12VDC power supply for the dome is a model ESP115 from an old HP Compaq server. It can provide a max of 30-amps which is sufficient for the observatory. There’s also a spare unit on-hand for redundancy. The only issue with this style supply is the output connector. The power supply original slid into a mating connector on a backplane, but I don’t have this backplane connector and couldn’t find anything comparable online, so I made a set of four blade contacts to plug into it. They were constructed using push-on crimp terminals soldered to copper blades cut from sheet copper. The exposed portion of the terminals is insulated with heatshrink.

The back of the supply showing the completed wiring for +12VDC and GND using the blade contacts shown in the previous image. There are two wires/blades each for +12-volts and ground, which have been hot glued together for rigidity. The power supply also has 5VDC and 3.3VDC outputs which are not used and are covered with insulated terminals hot glued in place. I used hot glue because it grips well, but is easy to remove using IPA.
Power Transfer Contactor




The power contactor transfers 12VDC from the lower building up to the rotating dome. The photos show a redesigned version of the first contactor I built. That one worked fine, but after installing the lower door linear actuators, the stationary contacts were in the rotation path, so I needed to move them down to the space right above the azimuth track, in order to be low enough to pass under the actuators. But that created a new problem of clearing the azimuth drive gear. The dome mounted part of the contactor has to be no more than 1″ thick in order to safely pass by the drive gear. Fortunately, I was able to get it down to 7/8″ thick.
The contactor is constructed of pieces cut from plywood and a pine board, plus aluminium bar contacts covered with strips cut from a copper sheet. It’s loosely based on a design I saw online at Stargazers Lounge. The set of stationary contacts are spring loaded to apply pressure when the contacts slide closed. The aluminum bars are cut from 1″ wide by 1/4″ thick bar stock. The copper sheet was purchased at a hobby shop. The aluminum made good contact, but there was more friction as the pieces slid over one another than with the copper. The copper slides very smoothly and, of course, conducts even better than aluminum. Testing has worked well so far, but I want to run it a while to be sure it’s reliable.
Using this style of contactor means the shutter only opens or closes in the park position. I never found this to be a problem with my Exploradome, so I’m using the same approach here. There’s nothing needing power in the upper dome during observing or imaging sessions.
Upper Controller Installation

The upper controller mounts in the rotating dome. A piece of painted plywood was installed to mount the control box and a terminal strip used for cross-connecting limit switches into the controller. There is also a second smaller terminal mounted beside the larger strip, which is for wiring the lower shutter limit switches. I originally planned to run all wiring through connectors directly into the controller, but this would have required a more complicated wiring harness. The terminal strip makes troubleshooting and wiring changes easier. The exposed connections will get a clear acrylic coverplate once the wiring is finalized.

Inside the upper controller is a diode logic/power circuit board, a 4-relay module, and a timer relay module. This controller runs the shutter motor and lower door linear actuators, opening and closing the shutter and door while keeping them in sync.
The timer module delays cutting power to the actuators by about 5 seconds after either external limit switch is activated, to ensure both actuators hit their respective limit switch. Because the actuators run independently of each other their speeds vary slightly, and they don’t necessarily hit their internal limit switches at exactly the same moment. Also, without the delay neither may hit their internal switch at exactly the same instant the external door open or door closed limit switch is activated. The delay allows everything to run to completion and stay in sync.

This is the limit switch plate for the shutter and door closed limit switches. The plate is held in place by an existing bolt through one of the the shutter track spacers. Using a plate like this to mount the switches means no new holes need to be drilled through any part of the dome that could allow water leakage. It was cut from a leftover piece of the shutter track support.

The switch plate is mounted in place and the switches are wired and adjusted. Shown is one of the lower shutter closed switches, and below it the upper door closed switch. There are two lower shutter switches, the one shown here and another matching one on the right side of the shutter. They are wired in series, so tripping either switch will shut off the shutter motor. Redundancy for safety.
There is only one upper door closed switch, since the actuators have built in limit switches. This switch operates with a time delay to shut off power to the actuators approximately 5 seconds after it trips. This is necessary because the actuators run independently, and at slightly differing speeds, so the delay ensures both actuators have tripped their internal limit switches and stopped before the power is disconnected.

The right lower shutter closed switch is also mounted using a plate, just as on the left side. The left and right switches are tied together on the small terminal block mounted on the plywood for the upper controller box.

This is the lower door open switch, which detects when the lower door is fully open. It also triggers a time delay before cutting power, just as with the upper door switch.

The upper shutter open switches are mounted to the cross member at the top of the shutter opening. The second switch is mounted on the left side and they are connected together at the terminal block shown. The normally closed contacts control the motor, and are wired in series, while the normally open contacts are actually wired in parallel.

This is the left upper shutter open switch. The cross member is thick enough to drill and tap, and it is not directly exposed to the weather, so the upper switches are screwed onto it. No need for switch plates here.

The entire upper shutter area showing motor, track and limit switches. With the wiring of the limit switches completed, the main controller can now be powered on to begin final testing.
Page last updated 10/15/2026