Dish Control and Moon/Sun Tracking System

Encoders

AZimuth

USDigital Absolute Encoder with a 0.1 degrees definition

Elevation

USDigital Absolute Inclinometer also with 0.1 degrees definition

Control Box

I am currently using (March/2016) a new antenna system which is based on a single self standing box serving the 2 antennas (23 & 70cm) using a Raspberry PI 2 Linux computer.

The system is able to provide the following functions:

1) Calculate the current position for MOON/SUN/ any astral object by giving the RA DEC cohordinates.
2) Tracking the selected object with a +- 0.2 degrees precision
3) Driven by the K3 PTT does all the switching between TX & RX with a 4 steps timed events to drive the correct sequencing of xverter,driver,PA,LNA relay.
4) Allow manual operations to move the antennas
5) Park the antenna in the desired position
6) Switch the IF signal to 70 or 23cm transverter
7) Interface via a SEI to USB converter the US digital encoders connected on the same bus
8) Read and calculate Azimuth and Elevation of the 70cm controllers via the Arduino board connected via USB to the Raspberry

Construction

Done ,as usual, as a prototype and the result is messy due also to several changes during the development.
The initial idea was to fill inside also the power supply but finally there was no room left so is powered fron an external supply providing 28V and 12V, an internal regulator provides the 5V to the Raspberry and the 70cm encoders.
The following picture gives an idea, at the right the Raspberry while at left there is an Arduino board.


An this is a back view:


The result is a black box with only a switch to power the unit and a led lamp to check when correctly powered in the front panel while a detached 7" TFT display with an HDMI connection is the user interface.

TFT display




The idea was to use the touch capability of the screen but unfortunately i was not able to make it working under Raspian with the drivers given by the supplier (it was instead working well with windows).
The solution, at the moment, is to use a wireless mouse instead.

Software

The software written for the purpose is basically made of 4 programs:

1)23cm antenna controller
2)70cm antenna controller
3)23cm configurator
4)70cm configurator

All of them are written in C++ using the freely available QT graphic environment.

23cm Antenna Controller




No need for explanation

23cm Configurator




To initially configure the system a keyboard must be connected to the back of the box, during normal operation (like selecting the desired target) the mouse is good enough.
The list of track able objects is open and is possible to make add/delete operations (except for sun & moon).

70cm software


Very similar to the 23cm version

Notes


There are no mechanical switching inside the box, the 4 motors are controlled via H bridge mosfet boards
The only external dependency of the system is the clock syncronisation, the Raspberry does not have a native real time clock and therefore need to be synchronized at every switch on.
To add an external RTC is not difficult but at the moment i keep the box connected to my router and the timer is periodically checked against the web servers.
In case of no connection to web is possible to set it manually.
I tried to read the 70cm encoders directly with Raspberry PI2 I/O but also taking all the precautions like an high priority dedicated thread and interrupt service on wire status change, the latency in context switching was bad enough to generate an unacceptable loss of accuracy and hence the choice of adding the Arduino as front end.

Error checking


The HDMI interface carries video an audio at the same time, since the 7" TFT has 2 (very small) integrated loudspeakers i have been integrating into the antenna controller programs a voice synthesizer and in case of error, like encoder malfunctions or motor not moving ... and others, the system attracts the operation attention with vocal messages.
The quality leaves a lot to be desired but the goal is equally reached.
Of course, in any error condition every activity is stopped at once.