Skip to content

About

A Windows desktop application (Python / CustomTkinter) that simulates an antenna rotor controlled through PstRotator's UDP protocol

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

README.md

PstRotator Simulator — UDP Control

A Windows desktop application (Python / CustomTkinter) that simulates an antenna rotor controlled through PstRotator's UDP protocol, so you can test a client software chain (logging, tracking, automation) without physical rotor hardware.

What it does

  • Listens for incoming UDP commands on a configurable port (12000 by default) and replies on port+1, following the PstRotator User Manual's UDP Control chapter.
  • Supported commands: <AZ>xxx</AZ>, <EL>yyy</EL> (also <AZIMUTH>/<ELEVATION>) set a target position; AZ? and EL? return the current actual position. Multiple commands can arrive concatenated in a single UDP packet.
  • Realistic motion simulation: receiving a target does not jump the rotor instantly — a background thread moves the actual position toward the target at the real rotor's measured speed:
    • Azimuth: 360° in 80s (4.5°/s)
    • Elevation: 180° in 80s (2.25°/s)
    • Movement always follows the direct path on the displayed scale (e.g. 350° → 10° travels 340° backward, not a 20° shortcut through 0/360°) — mimicking a real rotor's mechanical stop.
    • A new command received mid-rotation immediately overrides the previous target.
    • AZ?/EL? queries return the interpolated live position, not the pending target.

Interface

  • Two graphical gauges: a full compass dial for azimuth and a half-circle dial (0–180°, G-5500 style) for elevation, each showing a target needle and a live-position needle, plus an adjustable beam-width sector.
  • Manual target entry: set an azimuth/elevation target locally for testing, without any external client.
  • Live log: every received and transmitted UDP frame is timestamped and displayed.
  • Automatic port-conflict handling: if the default port is already in use, the app prompts for an alternative port instead of crashing.

Bilingual interface

The UI is available in French and English, switchable at any time from the dropdown at the top of the window — labels, gauges, log messages, and error dialogs all follow the selected language immediately, no restart required.

Typical use case

Development and testing of client applications that drive an antenna rotor via PstRotator's UDP protocol (e.g. Log4OM, satellite tracking software) when the physical rotor is not available or not convenient to use.

Requirements

  • Python 3
  • customtkinter

Run

python pstrotator_sim.pyw

About

A Windows desktop application (Python / CustomTkinter) that simulates an antenna rotor controlled through PstRotator's UDP protocol

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages