Satellite project - part 2
Control
Automate all the things!
Automatically controlling the satellite rotator/elevator and the radios is the reason for doing this.
You can do it manually, but tracking the satellite's azimuth and elevation as it moves at 5 miles per second,
and radio frequencies (taking into account the Doppler effect) while at the same time holding the mic and trying
to remember their callsign, grid square, while having a conversation,etc is too much for a mere mortal like me.
My plan is to use GPredict to control the antennas and radios. The full control chain will look like this:
The whole control chain
GPredict -> (TCP) -> Hamlib -> (ACM over USB C) -> Arduino -> (8-pin DIN) -> Yaesu controller box -> (5-core control cables) -> Yaesu rotator/elevator.
So there's quite lot going on there. Why is it so complicated?
Rotator/elevator
Well, for one, the rotator/elevator isn't powered, so the power needed to make it move has to come via the
control cables. The motors in the rotator/elevator need 22V, so that's what the G-5500 DC controller box
does.
The other part is that the rotator needs to be able to tell the controller where it's actually pointing at right
now. Without that information, how can you know how much to move it to get it to where you want it.
This is what the factory-grade control cables do.
Controller box
The controller box is pretty hefty. It plugs into 240V, and has 5 chunky switches on the front - 1 power switch,
and 4 that make the rotator/elevator move up, down, anticlockwise, and clockwise.
But that's for manual operation, which I don't want to do.
On the back there is an 8-pin DIN socket that can interface with some clever brains.
Yaesu make a computer control interface for £500 that sits between your computer and the controller box, but
that's a lot of money.
Luckily, Arduinos (Arduinoes? Arduini?) have stepped in to the gap, and people have written the code necessary
to translate between the GS-232 format emitted by the satellite tracking software and the voltages that the
8-pin DIN plug expect. K3NG has
written some software that appears to be pretty mature and full-featured, so this is what I have chosen to try
and get working. That'll be £470 saved if I can make it work.
Arduino
I have never played with Arduinos before, so this will be a voyage of discovery for me.
I bought an Arduino Uno R4 WiFi for
€30.50
. I don't think I will need the WiFi aspect, but it doesn't hurt having it.
The Arduino presents a serial interface over USB-C, and this is how Hamlib communicates with it.
Arduino jumper cables
The Arduino board has little holes that connect to the various input and output ports. They're pretty small, and so most people buy male jumper cables which have a little metal spike. I bought 40 Dupont Jump Wire M-F M-M F-F Jumper Breadboard Cable Lead Arduino HOBBY UK PO off eBay for £9.90 .
8-pin DIN plug
Rather than buy an 8-core cable, and try and solder it into the supplied plug that came with the G-5500 DC controller, I thought I'd buy a pre-made cable, and cut it in half. I purchased a Tomost Long 8 PIN DIN CABLE Male to Male MIDI Extension Cord for Bang and Olufsen B&O PowerLink mk 2 BeoLab (3 Meter) Tomost Long 8 PIN DIN CABLE Male for £10.99 . When it arrived, I verified that all the pins on each end were connected to the same one on the other - i.e. that all the cores were used.
Hamlib
Radios which have computer-control capabilities all have different protocols, so Hamlib has provided a standard
interface.
To run the rotator controller daemon:
rotctld -m 603 -r /dev/ttyACM0 -vvvvv
You will need to change the model ID if you're not using a GS232B compatible device. Also, make sure you are in
the group that owns the /dev/ttyACM0 device (often dialout (for historical reasons))
So, I've now got quite the collection of hardware and cables and stuff. I'd better start assembling it soon.