Extract Gabe Emerson's Trav'ler rotor scripts into a proper Python library with firmware protocol abstraction (HAL 2.05 + HAL 0.0.00), Hamlib rotctld TCP server, Click CLI, and isolated leap-frog algorithm with the elevation copy-paste bug fixed.
1.4 KiB
1.4 KiB
Known Bugs in Original Code
Leap-Frog Elevation Bug
Location: Trav-ler-Rotor-For-HAL-2.05/travler_rotor.py lines 98-105
Issue: The elevation delta section of the leap-frog algorithm modifies
target_az instead of target_el. This is a copy-paste error from the
azimuth section above it.
Original code (lines 90-105):
# Azimuth compensation (correct)
if target_az - current_az > 2:
target_az+=1
elif target_az - current_az < -2:
target_az-=1
elif target_az - current_az > 1:
target_az+=0.5
elif target_az - current_az < -1:
target_az-=0.5
# Elevation compensation (BUG: modifies target_az instead of target_el)
if target_el - current_el > 2:
target_az+=1 # <-- should be target_el
elif target_el - current_el < -2:
target_az-=1 # <-- should be target_el
elif target_el - current_el > 1:
target_az+=0.5 # <-- should be target_el
elif target_el - current_el < -1:
target_az-=0.5 # <-- should be target_el
Impact:
- Elevation leap-frog compensation was never applied, so the dish would lag behind in elevation during fast satellite passes
- Azimuth received double compensation (its own delta + the elevation delta), causing over-correction on the azimuth axis
Fix: In travler_rotor.leapfrog.apply_leapfrog(), the elevation
compensation correctly modifies target_el.