Positioner for SAT antenna

Hi! As I've said in my introduction, I would like to explore possibility to build Arduino-based positioner to control movement of satellite dishes.
Of course, it is possible to get positioners out-of-shelf, but why do not think out-of-the box.
Schematically antenna turning system (picture 1) consist of receiver from which coax cable goes to the positioner (picture 2). From positioner coax cable goes to Low-Noise-Block (LNB) to pull signals to the receiver. There are another cables from the positioner to the motor: 2 are to give power to the motor (usually 36V DC), and another 2 to reed switch sensor. When motor is turning then reed switch gives pulses to the positioner, positioner counts those pulses and knows when to shut down 36V to stop the motor on needed position.
So, my questions are:

  • How to learn Arduino to read commands via coax cable from receiver?;
  • How count pulses and control 36V to the motor?

P.S. English is not my Mother tongue, so please forgive if I write unclear.

Picture2.jpg

Powering the motors is easy to answer. The type of circuit you want is called an H-bridge, which will give you directional control (forward and reverse) of a DC motor. Without knowing the current rating of the motors I can't give a specific recommendation of what to use though.

The much more difficult problem is determining what position to move it to. I assume you want to track a satellite in order to maintain a strong signal, but I'm not sure how to do that. Radio signals are usually quite high frequency, so processing them in circuitry may be beyond your capabilities if you are a beginner.

Thanks for the answer.
DC motors I am speaking about, usually do not take more than 3-5 A.
I wish to track all visible satellites, they ar on geostationary orbit, means they are always at the same orbital positions. Original positioner receives information (number is stored in receiver and also in the positioner). So, receiver tells to positioner "Turn antenna to position #545" and then positioner gives power to motor and starts to count pulses. When number 545 is reached then positioner shuts 36V DC power down.
Auto-adjustment to the strongest signal would also be interesting, but this is another case.... when 2 or 3 motors are used.

I understand, so the device you pictured is a combination of receiver and positioner? And you just want to recreate the positioner?

Geosync satellites and preset positions make this much easier than I feared it would be.

  • How to learn Arduino to read commands via coax cable from receiver?;

Without knowing the command protocol I can't answer that. Do you know if there's some sort of standard way for these devices to communicate? Can you link to a reference for that?

  • How count pulses and control 36V to the motor?

Counting switch pulses is relatively easy. It'll be just like a push-button switch, with all the problems that come with them too (such as debouncing). I feel like there might be more to it though. If it's just a switch like that, the receiver will have no way of knowing what position the motor is in when it powers up.

100-150W is quite a substantial motor, but not impossible to deal with. This L6203 looks close to the kind of component you would need to control that motor. It's rated up to 48V supply voltage and 4A rms of output current.

Jiggy-Ninja:
I understand, so the device you pictured is a combination of receiver and positioner? And you just want to recreate the positioner?

The receiver it is any satellite receiver used nowadays to receive signals and show the picture on TV. Positioner is not needed at all if there is need to have reception from one satellite. But in my case, antenna is installed on the polar-mounted device and moved by actuator (motor). But, yes, I just want to recreate only positioner. Will look for command protocol used to operate the positioner from the receiver.
I cuold also use optical sensor instead of reed-switch if this would be easier to swallow by Arduino.

Jiggy-Ninja:
If it's just a switch like that, the receiver will have no way of knowing what position the motor is in when it powers up.

Of course, the receiver can not know position of the dish, this should be task of the positioner.
I've ordered such a relay 3pcs 5v 4 channel relay module for pic arm dsp avr msp430 blue geekcreit for arduino - products that work with official arduino boards Sale - Banggood.com maybe it can be used to control the motor?

RimaNTSS:
The receiver it is any satellite receiver used nowadays to receive signals and show the picture on TV. Positioner is not needed at all if there is need to have reception from one satellite. But in my case, antenna is installed on the polar-mounted device and moved by actuator (motor). But, yes, I just want to recreate only positioner. Will look for command protocol used to operate the positioner from the receiver.

