Document G2 firmware 02.02.48 findings from live hardware session

Confirmed via DSD TECH SH-U11 RS-422 adapter at 115200 baud:
- Firmware version 02.02.48, bootloader 1.01, Kinetis MCU, BCM4515 DVB
- Position format is Angle[0]/Angle[1], not AZ=/EL= like Trav'ler
- Prompts are TRK>/MOT>/NVS> (not bare >)
- NVS 20 disable tracker confirmed working after power cycle
- Full NVS dump captured (indices 0-143)
- RJ-12 wire colors documented (differ from Davidson's guide)
- RS-422 polarity swap symptoms documented (garbled RX vs silent TX)
- Cable wrap range confirmed: -423.33° to +23.33° (446.66° total)
This commit is contained in:
Ryan Malloy 2026-02-12 09:21:06 -07:00
parent 7db4204d26
commit 71ffafdd3f
2 changed files with 208 additions and 19 deletions

View file

@ -44,13 +44,15 @@ Five known Winegard dish variants documented by Gabe Emerson (KL1FI) / saveitfor
| **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 |
| **Boot signal** | `NoGPS` | `NoGPS` or `No LNB Voltage` | undocumented | N/A | `Boot Complete` then `Loc Startup: IDU NOT Present` |
| **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) |
| **HAL version** | 0.0.00 | 2.05.003 | unknown | 1.00.065 | 02.02.48 |
| **Prompt char** | `>` (likely) | `>` (likely) | undocumented | undocumented | `TRK>` / `MOT>` / `NVS>` (confirmed) |
| **Position format** | `AZ = / EL =` | `AZ = / EL =` | `AZ = / EL =` | raw ints / 100 | `Angle[0] = / Angle[1] =` |
| **DVB tuner** | unknown | unknown | unknown | unknown | BCM4515 (Broadcom) |
### Key Variant Differences
@ -61,9 +63,13 @@ Five known Winegard dish variants documented by Gabe Emerson (KL1FI) / saveitfor
- **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 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. Tested with DSD TECH SH-U11 USB-to-RS422 adapter (FTDI FT232R). **Polarity matters** — A/B (or +/-) labeling is not standardized; if you get garbled data at the correct baud rate, swap the +/- wires on the RX pair. TX pair polarity swap causes the dish to not receive commands (silent failure).
- **Carryout G2 position format differs from Trav'ler:** Position query `a` in `MOT>` submenu returns `Angle[0] = 180.00` / `Angle[1] = 45.00` — not the `AZ = / EL =` format used by HAL 0.0.00 and HAL 2.05. The `CarryoutG2Protocol` parser needs to handle this format.
- **Carryout G2 firmware version 02.02.48** confirmed (Copyright 2013 - Winegard Company). Bootloader version 1.01. MCU: Kinetis (NXP ARM Cortex-M). DVB tuner: BCM4515 (Broadcom).
- **Carryout G2 boot sequence:** Bootloader → SPI init → Motor init (System=12Inch, master=40000 steps, slave=24960 steps, ratio=1.602564) → DVB tuner init (BCM4515) → NVS load → EL home (stall detect, 2s timeout) → AZ home (stall detect, 8s timeout) → `Antenna Facing Front``TRK>` prompt (if tracker disabled) or search start.
- **Carryout G2 cable wrap:** Confirmed from homing output: `wrap_min:-42333 wrap_max:2333` (centidegrees). Total range ~446.66°.
- **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.
- **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. Atmospheric baseline measured at boot: ~494 (18V) / ~499 (13V) wideband.
## Hardware Specs (SK-1000)
@ -136,14 +142,20 @@ The physical connector is an RJ-25 (6P6C) on the Trav'ler or RJ-12 (6P6C) on the
**Carryout G2 pinout (RJ-12, clip away, per Davidson's wiring guide):**
| Pin | Wire Color | RS-422 Function |
|-----|-----------|-----------------|
| 1 | White | GND (PE) |
| 2 | Red | TX+ (TA) — computer→dish |
| 3 | Black | TX- (TB) — computer→dish |
| 4 | Yellow | RX+ (RA) — dish→computer |
| 5 | Green | RX- (RB) — dish→computer |
| 6 | Blue | Not connected |
| Pin | Wire Color (Davidson) | Wire Color (confirmed) | RS-422 Function |
|-----|----------------------|----------------------|-----------------|
| 1 | White | Orange/White | GND (PE) |
| 2 | Red | Orange | TX+ (TA) — computer→dish |
| 3 | Black | Green/White | TX- (TB) — computer→dish |
| 4 | Yellow | Blue | RX+ (RA) — dish→computer |
| 5 | Green | Blue/White | RX- (RB) — dish→computer |
| 6 | Blue | Green | Not connected |
**Note:** Wire colors vary by cable manufacturer. The "confirmed" column is from a standard
6P6C flat cable tested 2026-02-12. Always verify with a multimeter before connecting.
**Polarity is critical:** swapping +/- on the RX pair produces garbled data at the correct
baud rate (systematic bit inversion, not random noise). Swapping +/- on the TX pair causes
silent failure (dish doesn't respond because it can't decode the inverted framing).
**Adapter chain by variant:**
@ -151,6 +163,7 @@ The physical connector is an RJ-25 (6P6C) on the Trav'ler or RJ-12 (6P6C) on the
|---------|---------|-----------|
| Trav'ler (Gabe's setup) | USB→RS232→RS485 (DTECH) | Pins 2-3 only (half-duplex) |
| Carryout G2 (Davidson) | USB→RS422 (5V TTL) | Pins 2-5 (full-duplex) |
| Carryout G2 (confirmed) | DSD TECH SH-U11 USB→RS422 (FTDI FT232R) | Pins 1-5 (full-duplex + GND) |
| Carryout G2 (ESP32) | ESP32 UART2→RS422 module (DIYables) | Pins 2-5 (full-duplex) |
### RS-422 Module Notes (DIYables MAX490)
@ -205,12 +218,24 @@ stow — fold dish flat (caution: modified feeds may not survive)
### Known NVS Indices
| Index | Setting |
|-------|---------|
| 20 | Disable tracker procedure (FALSE/TRUE) |
| 102 | Max elevation |
| 125 | Search minimum elevation |
| 127 | Safe minimum elevation |
Full dump in `docs/g2-nvs-dump.md` (firmware 02.02.48, captured 2026-02-12).
| Index | Setting | Default | Notes |
|-------|---------|---------|-------|
| 20 | Disable Tracker Proc? | FALSE | Set TRUE to prevent TV satellite search on boot |
| 38 | Sleep Mode Timer Secs | 420 | 7 minutes before sleep |
| 41 | Satellite Scan Velocity | 55.00 | °/s during TV search |
| 80 | AZ Max Vel | 65.00 | °/s azimuth max velocity |
| 81 | AZ Max Accel | 400.00 | °/s² azimuth max acceleration |
| 83 | AZ Steps/Rev | 40000 | Stepper steps per full rotation |
| 85 | EL Max Vel | 45.00 | °/s elevation max velocity |
| 88 | EL Steps/Rev | 24960 | Stepper steps per full EL rotation |
| 101 | Minimum Elevation Angle | 18.00 | Firmware floor (degrees) |
| 102 | Maximum Elevation Angle | 65.00 | Firmware ceiling (degrees) |
| 103 | Elevation Home Angle | 65.00 | EL position after homing |
| 112 | Disable Dipswitch? | FALSE | Override physical DIP switches |
| 113 | Dipswitch Value | 101 | DirecTV config (ignored when tracker disabled) |
| 128-133 | AZ/EL PID Gains | varies | Kp/Kv/Ki tuning parameters |
### Error Messages