Beam rotator controller

The purpose of this project is to present a PIC© based project for accurate manual or automatic tracking of a dish/beam.
Hardware Components
Chris VK5MC 10metre dish
X 1
The 4 line VK5DJ controller
X 1
Stan LZ2STO great looking 2 line LCD
X 1
Micro-VGA display to monitor
X 1

dish rotator.jpg

Original link:

Beam rotator controller

Shack board populated.jpg


Stan LZ2STO great looking 2 line LCD

Top view of my 2 liner version

Micro-VGA display to monitor

The AZ or EL circuit board

Main board in shack unit- click for larger

The purpose of this project is to present a PIC© based project for accurate manual or automatic tracking of a dish/beam.

The project has built in accurate sun and moon tracking, but may be optionally interfaced to a computer for satellite tracking (Orbitron software) and for EME Doug McArthur’s (VK3UM) AutoTrack software. The unit supports GPS setting of date/time/lat/long for field work.

Features are extensive. Click here for a summary.

The project supports a variety of direction encoders including: an AS5040/AS5045 magnetic absolute encoder chip; MA3-P12 device and SEI system for A2, A2T from US-Digital; HH-05 and HH-12 from DF1SR, Screwjack output; potentiometer output; 16 bit Gray Coded wheel; SCA61T inclinometer chip for elevation and now a magnetometer.

The beam/dish controller unit – how does it work?

There are two main parts to the project. At the antenna the AZ/EL boards communicate with encoders that provide the absolute position of the antenna system. The AZ/EL boards are polled (9600 baud ASCII) by the Shack Unit to gather the antenna position information. In addition the Shack Unit computes the position of the moon/sun, then decides which way it should turn the antennas to track depending on north/south stops. The shack unit may also talk to a computer or a network.

The 18F4685 in the main shack unit converts the number stream from the antenna to degrees of movement. A third serial stream may be established with a computer providing information on the location of satellites or alternate Moon information. Alternatively this serial stream may connect to the Internet using a WIZ110SR (serial to network adapter) for remote operation.

Because moon and sun tracking software is contained in the PIC© program the system is a self contained unit. All the direction control is managed within the unit. An external computer is not essential. Because the sun’s apparent motion is much easier to calculate, the sun routine produces results within 0.01 degree of the Astronomical Almanac. The latter is useful for direction calibration purposes using shadows or sun noise. The moon calculations are usually accurate to < 0.1 degree but there may be variations up to 0.2 degree. A similar result to many other tracking programs. I use the program AA.exe as a reference.

The preferred PIC for the shack unit is the 18F4685 (90KB of memory) . The advantage of the bigger chips is that I have been able to add extra features including a more accurate doppler calculation and add support for the SCA61T inclinometer chip from Version 8.00. All chips are pin for pin compatible, no hardware changes are required from earlier versions.

I have developed a capability so that a satellite tracking program that outputs the right data (Az and El for the satellite) will be able to control the beam. See this page for further information on my Orbitron interface.

Construction: the boards are double sided, plated through, screen printed. The components used are traditional through hole parts. This suits my supply of parts and my shaky hands with  a soldering iron! I have sets of bare boards for sale. See the Contact Me page for details.

The main board in the shack unit is shown bottom/left. I used 1A output transistors to switch the antennas but depending on your needs these may be small signal types. For example if driving a Yaesu G-5500 satellite system you would not install relays and use small signal transistors to switch the logic level in the G-5500 control box. My system switches higher current so I use relays. See photo of my 2 liner version.

See the downloads page for the manual and HEX files updated 28 Oct 19.

Internet operation using the WIZ110SR

I bought my WIZ110SR  from Sparkfun but the board is available from a number of suppliers for $25-$30.

It is a serial to ethernet gateway device. All you need do is connect it serially to the DB25 on the shack unit and operate the external input switch on the shack unit.

Connect the Ethernet side to your router and then suitably redirected data from the Internet is sent/received to/from the Shack Unit.

At the distant end you will use my “Remote” program either by itself for moon tracking or Orbitron for satellite tracking.

IP Setup