What I want to know is what commands the positioner to "go to position #456". Is it the receiver? Is it something you select on a user interface?

I cuold also use optical sensor instead of reed-switch if this would be easier to swallow by Arduino.

I don't think it will matter.

I've ordered such a relay 3pcs 5v 4 channel relay module for pic arm dsp avr msp430 blue geekcreit for arduino - products that work with official arduino boards Sale - Banggood.com maybe it can be used to control the motor?

Relays will be fine, but probably not those relays. They have a high enough current rating (10A), but are only rated to 30VDC. You need 36V. You need to find something rated for higher voltage.

Jiggy-Ninja:
Relays will be fine, but probably not those relays. They have a high enough current rating (10A), but are only rated to 30VDC. You need 36V. You need to find something rated for higher voltage.

It is not a big issue, I think, as I can power motor even b y 24V DC.
Will explore little bit more on command protocol from receiver to petitioner and let you know.
In the receiver interface positions are stores as in the attached screenshot (position #14). And there is another picture (in the garage) to show receiver (it has 4 tuners inside) and several positioners (numbered 1-6).

ScreenHunter_188 Feb. 28 21.59.jpg

To control devices over coax cable Diseqc protocol is used . Some info is here Simple DiSEqC monitor and signal analyzer · One Transistor (but still looking.)
And attached is picture which can explain situation and all connections better

ScreenHunter_189 Feb. 28 22.11.jpg

There are a few sums involved here. You have to know

For a geostationary orbit satallite - ie where it is in 3d space above the Earth. Then where you are . From that you can calculate a 2d - vector: north/south, east/west, for your antenna. Satellite operators will often give these values on their websites.

For a non- geostationary satellite, you must know all the above but as a function of time, and provide a tracking algorithm when you've found it.

Not easy

Allan

But it seems like he ONLY wants geostationary satellites. The dish can pivot on an axis which is parallel to the Earth's axis and that will get pretty close to following the arc that the chain of satellites makes across the sky. They are all in a pretty precise circle out there. The initial alignment will be difficult but after that it's only a matter of driving one axis.

I'm assuming that errors in the bearings and the error due to being off-center from the Earth won't get much more than a degree and the dish doesn't need to be pointed quite that accurately for a useable signal.

Allan! Thanks for that. I know the theory of SAT-TV much better ( I even suspect that I have one of the sophisticated installations in all SAT-community, including the one of the biggeast and niciest dishes :o installed) than Arduino issues :slight_smile:
All the TV satellites are located on geostationary orbit. I know their positions very well. For polar-mount there is no need to know position of each satellite separately, when polar-mount is tuned to the arc (Clark-belt) then it moves antenna along this ark and can reach any visible satellite.
I am not interested in non-geostationary satellites at all.
My question here is not how to tune polar-mount to the arc (as it is separate issue and I know it quiet well) but how to program the motor to be able to move and stop the antenna in proper position. Of course there are other ways how to catch signals from satellites available, and this is only one of them.
@MorganS You are correct.

RimaNTSS:
To control devices over coax cable Diseqc protocol is used . Some info is here Simple DiSEqC monitor and signal analyzer · One Transistor (but still looking.)
And attached is picture which can explain situation and all connections better

Very good first reference, that tells me exactly what I need to know for the electrical specification, and even mentions a protocol specification that should have info on how commands are encoded into the data.

This is possible because the protocol is modulated over a 22 kHz carrier.

DiSEqC protocol encodes bits as follows:
1 ms of 22 kHz burst followed by 0.5 ms pause means bit 0;
0.5 ms of 22 kHz burst followed by 1 ms pause means bit 1.
A byte is sent using 9 bits (first 8 make the actual byte and the last is the parity bit). If you want to know more, see protocol specification at Eutelsat web site.

It even shows you the filter you'll need to make in order to isolate the DiSEqC band from the satellite signal.

I'll try and dig a tone decoder out of my parts bin and experiment with it. It should be perfect for turning the 22 kHz pulses into a digital signal that the Arduino can process. It looks like it has some features in common with the NEC standard for IR remotes, so maybe I can steal some pieces from that.

One other thing I don't understand is the switch. If there's just one switch, how can the positioner know if it's reached the end of travel? If you connect a new dish to a positioner, how does it know what position the dish is in?

Allan! Thanks for that. I know the theory of SAT-TV much better ( I even suspect that I have one of the sophisticated installations in all SAT-community, including the one of the biggeast and niciest dishes :o installed) than Arduino issues :slight_smile:

And it's quite good that you do know so much. That's probably the main reason we can understand each other so well even when I know nothing about SAT-TV and you aren't a native English speaker. If you were less experienced this would be about 100 times harder.

Jiggy-Ninja:
One other thing I don't understand is the switch. If there's just one switch, how can the positioner know if it's reached the end of travel? If you connect a new dish to a positioner, how does it know what position the dish is in?

Thanks for the understanding. Actually, this is an issue..... when another dish is connected to the same positioner then all the positions of the satellites should be rewritten. I've done it many times and have no problems doing that.
I've heard about absolute encoders (I even have couple of them), they themselves, at any time know the position of the dish. But those encoders are firstly, very expensive and secondly could be other, separate project which I will rise when this one is finished.

$50-$70 for an absolute encoder isn't expensive. You're spending more than that on the motor and gearbox. US Digital make some great ones. I don't know about their outdoor weatherproofing - I use them indoors.

With that kind of encoder, you will need to calibrate a new dish to the position of one satellite but then it should be able to pivot to any other one after that.

A potentiometer would also work well as this requires less than 180º rotation.

Is not Absolute Encoder is just a sensor? So, beside it, motor is still needed. I did not mention but there are other ways to motorize the dish, for example Diseqc motors (cost about 40 EUR) ready to take on-board dish up to 1.2m in diameter. There are also Az/El mounts available to turn antenna horizontally and vertically , but you still need to have 2 motors to move it and than another one to skew LNB.
So, Diseqc motor would be the simplest and the cheapest way to motorize small antenna.
But, in fact, I do not much care about the price, cuz it is all about hobby.
Therefore, I am still looking for replacement of the out-of-shelf positioner by one which is based on arduino device.
P.S 2 absolute encoders I have cost at least 200 EUR each. And, as I've said before, I would like to use them at some point of time to control position of bigger dish.

You shouldn't need to be phenomenally accurate. The half-power ( 3db down) beamwidth of a dish is about

73 x lamda/D where D is the diameter of the dish and lamda the wavelength. Answer in degrees.

At 5GHz and a 1.2m dish this is about 3 degrees.

Accuracy much better than a 1/2 degree or so is unnecessary

Allan

allanhurst:
At 5GHz and a 1.2m dish this is about 3 degrees.
Accuracy much better than a 1/2 degree or so is unnecessary

Small antennas (smaller than 1.2m), are usually used to receive signals in Ku-band (10.70-12.75 GHz). And being more accurate in pointing is always better, especially if you look for fringe reception and this is something more than simple watching TV...... I mean hobby. But, again, this is not topic of this thread. Thanks anyway.

Jiggy-Ninja:
If there's just one switch, how can the positioner know if it's reached the end of travel?

Sorry, I do not think I've answered this. In the motor block there are two (usually adjustable) end-switches, they do not allow antenna travel too far East or West and break something mechanically. Those end-switches simply disconnect the power-line. Example of the motor block is on the attached screenshot.
And there is more reading about Diseqc commands Error page

ScreenHunter_193 Mar. 01 09.21.jpg

I am here and still interested in the project :slight_smile:
I was busy by waiting some parts for Arduino to come (got relays delivered), I was also doing some learning, and with great help of @bperrybap got my first experience programming Arduino to work with LCD display. And today also managed to code 4 relays (attached picture), of course I had some reading before.
But I really need some help for this project. And without specialists from this Forum I will not be able to get positive results.

What is your ongoing problems now?