This version is compatible with EASYCOMM2 antenna protocol.
After getting in touch with PstRotator (tracking software) developer, he kindly gave me the solution I was searching for, in order to send back the antenna position to be displayed in the software. He also generously gave me a license for his software, thank you very much.
In the Easycom2 protocol, the software sends the target position to the controller, like
There is no fix length for the coordinates.
The software asks for the current antenna position by sending
And the controller should respond with
where the first is the azimuth, then the elevation. There is no fix length, but the decimal is mandatory, even if it is 0. Like +23.0 5.0
Note that so far, PstRotator was the only software who could display the antenna position.
This Arduino version is compatible with all tracking software using EasyComm protocol / 9600 bauds.
PstRotator, WXtrack, HRD, MacDoppler… Even WXtoIMG can control the rotator. Orbitron needs the plugin listed below.
It accepts 0-180º elevation, but rotates the antenna accordingly, for max. 90º elevation.
There’s also a variant for AC motors, which offers dry contacts (ON/OFF). It can be easily interfaced with commercial rotators. And one for 180º elevation, one for 0.1º precision. Just give me a shout.
If you only want azimuth control, that’s fine. Just don’t install the parts for elevation. Put A1 to GND to always read 0° elevation. This is an example of electric diagram for azimuth only.
Jean-Jacques – ON7EQ made an excellent modification to the code for a simple controller -azimuth only- and YAESU communication protocol. Check out his work HERE.
The DC motors version has the advantage of using PWM for a softer/smoother antenna movement. It outputs a power response proportional with angle error (Target<->Antenna).
There’s an adjustable Dead Zone, where the antenna doesn’t move for the slightest target offset.
This is the plot of Power output corresponding to Angle error.
Once the project is complete and it can move, you must apply the Potentiometer calibration procedure. It ensures correct reading of 0-359º / 0-90º, no matter what kind of potentiometer you are using.
The motor calibration is only for DC, and tunes the soft stop feature. This is only necessary if you don’t like the default settings.
The code has been updated several times, and now, for example, you can set the antenna update in your tracking software, as fast as you want, 0.5 sec. if you like.
Check the Arduino code page for the codes, drawings and procedures.
Thank you very much to all who sent me feedback, helping to make this project more reliable.
Some afterthoughts after months/years of using this controller and rotator.
I have a home-made DC rotator Az/El 360º/90º. The azimuth motor draws 12V/3A in full power.
1. After adding 12m of LiYCY-12×0.75 cable from controller to rotator, the azimuth reading had a noise of +/- 10º.
One 1μF capacitor GND-AzPot on Arduino side lowered the noise to +/- 2º. After days of measurements and oscilloscoping, I replaced the 5V adaptor because it had a very big ripple (noise). I added one 5V adaptor for Arduino, LCD, encoders and potentiometers, and another one for relays and MOSFETs. The potentiometer noise disappeared. Thanks Bernd-OE6HBD for the tip.
2. The relay module for azimuth direction (rated at 10A) failed – replaced.
I added the ‘cold switch’ feature in the code.
3. The MOSFET module (rated 10 times the power) for azimuth PWM failed – replaced.
It warms up only when antenna is moving slow (PWM = repetitive MOSFET switching). After days of measurements and oscilloscoping, I found no flyback phenomenon, nothing special. I added a small fan to the case, to ensure a little flow of air over the heat-sink.