Using the WIZ110-SR setup program arrange for your WIZ interface for an appropriate IP address on your LAN and an appropriate port number. I chose as it suited my needs. Choose an address that is not likely to be allocated by the DHCP server. I have my DHCP server set for

Start of

End of

The serial port of the WIZ should be set for 9600baud, 8 data bits, 1 stop bit and no parity with no handshaking.

For local testing you should not need to setup your NAT table in the router or ADSL modem.

To enable internet access you will need to setup the NAT in your router for incoming information on Port 5000 to be translated to the IP address you set in the WIZ. In my case that is and port 5000

If your modem is separate from your router you will need to use a fixed IP address in the router so it always uses this to talk to the modem.

For example

Assigned IP address from ISP set to

subnet mask to

ISP gateway address

In the modem you will need to setup your NAT rules to translate port 5000 to the same as your router. In the above example

Speed setup

This enables slowing of data flow in internet mode to allow other services such as voice traffic access to the TCPIP stream.

When in internet mode an additional checkbox appears. This is labelled “Data Use IP”.

It has three settings:

(a) Slow MAN/OFF

Data throughput is reduced for MANUAL and OFF positions on the main sceen.

In this condition the OFF position has a delay of 1 second between packets of information. As no antenna should be changing its position this setting is fine for general watching of the antennas and update of moon or satellite position to the beam controller unit.

If Manual is chosen on the main screen the data is reduced in speed to 1/2 second per update. This should provide sufficient update of information for slow rotational systems.The Auto position on the main screen will continue to operate at full speed.

(b) Slow OFF

Data throughput is reduced for the OFF position on the main sceen.

In this condition the OFF position has a delay of 1 second between packets of information. As no antenna should be changing its position this setting is fine for general watching of the antennas and update of moon or satellite position to the beam controller unit.

If Manual or Auto is chosen on the main screen, the data throughput will be at full speed.

(c) Full speed

Data throughput is at maximum for all main screen button positions (10 packets per second each way)

General note:

Clicking the speed control box always returns to the OFF function on the main screen

Shack unit options

There are three main options for the main unit that require different HEX code to be loaded.

  1. Two line display shows AZ/EL of the antenna and AZ/EL of the object. An internal software clock needs to be reset on power on
  2. Two line display as above, but uses a battery backed DS1307 hardware clock from Futurlec.
  3. Four line display with hardware clock. The 4 line LCD also shows declination of the moon, doppler, UTC and local time.

All displays indicate if the internal swap direction delay is operative. The 2 line displays may be set to show brief displays of doppler and time.

There are 42 menu items to set the unit for the conditions you require. The menu items are described fully in the manual for the project.

PWM speed control for the VK5DJ beam controller project

Hardware change involves adding two resistors to J6

Many users of this project have asked for motor speed control. “Version 12.1a” for 2 line display and hardware clock and “Version 12.2 four” for 4 line display now supports this mode.

The work described here enables speed control of direction motors using Pulse Width Modulation (PWM) of a 20kHz square wave made available on the Menu switch pin 6 of J6. The width of each on pulse varies depending on a set of criteria. A pulse width of 0 (a zero voltage for 100% of the time) equates to off, while a permanently on voltage represents 100% full power. Pulse widths in between have varying ratios of on to off time and therefore support in between motor speeds.

The PWM signal drives a solid state switch that serves as a speed control for the motor. All motors have a minimum speed and the software allows this minimum to be set in menu item 39 as a percentage of full speed. The default is 50%.

The actual speed control circuitry is left to your design skills. Sebastian DG5CST has done this and his ideas are shown below.

Direction of operation is determined by the ModeA relays or by direct connection to the relevant TIP31Cs.

Mode A uses a pair of relays for Azimuth and a second pair for Elevation – one relay determining which polarity power is applied and the second relay deciding whether power should be applied.The PWM only controls speed. If you are already using ModeA then you only need the motor speed system connection.

Because there is only one PWM port available (PortC.2) it has been necessary to share the same PWM output for both Azimuth and Elevation. Therefore the PWM is always determined by the slowest of the outputs. Once the slow direction reaches its turn off point the other motor will speed up to the required speed for its current position. A small price to pay. Menu 37 provides for just one motor to set speed.

