341 lines
10 KiB
Markdown
341 lines
10 KiB
Markdown
# ROT1Prog Rotorsteuerung (vollstaendige Praxisanleitung fuer RMS)
|
|
|
|
Diese Seite ist die komplette Betriebsanleitung fuer die Einrichtung eines ROT1Prog/AlfaSpid-Controllers in RMS: von der Hardware-Inbetriebnahme ueber Kalibrierung bis zum Produktivbetrieb mit OpenWebRX.
|
|
|
|
Hinweis: In RMS wird der Rotor ueber Hamlib/`rotctl` gesteuert (typisch Modell-ID `902`).
|
|
|
|
## Schnellablauf (wenn du schon Erfahrung hast)
|
|
|
|
```bash
|
|
sudo apt update && sudo apt install -y hamlib-utils
|
|
export ROTOR_DEV=/dev/rms-rotor
|
|
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}" -Z --set-conf=post_write_delay=0 p p P 180 0 p p
|
|
rotctl -m 902 -r "${ROTOR_DEV}" -Z --set-conf=post_write_delay=0 p p P 270 0 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 die Azimuth-Werte plausibel mitlaufen und ein Set auf Zielwinkel sauber endet, ist die Basis ok.
|
|
|
|
## 1) Sicherheits- und Vorbereitungscheck
|
|
|
|
Vor jedem Testlauf:
|
|
|
|
- Antennenumfeld freihalten (keine Personen im Drehbereich).
|
|
- Mechanische Endanschlaege kennen und als Limits im Controller setzen.
|
|
- Not-Aus/Abschaltmoeglichkeit griffbereit halten.
|
|
- Bei erstmaliger Inbetriebnahme mit reduzierter Geschwindigkeit bzw. beobachteter Testfahrt starten.
|
|
|
|
## 2) Hardwareaufbau und Verdrahtung
|
|
|
|
Die genaue Klemmenbelegung kommt aus dem Controllerblatt. Fuer RMS ist entscheidend:
|
|
|
|
- Motorleitungen korrekt angeschlossen.
|
|
- Rueckmeldeleitung (Positionssensor/Poti) stabil und nicht vertauscht.
|
|
- Gemeinsame Masse sauber gefuehrt.
|
|
- Versorgungsspannung innerhalb Spezifikation.
|
|
- Bei langen Leitungen: vernuenftiger Querschnitt, sauberer Schirm/EMV-Aufbau.
|
|
|
|
Praxisregel:
|
|
|
|
- Erst lokalen Controllerbetrieb stabil bekommen.
|
|
- Danach erst PC/Hamlib/RMS anbinden.
|
|
|
|
## 3) Linux/Host Voraussetzungen
|
|
|
|
```bash
|
|
command -v rotctl
|
|
ls -l /dev/rms-*
|
|
id -nG remotestation
|
|
```
|
|
|
|
Erwartung:
|
|
|
|
- `rotctl` vorhanden.
|
|
- Serielles Device sichtbar (z. B. `/dev/rms-rotor`, `/dev/rms-ftdi-uart`).
|
|
- Service-User hat Zugriff (typisch Gruppe `dialout`).
|
|
|
|
## 4) Stabile Device-Zuordnung (empfohlen)
|
|
|
|
Nutze einen festen Alias (`/dev/rms-rotor`) statt wechselnder `ttyUSBx`-Namen.
|
|
|
|
- Vorteil: USB-Reconnect oder Reboot bricht nicht die RMS-Konfiguration.
|
|
- Umsetzung je nach Deploy-Repo per udev-Regel.
|
|
|
|
## 5) Controller-Grundkonfiguration (vor RMS)
|
|
|
|
Auf Controllerseite müssen folgende Punkte sauber gesetzt sein:
|
|
|
|
- Arbeitsbereich (Azimuth-Limits) passend zur realen Mechanik.
|
|
- Null-/Referenzrichtung (typisch geographisch Nord) konsistent zur Stationsdoku.
|
|
- Drehrichtung korrekt (CW/CCW nicht invertiert).
|
|
- Presets optional, aber nicht zwingend fuer RMS.
|
|
|
|
Wichtig: RMS hat keinen eigenen Offset-Parameter fuer Azimuth. Die Wahrheit muss im Controller stimmen.
|
|
|
|
## 6) Bench-Test mit Hamlib
|
|
|
|
Status lesen:
|
|
|
|
```bash
|
|
rotctl -m 902 -r /dev/rms-rotor p p
|
|
```
|
|
|
|
Setzen + Status davor/danach:
|
|
|
|
```bash
|
|
rotctl -m 902 -r /dev/rms-rotor -Z --set-conf=post_write_delay=0 p p P 90 0 p p
|
|
rotctl -m 902 -r /dev/rms-rotor -Z --set-conf=post_write_delay=0 p p P 180 0 p p
|
|
rotctl -m 902 -r /dev/rms-rotor -Z --set-conf=post_write_delay=0 p p P 270 0 p p
|
|
```
|
|
|
|
Sollverhalten:
|
|
|
|
- `p p` liefert konsistente numerische Rueckmeldung.
|
|
- Der Rotor faehrt reproduzierbar auf Zielwinkel.
|
|
- Keine Aussetzer/Time-outs.
|
|
|
|
## 7) RMS-Konfiguration
|
|
|
|
In `/etc/remotestation-arcg/remotestation-arcg.env` (oder entsprechender Runtime-ENV):
|
|
|
|
```env
|
|
RMS_ROTOR_DEV=/dev/rms-rotor
|
|
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:
|
|
|
|
```bash
|
|
sudo systemctl restart remotestation-arcg
|
|
```
|
|
|
|
## 8) API-Bedienung in RMS/OpenWebRX
|
|
|
|
- Status: `GET /v1/openwebrx/rotor/status`
|
|
- Setzen: `POST /v1/openwebrx/rotor/set`
|
|
|
|
Beispiel-Set:
|
|
|
|
```json
|
|
{
|
|
"trigger": "user",
|
|
"target": 180
|
|
}
|
|
```
|
|
|
|
Guards:
|
|
|
|
- Nur aktiver Stationsnutzer darf setzen.
|
|
- `trigger` muss `"user"` sein.
|
|
- Zielbereich ist `0..360`.
|
|
|
|
## 9) Kalibrierung (sauberer Ablauf)
|
|
|
|
Ziel: Controllerwert und reale Antennenrichtung muessen deckungsgleich sein.
|
|
|
|
Schrittfolge:
|
|
|
|
1. Mechanische Referenz anfahren (z. B. Nordmarke).
|
|
2. `rotctl ... p p` lesen und dokumentieren.
|
|
3. Abweichung am Controller korrigieren (Nullpunkt/Offset laut Controller-Setup).
|
|
4. Erneut Referenz pruefen.
|
|
5. Vierpunkt-Test fahren (`0/90/180/270`).
|
|
6. Zur Referenz zurueckfahren und Drift pruefen.
|
|
7. Erst danach RMS produktiv freigeben.
|
|
|
|
Akzeptanzkriterium:
|
|
|
|
- Reproduzierbare Rueckkehr auf Referenzpunkt.
|
|
- Keine systematische Fehlanzeige in eine Richtung.
|
|
|
|
## 10) Lange Kabelwege / Stoerungen
|
|
|
|
Typische Effekte:
|
|
|
|
- Unruhige Positionswerte.
|
|
- Sporadische Lesefehler.
|
|
- Verzoegerter Start/Stopp.
|
|
|
|
Massnahmen:
|
|
|
|
- Leitungsfuehrung und Massekonzept verbessern.
|
|
- Schirmung pruefen.
|
|
- Steckverbinder nachziehen/reinigen.
|
|
- Erst danach Software-Timeouts anheben.
|
|
|
|
## 11) Monitoringverhalten in RMS
|
|
|
|
- Nach `set` pollt RMS den Fortschritt.
|
|
- Ziel gilt als erreicht bei kleinem Restabstand (typisch <= 5 Grad).
|
|
- Status kann bei Lesefehlern als `stale` geliefert werden.
|
|
|
|
Fehlermuster:
|
|
|
|
- `did not start moving`
|
|
- `movement stalled`
|
|
- `did not reach target within timeout`
|
|
|
|
## 12) Troubleshooting-Runbook
|
|
|
|
### A) `permission denied` / `cannot open`
|
|
|
|
- Device-Rechte pruefen.
|
|
- `remotestation` in `dialout`.
|
|
- Service neu starten.
|
|
|
|
### B) `device not found`
|
|
|
|
- Alias fehlt oder falscher Device-Pfad.
|
|
- Udev-Regel pruefen.
|
|
|
|
### C) Set wird vom API-Guard abgelehnt
|
|
|
|
- `ROTOR_SET_ENABLED=true`.
|
|
- `trigger: "user"` senden.
|
|
- Owner-Status der Session pruefen.
|
|
|
|
### D) Anzeige bleibt statisch / 0 Grad
|
|
|
|
- `rotctl p p` Rohformat pruefen.
|
|
- Controller-Rueckmeldung auf Sensorseite verifizieren.
|
|
|
|
## 13) Produktiv-Freigabecheck
|
|
|
|
Vor Go-Live einmal komplett:
|
|
|
|
1. 15-30 Minuten zyklische Testfahrten.
|
|
2. Mehrfaches Setzen auf gleiche Ziele (Wiederholgenauigkeit).
|
|
3. Rueckkehrtest auf Referenzpunkt.
|
|
4. RMS/API/OpenWebRX konsistent?
|
|
5. Fehlerfrei ueber Service-Restart?
|
|
|
|
## 14) Wartung
|
|
|
|
- Quartalsweise Steckverbinder und Zugentlastung pruefen.
|
|
- Nach mechanischen Eingriffen immer neu kalibrieren.
|
|
- Nach USB/Kernel/Hostwechsel immer zuerst Shell-Test (`rotctl`), dann RMS.
|
|
|
|
## 15) Verwandte Dokumente
|
|
|
|
- Hamlib Plugin: `docs/plugins/rms-rotor-hamlib.md`
|
|
- Hersteller-Referenzhinweis: `docs/rotor-alfaspid-rak-rot1prog-manual-notes.md`
|
|
- Vollstaendiges Hersteller-PDF im Repo: `docs/RAK_Rot1Prog.pdf`
|
|
|
|
## 16) Herstellerdetails aus ROT1Prog-Manual (15 SEP 2022)
|
|
|
|
Die folgenden Punkte sind explizit aus der Controller-Anleitung uebernommen und fuer RMS-Betrieb relevant.
|
|
|
|
### 16.1 Controller-Funktionen und Eckdaten
|
|
|
|
- Digitale Anzeige mit 1-Grad-Aufloesung.
|
|
- Versorgung: `13.8..18 V` bei ca. `3..8 A`.
|
|
- Elektronische Overtravel-Range: insgesamt `720 Grad` (normal 360 + je 180 Overtravel links/rechts).
|
|
- Programmierbare Limits (u. a. fuer Side-Mount).
|
|
- USB-Schnittstelle fuer PC-Steuerung.
|
|
- Optionales Mouse-Panel mit L/R/Stop und 6 Preset-Tasten.
|
|
|
|
### 16.2 Front-/Back-Hinweise
|
|
|
|
- Front: L/R-Tasten, Setup-/Function-Tasten, 4-stellige Anzeige, Overlap-Indikator.
|
|
- Legacy-Serienversion (nicht mehr produziert):
|
|
- 4-Pin Rotatoranschluss: Pin 1/2 Motor Drive, Pin 3/4 Impulse Sense.
|
|
- Blue/Brown Motorleitungen sind laut Manual in der Polaritaet unkritisch.
|
|
|
|
### 16.3 Setup-Menuepunkte (ROT1Prog)
|
|
|
|
Der Setup-Dialog durchlaeuft u. a. diese Parameter:
|
|
|
|
- Ratio: `1.00` (Default) bzw. `0.80` bei Ring-Version.
|
|
- Programmierbares High Limit (clockwise).
|
|
- Programmierbares Low Limit (counter-clockwise).
|
|
- Programmierbarer Reset-Wert (`0` oder `180`).
|
|
- Presets `P1..P6`.
|
|
- Program Simulation (Emulation).
|
|
- Heading Adjust (blinkende Zahlen).
|
|
|
|
### 16.4 Program Simulation / Emulation
|
|
|
|
Im Manual aufgefuehrte Simulationsmodi:
|
|
|
|
- `Spid`
|
|
- `Orion`
|
|
- `Hygain`
|
|
- `Yaesu`
|
|
|
|
Manual-Hinweis: Alfa empfiehlt die Fremdprotokolle nicht aktiv zu supporten; ausserdem koennen manche Programme mit den seriellen Anforderungen nicht sauber arbeiten.
|
|
|
|
### 16.5 PC-Kommunikation
|
|
|
|
- Serielle Einstellungen: `1200-8-N-1`.
|
|
- USB-Version mit FTDI `FT232RL`.
|
|
- Linux-Portsuche laut Manual:
|
|
- `ls /dev/ttyUSB*`
|
|
- macOS-Portsuche laut Manual:
|
|
- `ls /dev/tty.*`
|
|
|
|
### 16.6 Betriebsmodi
|
|
|
|
Laut Manual sind folgende Modi vorgesehen:
|
|
|
|
- Normal Operations Mode
|
|
- Half Auto Mode
|
|
- Auto Mode
|
|
- Preset Mode (mit optionaler Mouse)
|
|
|
|
Kurzlogik:
|
|
|
|
- **Normal**: L/R fahren solange Taste gedrueckt ist.
|
|
- **Half Auto**: Zielrichtung vorwaehlen, nach kurzer Inaktivitaet beginnt automatische Fahrt.
|
|
- **Auto**: Befehle von PC-Software; manuelle Tasten als Override.
|
|
- **Preset**: Preset-Tasten fahren auf gespeicherte Headings.
|
|
|
|
### 16.7 Reset/Kalibrierung und Overtravel-Anzeige
|
|
|
|
Manual-Kernpunkte:
|
|
|
|
- Beim Reset wird nicht automatisch alles auf "True North" gezwungen; Kalibrierung erfolgt bewusst.
|
|
- Reset-Prozedur beeinflusst nicht automatisch Presets/Limits.
|
|
- Overtravel-Indikator:
|
|
- steady dot fuer eine Seite,
|
|
- blinking dot fuer die andere Overtravel-Seite.
|
|
|
|
Fuer RMS bedeutet das: Controller-Referenz immer dokumentieren und nach Servicearbeiten reproduzierbar neu anfahren.
|
|
|
|
### 16.8 208-Condition (Manual-Fehlerbild)
|
|
|
|
Die Anleitung beschreibt einen Sonderfall, bei dem der Controller scheinbar ohne Nutzerkommando auf `208` Grad fahren kann (Command-Flood/Overload-Szenario).
|
|
|
|
Praxisregel fuer RMS:
|
|
|
|
- Kommandos nicht unnoetig dicht hintereinander feuern.
|
|
- Bei Automationspfaden kleine Guard-Delays einplanen.
|
|
- Bei reproduzierbarem Verhalten zuerst lokale Controllerbedienung und Sense-Leitung pruefen.
|
|
|
|
### 16.9 Motor-Sense/Schutzhinweis
|
|
|
|
Laut Manual wird bei fehlender Sense-Rueckmeldung der Motor durch Schutzlogik abgeschaltet.
|
|
|
|
- Symptom: Motor startet kurz und stoppt wieder.
|
|
- Pruefen: Sense-/Reed-Wiring und mechanische Blockade.
|
|
|
|
### 16.10 Warranty/Service-Hinweis
|
|
|
|
Die Anleitung enthaelt 12-Monats-Gewaehrleistung mit einschraenkenden Bedingungen (u. a. kein Schutz bei Fremdgeraetekombination, Blitz, Fehlbedienung etc.).
|
|
|
|
Fuer RMS-Dokumentation bleibt entscheidend:
|
|
|
|
- Bei Hardwareauffaelligkeiten zuerst Bench-Test auf Controllerseite,
|
|
- dann RMS-Integration getrennt validieren,
|
|
- und Servicefaelle inkl. Kaufnachweis dokumentieren.
|