Add Carryout G2 as fifth firmware variant with protocol support
Implement CarryoutG2Protocol based on cdavidson0522/winegard-sky-scan: prompt-terminated reads via '>' char, 115200 baud RS-422, h <id> motor homing, DVB/RSSI signal strength measurement. Update CLAUDE.md with G2 variant column, NVS index 20, dvb sub-commands, and wiring differences. CLI now accepts --firmware g2.
This commit is contained in:
parent
b68bb1f6f4
commit
e0488eb85a
4 changed files with 212 additions and 21 deletions
45
CLAUDE.md
45
CLAUDE.md
|
|
@ -34,21 +34,23 @@ cli.py — Click CLI with init/serve/pos/move subcommands
|
|||
|
||||
## Firmware Variants
|
||||
|
||||
Four known Winegard dish variants documented by Gabe Emerson (KL1FI) / saveitforparts:
|
||||
Five known Winegard dish variants documented by Gabe Emerson (KL1FI) / saveitforparts and cdavidson0522:
|
||||
|
||||
| Detail | HAL 0.0.00 | HAL 2.05.003 | Trav'ler Pro | Carryout |
|
||||
|--------|-----------|-------------|-------------|---------|
|
||||
| **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 (`ttyACM0`) | RS-485 / RJ-25 |
|
||||
| **Motor submenu** | `mot` | `motor` | `odu` then `mot` | N/A (`target` + `g`) |
|
||||
| **Motor control** | `a <id> <deg>` | `a <id> <deg>` | `a <id> <deg>` | `g <az> <el>` only |
|
||||
| **Search kill** | `os` -> `kill Search` | `ngsearch` -> `s` -> `q` | `os` -> `kill Search` | N/A |
|
||||
| **Boot signal** | `NoGPS` | `NoGPS` or `No LNB Voltage` | undocumented | N/A |
|
||||
| **Min elevation** | 15 deg (firmware) | 15 deg (firmware) | 12 deg (firmware) | 22 deg (firmware-enforced) |
|
||||
| **Max elevation** | 90 deg | 90 deg | 75 deg (hardware cap!) | 73 deg (firmware default, 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 |
|
||||
| Detail | HAL 0.0.00 | HAL 2.05.003 | Trav'ler Pro | Carryout | Carryout G2 |
|
||||
|--------|-----------|-------------|-------------|---------|------------|
|
||||
| **Repo** | Travler_Rotor | Trav-ler-Rotor-For-HAL-2.05 | Travler-Pro-Rotor | Carryout-Rotor | winegard-sky-scan |
|
||||
| **Connection** | RS-485 / RJ-25 | RS-485 / RJ-25 | USB A-to-A (`ttyACM0`) | RS-485 / RJ-25 | RS-422 / RJ-12 6P6C |
|
||||
| **Baud rate** | 57600 | 57600 | 57600 | 57600 | 115200 |
|
||||
| **Motor submenu** | `mot` | `motor` | `odu` then `mot` | N/A (`target` + `g`) | `mot` |
|
||||
| **Motor control** | `a <id> <deg>` | `a <id> <deg>` | `a <id> <deg>` | `g <az> <el>` only | `a <id> <deg>` |
|
||||
| **Search kill** | `os` -> `kill Search` | `ngsearch` -> `s` -> `q` | `os` -> `kill Search` | N/A | NVS 20 (permanent disable) |
|
||||
| **Boot signal** | `NoGPS` | `NoGPS` or `No LNB Voltage` | undocumented | N/A | undocumented |
|
||||
| **Min elevation** | 15 deg (firmware) | 15 deg (firmware) | 12 deg (firmware) | 22 deg (firmware-enforced) | 18 deg (firmware) |
|
||||
| **Max elevation** | 90 deg | 90 deg | 75 deg (hardware cap!) | 73 deg (firmware default, NVS 102 override) | 65 deg (firmware) |
|
||||
| **Position query** | `a` -> `AZ = / EL =` | `a` -> `AZ = / EL =` | `a` -> `AZ = / EL =` | raw ints / 100 | `a` -> floats |
|
||||
| **Tested model** | LG-2112 | LG-2112 | SK2DISH | 2003 Carryout | Carryout G2 |
|
||||
| **HAL version** | 0.0.00 | 2.05.003 | unknown | 1.00.065 | unknown |
|
||||
| **Prompt char** | `>` (likely) | `>` (likely) | undocumented | undocumented | `>` (confirmed) |
|
||||
|
||||
### Key Variant Differences
|
||||
|
||||
|
|
@ -56,8 +58,12 @@ Four known Winegard dish variants documented by Gabe Emerson (KL1FI) / saveitfor
|
|||
- **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).
|
||||
- **NVS `d` command** dumps all NVS values. Confirmed on Pro and Carryout G2; likely available on all variants.
|
||||
- **Carryout DIP switches:** All switches to off (up) may disable search mode, but behavior varies by unit.
|
||||
- **Carryout G2 uses `a` not `g`:** Unlike the 2003 Carryout, the G2 uses standard `a <id> <deg>` motor addressing and the `mot` submenu — protocol-compatible with the Trav'ler family.
|
||||
- **Carryout G2 is RS-422 full-duplex:** Separate TX/RX pairs at 115200 baud via RJ-12 6P6C, vs. RS-485 half-duplex at 57600 on the Trav'ler variants. Requires a USB-to-RS422 converter (5V TTL).
|
||||
- **Carryout G2 has `h <id>` homing:** Explicit motor home-to-reference command. Not documented on other variants.
|
||||
- **Carryout G2 has DVB/RSSI:** Signal strength measurement via `dvb` submenu (`lnbdc odu` to enable LNA, `rssi <n>` to sample). Used for sky scanning / RF imaging.
|
||||
|
||||
## Hardware Specs (SK-1000)
|
||||
|
||||
|
|
@ -88,6 +94,7 @@ Four known Winegard dish variants documented by Gabe Emerson (KL1FI) / saveitfor
|
|||
- 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
|
||||
- Console does not accept backspace — hit enter to clear on typo
|
||||
- Firmware prompt character is `>` (ASCII 62) — used for reliable response termination in prompt-terminated read strategies
|
||||
|
||||
### RS-485 Pinout (RJ-25, bottom view, tip up)
|
||||
|
||||
|
|
@ -107,6 +114,7 @@ Four known Winegard dish variants documented by Gabe Emerson (KL1FI) / saveitfor
|
|||
motor / mot — enter motor submenu (firmware-dependent)
|
||||
a — show position (in motor submenu)
|
||||
a <id> <deg> — move motor to absolute position
|
||||
h <id> — home motor to reference position (G2, possibly others)
|
||||
g <az> <el> — go to AZ/EL (aborts on new input)
|
||||
q — exit current submenu
|
||||
odu — tunnel to outdoor unit (Trav'ler Pro only)
|
||||
|
|
@ -116,11 +124,14 @@ os — enter OS submenu
|
|||
ngsearch — enter search submenu (HAL 2.05 only)
|
||||
s — stop search
|
||||
nvs — enter non-volatile storage submenu
|
||||
d — dump all values (Pro only, undocumented on others)
|
||||
d — dump all values (confirmed on Pro and G2)
|
||||
d <idx> — dump single value with name/current/saved/default
|
||||
e <idx> — read NVS value
|
||||
e <idx> <v> — write NVS value
|
||||
s — save changes
|
||||
dvb — signal info / LNB signal strength submenu
|
||||
lnbdc odu — enable LNA in ODU mode (powers LNB for reception)
|
||||
rssi <n> — read RSSI signal strength averaged over n samples
|
||||
reboot — reboot firmware
|
||||
stow — fold dish flat (caution: modified feeds may not survive)
|
||||
```
|
||||
|
|
@ -129,6 +140,7 @@ stow — fold dish flat (caution: modified feeds may not survive)
|
|||
|
||||
| Index | Setting |
|
||||
|-------|---------|
|
||||
| 20 | Disable tracker procedure (FALSE/TRUE) |
|
||||
| 102 | Max elevation |
|
||||
| 125 | Search minimum elevation |
|
||||
| 127 | Safe minimum elevation |
|
||||
|
|
@ -179,6 +191,7 @@ Last resort only. 5/16" socket + 6" extension into auxiliary drive hole. Turn cl
|
|||
- github.com/saveitforparts/Travler-Pro-Rotor (Pro, USB)
|
||||
- github.com/saveitforparts/Carryout-Rotor (Carryout, HAL 1.00.065)
|
||||
- github.com/saveitforparts/Carryout-Radio-Telescope (RF scanning/imaging)
|
||||
- github.com/cdavidson0522/winegard-sky-scan (Carryout G2 sky scan + rotator)
|
||||
- Gabe Emerson / KL1FI — gabe@saveitforparts.com
|
||||
- YouTube: Trav'ler v1 demo (youtu.be/X1hnReHepFI), v2 demo (youtube.com/watch?v=URJZjo5EcpQ)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue