4.3 KiB
ROT1Prog Rotorsteuerung (Bedienen, Einstellen, Kalibrieren)
Diese Anleitung fasst den aktuellen Stand aus der RMS-Software zusammen, um einen Rotor mit ROT1Prog/Hamlib in Betrieb zu nehmen und zu warten.
Hinweis: In der RMS-Software wird der Rotor nativ ueber rotctl gesteuert (Model-ID standardmaessig 902).
Quick Start (10 Zeilen)
sudo apt update && sudo apt install -y hamlib-utils
export ROTOR_DEV=/dev/rms-ftdi-uart
rotctl -m 902 -r "${ROTOR_DEV}" p p
rotctl -m 902 -r "${ROTOR_DEV}" -Z --set-conf=post_write_delay=0 p p P 90 0 p p
rotctl -m 902 -r "${ROTOR_DEV}" p p
grep -E '^(RMS_ROTOR_DEV|ROTOR_ROTCTL_MODEL|ROTOR_SET_ENABLED)=' /etc/remotestation-arcg/remotestation-arcg.env
sudo systemctl restart remotestation-arcg
curl -sS -H "Authorization: Bearer <token>" http://127.0.0.1:8080/v1/openwebrx/rotor/status
Wenn Zeile 3 und 5 plausible Azimuth-Werte liefern, ist die Basisverbindung ok.
1) Voraussetzungen
- Linux-Host mit installiertem
rotctl(Pakethamlib-utils) - Serielles Device fuer den Rotor (z. B.
/dev/rms-ftdi-uartoder dediziert/dev/rms-rotor) - Dienstuser
remotestationmit Zugriff auf serielle Devices (typisch Gruppedialout)
Pruefen:
command -v rotctl
ls -l /dev/rms-*
id -nG remotestation
2) Relevante RMS-Konfiguration
In .env (oder produktiv in /etc/remotestation-arcg/remotestation-arcg.env):
RMS_ROTOR_DEV=/dev/rms-ftdi-uart
ROTOR_ROTCTL_MODEL=902
ROTOR_SET_ENABLED=true
ROTOR_SET_TIMEOUT_MS=20000
ROTOR_GET_TIMEOUT_MS=10000
ROTOR_STATUS_RETRY_COUNT=6
ROTOR_STATUS_RETRY_DELAY_MS=400
ROTOR_POST_SET_STATUS_TIMEOUT_MS=5000
Danach Dienst neu starten:
sudo systemctl restart remotestation-arcg
3) Funktionstest auf Shell-Ebene
Status lesen:
rotctl -m 902 -r /dev/rms-ftdi-uart p p
Sollzustand: Ausgabe enthaelt verwertbare Azimuth-Information (bei p p typischerweise erste numerische Zeile = Azimuth, zweite = Elevation).
Setzen auf Zielwinkel:
rotctl -m 902 -r /dev/rms-ftdi-uart -Z --set-conf=post_write_delay=0 p p P 90 0 p p
Die RMS-Software nutzt intern dieses Muster (p p vor/nach P ...) fuer robustes Monitoring.
4) Bedienung in RMS/OpenWebRX
- Rotorstatus:
GET /v1/openwebrx/rotor/status - Rotor setzen:
POST /v1/openwebrx/rotor/set
Wichtig fuer set:
- Nur aktiver Stationsnutzer darf setzen (Owner-Policy).
triggermuss"user"sein (Guard gegen unbeabsichtigte Set-Aktionen).targetmuss zwischen0..360liegen.- Set-Auftraege werden gequeued; ein neuer Zielwert kann einen pending Zielwert ersetzen.
Beispiel:
{
"trigger": "user",
"target": 180
}
5) Kalibrierung (praxisnah)
Die RMS-Software hat aktuell keinen eigenen Azimuth-Offset-Parameter. Kalibrierung passiert daher am Rotor/Controller selbst (ROT1Prog-Seite), RMS liest/steuert dann den kalibrierten Wert.
Empfohlenes Vorgehen:
- Rotor auf bekannten mechanischen Referenzpunkt fahren (z. B. Nordmarke).
- Mit
rotctl ... p pIst-Azimuth lesen. - Falls Istwert nicht zur realen Richtung passt, Offset/Nullpunkt am ROT1Prog/Controller korrigieren.
- Erneut
p ppruefen. - Testfahrten auf mehrere Punkte (z. B. 90/180/270) und Rueckkehr auf Referenzpunkt.
- Erst danach in RMS produktiv nutzen.
6) Monitoring- und Laufzeitverhalten in RMS
- Nach Set-Befehl wird Bewegung aktiv ueber Polling ueberwacht.
- Ziel gilt als erreicht bei <= 5 Grad Abstand.
- Fehlerfaelle:
- Rotor startet nicht (
did not start moving) - Rotor bleibt stehen (
movement stalled) - Ziel nicht innerhalb Timeout (
did not reach target within timeout)
- Rotor startet nicht (
- Bei Statuslesefehlern wird letzter bekannter Wert als
stalegeliefert.
7) Typische Fehlerbilder + Fix
permission denied/cannot open: Device-Rechte/Gruppedialoutpruefen.device not found: falscher Device-Pfad oder udev-Alias fehlt.rotor.set_disabled:ROTOR_SET_ENABLED=false.rotor.set_guard: API-Aufruf ohnetrigger:"user".openwebrx.not_owner: nur aktiver Stationsnutzer darf Rotor steuern.- Statische
0°-Anzeigen: Ausgabeformat vonrotctl p ppruefen; RMS verwirft einzelne unlabeled Zahlenzeilen bewusst.
8) Betriebs-Tipps
- Fuer stabile Geraetezuordnung dedizierten Alias verwenden (
/dev/rms-rotor). - Bei USB-Umstecken immer erst Shell-Test (
rotctl ... p p), dann RMS testen. - Timeouts nur vorsichtig erhoehen; zu hoch kaschiert echte Kommunikationsprobleme.