When an antenna direction is >10 degrees away from the needed direction the motor will run full speed (subject to the comment above) but when it reaches 10 degrees it will begin to slow until at 1 degree difference it will be moving at the minimum speed and then at 0 degrees the motor will stop.

Menu items

Menu 37 determines the output mode. A choice of 6: ModeA relay, ModeB relay, Hbridge, PWM (both), PWM azimuth, PWM elevation. To use PWM set this item to PWM of your choice (e.g. If you only want the PWM on elevation then choose PWM el) then set Menu item 39 to the % of full speed required as the minimum. The default is 10% but this is for testing purposes and you may need to find a value between 30%-50% to ensure reliable motor starts.

Once PWM mode has been set in menu item 37 the Menu system will ONLY be available on switch on. (Put the menu switch on then apply power). This is because the menu pin is taken over by the PWM function once the initial screen is passed and so has become an output.

WARNING: if you plan to access the PWM mode you MUST make the following change to hardware.

(1) Remove the menu switch wire going to pin 6 of J6

(2) Solder two 470 ohm resistors to pin 6 of J6. (See photo above)

(3) The free end of one resistor goes to the menu wire

(4) The free end of the second resistor, the PWM output, goes to a wire to your speed control system. In my case it went to the motor tag board on the rear panel.

If you do not do this modification and you operate the menu switch during PWM operation you will directly short the PWM to ground via the menu switch and almost certainly damage the PWM port – effectively ruining your 18F4685. YOU HAVE BEEN WARNED.

If you do not use PWM mode and you never switch on this function in Menu item 37 then you will not need the hardware modification.


I imagine that the amount of drive available from the PWM is quite small – the signal has the limitations of the 470 ohm resistor and as the PWM signal is 0-5volts then only a few mA are available. You will need at least a darlington output transistor to switch a relatively modest motor.

DG5CST has produced this hardware to drive his azimuth motor

(image1)Board for Seb DG5CST motor control using PWM 

(image2)Seb’s Motor driver board on heat sink, note solder on high current traces    


Large Display

Providing that you do not want to use an external computer to drive the system it is possible to drive a large computer montor providing that you do a bit more work. You will need to purchase a Micro-VGA display system.

The unit used for development was obtained from Dontronics – bt they no longer stock them. It seems that the manufacturer still exists although the module looks different from the one I used it seems to have the same functionality. For that reason I have rebuilt this page. If anyone has trouble getting it going I’m willing to help out.

The display hooked up to the beam control system

Close up of display in Park mode

Showing the connection between the modified AZ/EL board and the video display module.

The u-VGA (640*480) video interface takes serial data and displays this on a computer monitor. See the data sheet on the MicroVGA website. For maximum speed I have chosen to use an external PIC interface rather than giving the shack unit more to do – it is busy enough doing its other tasks. The interface I have designed uses an AZ/EL board to do the conversion. An inverter transistor is added to invert the data coming out of the computer interface on the shack unit and remove the -ve going pulses of the RS232. The PIC16F648A (the program is too large to fit in a 16F628A) requires non-inverted TTL data. The converter board communicates with the shack unit at the standard speed of 9600baud while the uVGA device will take a wide range of speeds but in this case I have set the interface to the uVGA at 19200baud. A document describing the interface system is currently being written.

Buttons on the screen indicate the current state of the relays controlling the antenna. If the Park switch is activated the display changes accordingly. In the photo the left and down buttons are depressed. Because I have changed the requirements it is necessary to use version 5.62 software in the shack unit. This will become available when I have finished the documentation.


Above: Circuit diagram of modified AZ/EL unit board. Click for larger picture


Modified AZ/EL board top – click for larger image.

Note the 78L05 overlay is wrong. Reverse the 78L05 chip. Also note installation of a small NPN transistor in the LED4/LED3 position. In addition the trace is cut from R4 to pin 8 of the chip. R4 is replaced with a link.

Modified AZ/EL board bottom – click for larger image.

Note: trace cut at left end of resistor to collector of transistor

Hex code for the 16F648A
The manual for implementing the Large Display adapter


Please Login to comment
Notify of
Reusable S/W