Ryan Malloy bf72e784d3 Add PyPI README files and MCP resource/prompt tests
- README.md for all three packages (core, TUI, MCP)
- pyproject.toml readme field for PyPI rendering
- 8 new tests for MCP resources (5) and prompts (3)
- Total MCP test coverage: 57 tests, 37 tools + 5 resources + 3 prompts
2026-02-17 19:15:23 -07:00

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

Description
Winegard satellite dish control for amateur radio sky tracking
Readme 117 MiB
Languages
Python 96.2%
C++ 3.4%
C 0.4%