Need Help: Yaesu G5500 DC Setup - Elevation Not Working

I am working on a project, and I decided to use a Raspberry Pi 4B with gpredict and Hamlib’s rotctld, an Arduino Mega, K3NG rotator controller code, and a Yaesu G5500DC to control an antenna.

I successfully uploaded the K3NG code into the Arduino and set up a breadboard configuration. The azimuth functions correctly and moves as intended, but the elevation does not move.

When I press the up and down buttons on the elevation control box, they function properly. The issue lies with the interface. I tested if there were current and the cable for the elevation is fine.

I used the following command in the terminal: “sudo rotctld -vvvvvvv -m 603 -s 9600 -r /dev/ttyACM0 -t 4533 &” to establish communication with the Arduino.

Afterward, I captured some screenshots of the Raspberry Pi terminal and discovered that the elevation data from the Yaesu does not get a response:

Here, gpredict reads only azimuth but not the elevation:

I don’t know if it has anything to do with the K3NG code? Should I modify something else? I am using from the rotator_features.h file (untouched):



The only things I touched from the code were the pins:

CW: 10

CCW: 9

rot_analog_az: A1

UP: 8

Down: 7

rot_analog_el: A0

I wanted to test whether I could retrieve the current position of AZ and EL using the “p” command in the terminal, but I did not receive a response then I tried to manually change the AZ and EL with P 100 45 and I didn’t receive a response either:

Here some additional pictures of the setup:

Breadboard. The cable grey and white appear in the wrong position in the pic but they were later changed to match the actual color:

Hi, I have also built one of these, controlling a diy G5500 (G800 and KR-500 bolted together).
For elevation to work this needs to be enabled in the conf.
One tip for rotctld is to set the min/max angles it can support, this is usually needed for it to work with satnogs: --set-conf=min_az=0,max_az=360,min_el=0,max_el=180 ← change to suit your needs.

Thank you very much!!

It really worked.

One more question regarding your last tip: The Yaesu G5500DC has a maximum azimuth (AZ) of 450°. Would it be an issue if I set the maximum AZ of the rotctld to 360°?


I think the 0-450 mode is just a hassle, it really just means that it will winding up and try taking a shortcut and just end up having to do a whole turn anyways. The reporting of the position and calculation in -client just truncates it to 0-360.
When using for example gpredict on a 0-360 + 0-180 it will choose to flip the elevation over and add/subtract 180 from the azimuth so it will not encounter the endstop during the pass.

In one of my other projects I made it detect this in a similar way and flip over if necessary.

For now this does not exist in satnogs-client, it would also need to have a setting for the direction the endstop is located. My last efforts on it is quite old and will need some work.

To be clear, it was a few years ago since I did this procedure. And I also don’t have that exact controller (I have a G800+KR500) but should be quite similar.

Starting with the pots on the controller, I made sure that the analog output was within 0-5V on the full rotational span, as this is the limit of the arduino, but it should be as large as possible and with some margin. I think mine was 0.5-4.5V or so. This is all done with the pots on the controller.

Then the K3NG needs to be calibrated to this, it is done with commands, fire up a rotctl that you can manually send the commands with. O and F, then O2 and F2 with the full swing of the rotator.
The tricky part here is choosing 0-360 or 0-450, the K3NG code can have 0-450 and be calibrated for this, but then running rotctld with the max_az=360 to limit it’s useable range here. There are probably other methods as well.

Using gpredict’s monitor mode, move the rotator manually and verify that the position match. You can get in trouble if the endstops hits before it arrives at the full span as this can lead to the K3NG commanding movement to try and reach a position beyond the endstops.

Thank you for your detailed answer!

I am having an issue where the “O” command was not found.

Am I doing something wrong? I am new to this stuff ann I am trying to learn how does this work.

I want to change as well the starting point of the azimuth from 180° to 0° since the antenna is pointing in to the wrong direction. But I can’t save it since is it has to be saved in EEPROM. I open minicom on my raspberry Pi and can’t type nothing:
I want to set
/I0 as az starting point and then
/Q to save the setting.
But can’t write anything

Nevermind, I think I solved the problem by connecting a keyboard direct to the raspberry pi.

Thank you very much.

That is correct, rotctl does not know all of these extended commands. Possibly with the w command.

By that you mean hooking a terminal program like minicom to it, sending raw commands (: you can do this via ssh as well, or on any computer and a terminal program on the serial port.

I will try to use w command instead of minicom. I hope that works!

I would recommend minicom, then you have better control of everything, especially during calibration.