Skip to content

Firmware Variants

Five Winegard dish variants have been documented by Gabe Emerson (KL1FI) / saveitforparts and cdavidson0522. Each runs different firmware with its own serial protocol, motor commands, and boot sequence.

DetailHAL 0.0.00HAL 2.05.003Trav’ler ProCarryoutCarryout G2
RepoTravler_RotorTrav-ler-Rotor-For-HAL-2.05Travler-Pro-RotorCarryout-Rotorwinegard-sky-scan
ConnectionRS-485 / RJ-25RS-485 / RJ-25USB A-to-A (ttyACM0)RS-485 / RJ-25RS-422 / RJ-12 6P6C
Baud rate57600576005760057600115200
Motor submenumotmotorodu then motN/A (target + g)mot
Motor controla <id> <deg>a <id> <deg>a <id> <deg>g <az> <el> onlya <id> <deg>
Search killos -> kill Searchngsearch -> s -> qos -> kill SearchN/ANVS 20 (permanent disable)
Boot signalNoGPSNoGPS or No LNB VoltageundocumentedN/ABoot Complete then Loc Startup: IDU NOT Present
Min elevation15 deg15 deg12 deg22 deg18 deg
Max elevation90 deg90 deg75 deg (hardware cap)73 deg (NVS 102 override)65 deg
Position querya -> AZ = / EL =a -> AZ = / EL =a -> AZ = / EL =raw ints / 100a -> floats
Tested modelLG-2112LG-2112SK2DISH2003 CarryoutCarryout G2
HAL version0.0.002.05.003unknown1.00.06502.02.48
Prompt char> (likely)> (likely)undocumentedundocumentedTRK> / MOT> / NVS>
Position formatAZ = / EL =AZ = / EL =AZ = / EL =raw ints / 100Angle[0] = / Angle[1] =
DVB tunerunknownunknownunknownunknownBCM4515 (Broadcom)
MCUunknownunknownunknownunknownNXP MK60DN512VLQ10
Motor driverunknownunknownunknownunknown2x Allegro A3981

The original Trav’ler firmware found on older LG-2112 units.

  • Connection: RS-485 half-duplex via RJ-25 at 57600 baud
  • Motor submenu: mot
  • Motor commands: a <id> <deg> for individual motor control (0=AZ, 1=EL)
  • Search kill: Enter os submenu, then kill Search to terminate the satellite search task
  • Boot signal: NoGPS indicates calibration is complete
  • Position format: AZ = <val> EL = <val> SK = <val>
  • Elevation range: 15 — 90 degrees
  • Source: github.com/saveitforparts/Travler_Rotor
  • 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 2003 Carryout has no individual motor addressing. It uses target to enter targeting mode, then g <az> <el> for combined moves. It also cannot query its initial position.

  • Carryout has no limit switches: Uses motor stalling to detect mechanical boundaries (audible grinding during calibration).

  • Pro has the same leap-frog bug as the regular Trav’ler (copy-pasted code). Fixed in this project’s leapfrog.py.

  • NVS d command dumps all NVS values. Confirmed on Pro and Carryout G2; likely available on all variants.

  • 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.

  • Polarity matters on the G2: A/B (or +/-) labeling is not standardized. Garbled data at the correct baud rate means the RX pair polarity is swapped. Silent failure (no response from dish) means the TX pair polarity is swapped.

  • Carryout G2 position format differs: Position query a in MOT> returns Angle[0] = 180.00 / Angle[1] = 45.00 instead of the AZ = / EL = format used by HAL 0.0.00 and HAL 2.05.

  • Carryout G2 has h <id> homing: Explicit motor home-to-reference command. Not documented on other variants.

  • Carryout G2 has DVB/RSSI: BCM4515 tuner provides signal strength measurement, DVB analysis, DiSEqC 2.x control, and a built-in radio telescope mode (azscanwxp).