Expand docs with full Winegard hardware reference
Add Carryout and Trav'ler Pro to firmware variant table, SK-1000 physical specs, error messages, calibration procedures, emergency stow notes, motor behavior details, and Gpredict setup config. Note leap-frog bug is also present in Pro repo.
This commit is contained in:
parent
780de4fe2b
commit
579bad9921
97
CLAUDE.md
97
CLAUDE.md
@ -34,19 +34,46 @@ cli.py — Click CLI with init/serve/pos/move subcommands
|
|||||||
|
|
||||||
## Firmware Variants
|
## Firmware Variants
|
||||||
|
|
||||||
Three known Winegard dish variants exist (Gabe Emerson / saveitforparts):
|
Four known Winegard dish variants documented by Gabe Emerson (KL1FI) / saveitforparts:
|
||||||
|
|
||||||
| Detail | HAL 0.0.00 | HAL 2.05.003 | Trav'ler Pro |
|
| Detail | HAL 0.0.00 | HAL 2.05.003 | Trav'ler Pro | Carryout |
|
||||||
|--------|-----------|-------------|-------------|
|
|--------|-----------|-------------|-------------|---------|
|
||||||
| **Repo** | saveitforparts/Travler_Rotor | saveitforparts/Trav-ler-Rotor-For-HAL-2.05 | saveitforparts/Travler-Pro-Rotor |
|
| **Repo** | Travler_Rotor | Trav-ler-Rotor-For-HAL-2.05 | Travler-Pro-Rotor | Carryout-Rotor |
|
||||||
| **Connection** | RS-485 / RJ-25 | RS-485 / RJ-25 | USB A-to-A |
|
| **Connection** | RS-485 / RJ-25 | RS-485 / RJ-25 | USB A-to-A (`ttyACM0`) | RS-485 / RJ-25 |
|
||||||
| **Motor submenu** | `mot` | `motor` | `mot` |
|
| **Motor submenu** | `mot` | `motor` | `odu` then `mot` | N/A (`target` + `g`) |
|
||||||
| **Search kill** | `os` -> `kill Search` -> `q` | `ngsearch` -> `s` -> `q` | `os` -> `kill Search` |
|
| **Motor control** | `a <id> <deg>` | `a <id> <deg>` | `a <id> <deg>` | `g <az> <el>` only |
|
||||||
| **Boot signal** | `NoGPS` | `NoGPS` or `No LNB Voltage` | undocumented |
|
| **Search kill** | `os` -> `kill Search` | `ngsearch` -> `s` -> `q` | `os` -> `kill Search` | N/A |
|
||||||
| **Max elevation** | 90 deg | 90 deg | 75 deg (hardware limit) |
|
| **Boot signal** | `NoGPS` | `NoGPS` or `No LNB Voltage` | undocumented | N/A |
|
||||||
| **Tested model** | LG-2112 | LG-2112 | SK2DISH |
|
| **Min elevation** | 15 deg (firmware) | 15 deg (firmware) | 12 deg (firmware) | ~22 deg (physical) |
|
||||||
|
| **Max elevation** | 90 deg | 90 deg | 75 deg (hardware cap!) | NVS 102 override |
|
||||||
|
| **Position query** | `a` -> `AZ = / EL =` | `a` -> `AZ = / EL =` | `a` -> `AZ = / EL =` | raw ints / 100 |
|
||||||
|
| **Tested model** | LG-2112 | LG-2112 | SK2DISH | 2003 Carryout |
|
||||||
|
| **HAL version** | 0.0.00 | 2.05.003 | unknown | 1.00.065 |
|
||||||
|
|
||||||
Related: saveitforparts/Carryout-Rotor (Winegard Carryout, HAL 1.00.065, very similar commands).
|
### Key Variant Differences
|
||||||
|
|
||||||
|
- **Trav'ler Pro `odu` command:** The Pro's IDU has its own MCU. You must first tunnel to the ODU with `odu` before entering the motor submenu. The regular Trav'ler's IDU is a dumb RS-485 passthrough.
|
||||||
|
- **Carryout uses `g` not `a`:** The Carryout has no individual motor addressing. It uses `target` to enter targeting mode, then `g <az> <el>` for combined moves. It also can't query its initial position.
|
||||||
|
- **Carryout has no limit switches:** Uses motor stalling to detect mechanical boundaries (audible grinding).
|
||||||
|
- **Pro has the same leap-frog bug** as the regular Trav'ler (copy-pasted).
|
||||||
|
- **Pro NVS submenu** has a `d` command to dump all NVS values (undocumented for other variants).
|
||||||
|
|
||||||
|
## Hardware Specs (SK-1000)
|
||||||
|
|
||||||
|
| Spec | Value |
|
||||||
|
|------|-------|
|
||||||
|
| Weight | 45 lbs |
|
||||||
|
| Stow dimensions | 10"H x 42"L x 26"W |
|
||||||
|
| Stow height | 9.75" |
|
||||||
|
| Max deployed height | 37" above mount |
|
||||||
|
| Arm reach | 32.5" from base center |
|
||||||
|
| Dish size | ~33" x 23" (Ku-band reflector) |
|
||||||
|
| Azimuth range | 0-455 deg (before cable wrap) |
|
||||||
|
| Power input | 120VAC -> 12VDC (RP-SK87 supply) |
|
||||||
|
| LNB bias | 12-18VDC via coax |
|
||||||
|
| Motor type | Likely stepper with gearing (unconfirmed) |
|
||||||
|
| Satellites (DISH) | 110, 119, 129 (61.5 manual only) |
|
||||||
|
| Satellites (Bell) | 82, 91 |
|
||||||
|
|
||||||
## Hardware Protocol Notes
|
## Hardware Protocol Notes
|
||||||
|
|
||||||
@ -54,10 +81,12 @@ Related: saveitforparts/Carryout-Rotor (Winegard Carryout, HAL 1.00.065, very si
|
|||||||
- Motor commands: `a <motor_id> <degrees>` (0=azimuth, 1=elevation)
|
- Motor commands: `a <motor_id> <degrees>` (0=azimuth, 1=elevation)
|
||||||
- Position query: `a` (in motor submenu) returns `AZ = <val> EL = <val> SK = <val>`
|
- Position query: `a` (in motor submenu) returns `AZ = <val> EL = <val> SK = <val>`
|
||||||
- Two motor control methods:
|
- Two motor control methods:
|
||||||
- `a <id> <deg>` — queues command, waits for current motor to stop before next
|
- `a <id> <deg>` — queues command, waits for current motor to finish. Tolerant of rapid command streams from Gpredict.
|
||||||
- `g <az> <el> <sk>` — immediate move, aborts on any new keystroke
|
- `g <az> <el> <sk>` — immediate move, aborts on any new keystroke/character. Some firmware has a typo listing the order as az/sk/el.
|
||||||
|
- Skew motor can run simultaneously with AZ or EL (the others are mutually exclusive)
|
||||||
- Elevation floor: HAL 2.05 unreliable below 15 degrees with direct motor commands
|
- Elevation floor: HAL 2.05 unreliable below 15 degrees with direct motor commands
|
||||||
- Cable wrap limit: usually 360 or 455 degrees, dish reverses at limit
|
- Cable wrap limit: usually 360 or 455 degrees, dish reverses at limit
|
||||||
|
- Console does not accept backspace — hit enter to clear on typo
|
||||||
|
|
||||||
### RS-485 Pinout (RJ-25, bottom view, tip up)
|
### RS-485 Pinout (RJ-25, bottom view, tip up)
|
||||||
|
|
||||||
@ -79,16 +108,20 @@ a — show position (in motor submenu)
|
|||||||
a <id> <deg> — move motor to absolute position
|
a <id> <deg> — move motor to absolute position
|
||||||
g <az> <el> — go to AZ/EL (aborts on new input)
|
g <az> <el> — go to AZ/EL (aborts on new input)
|
||||||
q — exit current submenu
|
q — exit current submenu
|
||||||
|
odu — tunnel to outdoor unit (Trav'ler Pro only)
|
||||||
os — enter OS submenu
|
os — enter OS submenu
|
||||||
tasks — list running tasks
|
tasks — list running tasks
|
||||||
kill <name> — kill a named task (e.g. "kill Search")
|
kill <name> — kill a named task (e.g. "kill Search")
|
||||||
ngsearch — enter search submenu (HAL 2.05 only)
|
ngsearch — enter search submenu (HAL 2.05 only)
|
||||||
s — stop search
|
s — stop search
|
||||||
nvs — enter non-volatile storage submenu
|
nvs — enter non-volatile storage submenu
|
||||||
|
d — dump all values (Pro only, undocumented on others)
|
||||||
e <idx> — read NVS value
|
e <idx> — read NVS value
|
||||||
e <idx> <v> — write NVS value
|
e <idx> <v> — write NVS value
|
||||||
s — save changes
|
s — save changes
|
||||||
|
dvb — signal info submenu (Pro only)
|
||||||
reboot — reboot firmware
|
reboot — reboot firmware
|
||||||
|
stow — fold dish flat (caution: modified feeds may not survive)
|
||||||
```
|
```
|
||||||
|
|
||||||
### Known NVS Indices
|
### Known NVS Indices
|
||||||
@ -99,17 +132,51 @@ reboot — reboot firmware
|
|||||||
| 125 | Search minimum elevation |
|
| 125 | Search minimum elevation |
|
||||||
| 127 | Safe minimum elevation |
|
| 127 | Safe minimum elevation |
|
||||||
|
|
||||||
|
### Error Messages
|
||||||
|
|
||||||
|
| Message | Meaning |
|
||||||
|
|---------|---------|
|
||||||
|
| `AZ MOTOR STALLED` | Obstruction preventing rotation |
|
||||||
|
| `EL MOTOR STALLED` | Obstruction preventing elevation change |
|
||||||
|
| `EL Motor Home Failure` | Requires EL recalibration via IDU menu |
|
||||||
|
|
||||||
### IDU/ODU Cable Wiring (if cut)
|
### IDU/ODU Cable Wiring (if cut)
|
||||||
|
|
||||||
Top row: Green, Yellow, Orange. Bottom row: Red, Brown, Black.
|
Top row: Green, Yellow, Orange. Bottom row: Red, Brown, Black.
|
||||||
|
|
||||||
### Power
|
### Power
|
||||||
|
|
||||||
48-52VDC power supply for the IDU. The internal coax supplies 14-18VDC bias — do not connect 5V equipment without bypassing the power injector.
|
120VAC input to RP-SK87 power supply, outputs 12VDC to IDU. Internal coax carries 12-18VDC bias for LNB — do not connect 5V equipment (SDR LNAs, etc.) without bypassing the power injector.
|
||||||
|
|
||||||
|
### Physical Setup
|
||||||
|
|
||||||
|
- Base marked with arrows and "BACK" at 0/360 deg (North)
|
||||||
|
- Align "BACK" with true North for accurate tracking
|
||||||
|
- Gpredict rotor config: 127.0.0.1:4533, 0->180->360 mode, min EL 15, max EL 90
|
||||||
|
- No obstructions taller than 8" within 32.5" of base center
|
||||||
|
|
||||||
|
### Calibration
|
||||||
|
|
||||||
|
On power-up, the dish performs calibration movements to establish position and cable wrap limits (~10-15 minutes on Carryout, shorter on Trav'ler). After calibration, firmware automatically starts a TV satellite search — the init sequence kills this.
|
||||||
|
|
||||||
|
EL recalibration (via IDU buttons): POWER -> ENTER (hold 2s) -> User Menu -> INSTALLATION -> Calibrate EL -> confirm hard stop position.
|
||||||
|
|
||||||
|
### Emergency Manual Stow
|
||||||
|
|
||||||
|
Last resort only. 5/16" socket + 6" extension into auxiliary drive hole. Turn clockwise slowly. Ensure arm faces "rear" label before lowering. Improper execution can damage motor.
|
||||||
|
|
||||||
## Known Bugs (from upstream)
|
## Known Bugs (from upstream)
|
||||||
|
|
||||||
- Leap-frog elevation bug: original `travler_rotor.py` lines 98-105 modify `target_az` instead of `target_el`. Fixed in `leapfrog.py`. See `docs/bugs.md`.
|
- **Leap-frog elevation bug:** original `travler_rotor.py` lines 98-105 modify `target_az` instead of `target_el`. Fixed in `leapfrog.py`. Present in both Trav'ler and Trav'ler Pro repos. See `docs/bugs.md`.
|
||||||
|
|
||||||
|
## Upstream References
|
||||||
|
|
||||||
|
- github.com/saveitforparts/Travler_Rotor (HAL 0.0.00)
|
||||||
|
- github.com/saveitforparts/Trav-ler-Rotor-For-HAL-2.05 (HAL 2.05)
|
||||||
|
- github.com/saveitforparts/Travler-Pro-Rotor (Pro, USB)
|
||||||
|
- github.com/saveitforparts/Carryout-Rotor (Carryout, HAL 1.00.065)
|
||||||
|
- Gabe Emerson / KL1FI — gabe@saveitforparts.com
|
||||||
|
- YouTube: Trav'ler v1 demo (youtu.be/X1hnReHepFI), v2 demo (youtube.com/watch?v=URJZjo5EcpQ)
|
||||||
|
|
||||||
## Testing
|
## Testing
|
||||||
|
|
||||||
|
|||||||
@ -37,5 +37,9 @@ elif target_el - current_el < -1:
|
|||||||
- Azimuth received double compensation (its own delta + the elevation delta),
|
- Azimuth received double compensation (its own delta + the elevation delta),
|
||||||
causing over-correction on the azimuth axis
|
causing over-correction on the azimuth axis
|
||||||
|
|
||||||
|
**Affected repos:**
|
||||||
|
- `saveitforparts/Trav-ler-Rotor-For-HAL-2.05` — `travler_rotor.py` lines 98-105
|
||||||
|
- `saveitforparts/Travler-Pro-Rotor` — same bug copy-pasted into `travler_pro_rotor.py`
|
||||||
|
|
||||||
**Fix:** In `travler_rotor.leapfrog.apply_leapfrog()`, the elevation
|
**Fix:** In `travler_rotor.leapfrog.apply_leapfrog()`, the elevation
|
||||||
compensation correctly modifies `target_el`.
|
compensation correctly modifies `target_el`.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user