Skip to main content

Winegard satellite dish control for amateur radio sky tracking

Project description

winegard-birdcage

Serial control library for Winegard motorized satellite dishes, repurposed for amateur radio satellite tracking.

Turns surplus RV/marine satellite TV antennas into steerable ground station dishes via RS-485 or RS-422.

Install

pip install winegard-birdcage

CLI Tools

Two entry points are included:

birdcage -- antenna control and rotctld server:

birdcage init --port /dev/ttyUSB0 --firmware hal205
birdcage pos
birdcage move --az 180.0 --el 45.0
birdcage serve --host 127.0.0.1 --port 4533   # rotctld for Gpredict

console-probe -- automated firmware exploration:

console-probe --port /dev/ttyUSB0 --baud 115200 --discover-only --json report.json
console-probe --port /dev/ttyUSB0 --baud 115200 --deep --wordlist wordlist.txt

Supported Hardware

Variant Connection Baud Motor Command
Trav'ler (HAL 0.0.00) RS-485 / RJ-25 57600 a <id> <deg>
Trav'ler (HAL 2.05) RS-485 / RJ-25 57600 a <id> <deg>
Trav'ler Pro USB A-to-A 57600 a <id> <deg>
Carryout RS-485 / RJ-25 57600 g <az> <el>
Carryout G2 RS-422 / RJ-12 115200 a <id> <deg>

Architecture

protocol.py   -- FirmwareProtocol ABC + per-variant subclasses (HAL205, HAL000, G2)
leapfrog.py   -- Predictive overshoot compensation for mechanical motor lag
antenna.py    -- BirdcageAntenna: high-level control wrapping protocol + leapfrog
rotctld.py    -- Hamlib rotctld TCP server (p/P/S/_/q) for Gpredict integration
cli.py        -- Click CLI: init / serve / pos / move

Related Packages

Package Description
birdcage-tui Six-screen terminal UI for dish control
mcbirdcage MCP server for AI-assisted dish operations

Documentation

Full hardware details, wiring guides, firmware command reference, and NVS tables: birdcage.warehack.ing

Credits

  • Gabe Emerson (KL1FI / saveitforparts) -- original Trav'ler, Trav'ler Pro, and Carryout rotor scripts
  • Chris Davidson (cdavidson0522) -- Carryout G2 sky scan and rotator control

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

winegard_birdcage-2026.2.18.tar.gz (45.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

winegard_birdcage-2026.2.18-py3-none-any.whl (44.9 kB view details)

Uploaded Python 3

File details

Details for the file winegard_birdcage-2026.2.18.tar.gz.

File metadata

  • Download URL: winegard_birdcage-2026.2.18.tar.gz
  • Upload date:
  • Size: 45.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"EndeavourOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for winegard_birdcage-2026.2.18.tar.gz
Algorithm Hash digest
SHA256 4db69e078e22d9ea67388fe63ac259ab9dd547e0476e86943774b02097079cdd
MD5 653f6357c0c6c2a5d485f0e0562d88a4
BLAKE2b-256 aad3ab7220451a0a0ab7def6c774988b6952dd8b2d82bcadb61c222774d4e378

See more details on using hashes here.

File details

Details for the file winegard_birdcage-2026.2.18-py3-none-any.whl.

File metadata

  • Download URL: winegard_birdcage-2026.2.18-py3-none-any.whl
  • Upload date:
  • Size: 44.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"EndeavourOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for winegard_birdcage-2026.2.18-py3-none-any.whl
Algorithm Hash digest
SHA256 6d5aa133b797ac2f1024b15a561086344ba4562db75e222de87f19b7ebf2323f
MD5 3d9bb48c2eebbb343eadee2b0ca203a8
BLAKE2b-256 956fde23fba4f67c613bb57b537c665b82f04248200487973f2ee94be717999b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page