Satnogs v. 2 upgrade software to eliminate repositioning from 0 to 360 degree

Good evening at all.
I built and use the Satnogs V.2 (I made two versions)
Currently with the arduino code, the rotor when it searches satellites when passing from the east hemisphere to the west and vice versa, that is, when 0 degrees north goes 360 degrees, reposition it by turning a fast reverse in order to reach the position of the satellite which has passed from 0 to say - 360 however this case to reposition it loses for a while the satellite until it is recovered to the position reached.
I wanted to ask the team if there is an updated version of the software for Satnogs V.2 that eliminates this disadvantage.

Precisely that on my first Satnogs V.2 rotor I have built, I have equipped with arduino one charging us a different code from your working with the RS232 protocol Yaesu and with Orbitron tracking software works fine but had the usual problem, that is when 0 degrees passed to 360 it was repositioned.
The creator of the IK5XWA (with arduino one) code these days has made an upgrade of the code that in fact eliminates this problem and traces the satellite from start to finish without being repositioned. I tested it on my rotor V.2 (arduin one) and it works perfectly.
Is it possible to implement this upgrade even on your software (c ++ code) ?,
Thanks again and congratulations again for what you do.
IZ5RZR Massimiliano

HI.
I suppose there’s no solution for Satnogs rotator?

@iz5rzr I guess that in principle there’s no reason this couldn’t be done; that said, I haven’t looked at the code to see what would be involved. From looking at that repo, I’m also not sure who has worked on it before…maybe @pierros or someone else could chime in?

I believe that anyone who has built a rotor satnogs from version 1 to version 3 has the usual problem, that is, when you are plotting a satellite, if it goes from 0 to 360 degrees (eg Noaa when going from southeast to northwest), the rotor it is repositioned at 360 degrees moving quickly in the opposite direction until it reaches the position, but that time loses the signal of the satellite.
I now have a version of arduino code that eliminates the problem, that is, it always traces the satellite even when it passes from 0 degrees to 360 until it declines, and never loses the satellite track, so it does not reposition but follows it constantly.
As soon as the code expires, in the hope that someone can translate it on the Satnogs code on arduino pro both for version 2 and 3.

1 Like

Hi,

I used the Satnogs firmware for the arduino and I managed to get the rotator NOT to do the 360 degree repositioning.
I use a NEMA 17 stepper for the azimuth and a 20kg.cm servo for the elevation.
I’m not sure if this will be able to move my antenna yet, but at least the stepper and servo are working as planned.

I modified the loop() statement as follows :

void loop() { // Check if data is available from Gpredict and then process it while (Serial.available() > 0) { cmd_proc(AZstep, ELstep); // Read and parse the data from Gpredict

if (AZstep != oldAZstep) // Only do this section when the AZstep from Gpredict changes
{
// Determine which way to turn the servo for the shortest route to the target Azimuth

target = AZstep;
current = oldAZstep;

A = target - current;
B = target - current + SPR;
C = target - current - SPR;

// Determine which of the 3 values A, B, and C is the smallest. This will be the amount of steps to move
// The sign of the smallest value will determine the direction

if (abs(A) < abs(B) && abs(A) < abs©)
AZtomove = A;

if (abs(B) < abs(A) && abs(B) < abs©)
AZtomove = B;

if (abs© < abs(A) && abs© < abs(B))
AZtomove = C;

AZtomove = oldAZstep + AZtomove;

oldAZstep = AZtomove;

// Send EL to servo
servoAngle = map(step2deg(ELstep), 0, 90, 0, 60);

// This will slow the servo down to reposition the EL to the new position

if (servoAngle != oldEL)
{
for (oldEL; oldEL < servoAngle; oldEL++)
{
ELServo.write(oldEL);
delay(500);
}
for (oldEL; oldEL > servoAngle; oldEL–)
{
ELServo.write(oldEL);
delay(500);
}
oldEL = servoAngle;
}
}
}

/Move the Azimuth & Elevation Motor/
stepper_move(AZtomove, ELstep);
}

I hope this helps. Took me quite a while to figure this out, but it seems to work great.

Regards

JJ Siebert
ZR6JS

Thanks a Lot!, I Will try to upgrade my satnogs rotator with this patch.

Grazie

IZ5RZR

Please let me know how it goes.

JJ Siebert
ZR6JS

Hi JJ, can you try to implement your code on satnog’s code?

I have another firmware to eliminate repositioning, and it work very well but serial protocol are YAESU GS202.
If I remember I will post here tonite.

Ciao

Hey, i have opened an issue about this problem. it would be nice to make a pull request!! :beers:

1 Like