10 Commits

Author SHA1 Message Date
420a8e2039 Fix board ID and NimBLE 2.x API for ESP32-S3-N16R8
- Use esp32-s3-devkitc1-n16r8 board (16MB flash, 8MB PSRAM OPI)
  instead of generic esp32-s3-devkitc-1 (8MB, no PSRAM)
- Remove setScanResponse() — NimBLE 2.x dropped this method
- Board definition handles PSRAM build flags automatically

Verified: clean boot, no PSRAM errors, BLE advertising as Travler-G2.
2026-02-11 14:37:09 -07:00
068f38d7eb Add ESP32-S3 BLE-to-RS422 bridge firmware for Carryout G2
NimBLE-based Nordic UART Service (NUS) bridge on ESP32-S3-DevKitC-1.
Transparent passthrough: BLE client writes → UART1 TX → RS-422 → G2,
and G2 → RS-422 → UART1 RX → BLE notifications. USB serial serves as
debug monitor and fallback input.

Uses two MAX485 modules (one locked TX, one locked RX) with a SparkFun
BSS138 level converter for 3.3V/5V translation. Wiring schematic and
RJ-12 pinout documented in docs/ble-bridge-wiring.md.
2026-02-11 14:33:10 -07:00
1192b31166 Add R/L/D protocol extensions for RSSI sky scanning
Extend the rotctld wire protocol with three new commands that enable
signal strength measurement through the Carryout G2's DVB subsystem:

- R [n]: Read RSSI (handles motor→dvb→rssi→motor menu dance internally)
- L: Enable LNA for signal reception (one-time pre-scan setup)
- D: Discover capabilities (returns CAPS:rssi,lna for G2, empty for others)

Non-G2 protocols return RPRT -6 (not available) for R and L commands.
The menu state invariant is maintained after every operation so P commands
continue to work between RSSI reads.
2026-02-11 11:55:05 -07:00
da066cfb3b Document RS-485 vs RS-422 signaling, connector pinouts, and MAX490 failsafe
Add comprehensive section covering half-duplex RS-485 vs full-duplex
RS-422 differences, dual-mode Trav'ler pinout (T/R + RXD pairs),
G2 wire color mapping, adapter chain table, and DIYables MAX490
module notes including bus tri-state failsafe concern with
workaround options.
2026-02-11 10:31:11 -07:00
e0488eb85a 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.
2026-02-11 10:06:58 -07:00
b68bb1f6f4 Update Carryout specs from Radio-Telescope repo findings
Correct Carryout elevation limits (22 deg firmware-enforced min,
73 deg firmware default max), fix dvb command not being Pro-only,
add DIP switch and motor stall calibration notes, add
Carryout-Radio-Telescope to upstream references.
2026-02-11 06:32:44 -07:00
579bad9921 Expand docs with full Winegard hardware reference
Add Carryout and Trav'ler Pro to firmware variant table, SK-1000
physical specs, error messages, calibration procedures, emergency
stow notes, motor behavior details, and Gpredict setup config.
Note leap-frog bug is also present in Pro repo.
2026-02-11 06:18:48 -07:00
780de4fe2b Implement HAL 0.0.00 search kill, expand CLAUDE.md with firmware reference
HAL 0.0.00 kills the search task via the OS task manager (os -> kill Search)
rather than the ngsearch submenu used by HAL 2.05. Boot signal is NoGPS only.
Source: saveitforparts/Travler_Rotor upstream repo.

CLAUDE.md now includes firmware variant comparison table, full command
reference, NVS indices, RS-485 pinout, and cable wiring notes.
2026-02-11 06:05:06 -07:00
2c28b0edc2 Add CLAUDE.md with project context and protocol notes 2026-02-11 05:47:03 -07:00
c93bbef26d Initial travler-rotor library scaffolding
Extract Gabe Emerson's Trav'ler rotor scripts into a proper Python
library with firmware protocol abstraction (HAL 2.05 + HAL 0.0.00),
Hamlib rotctld TCP server, Click CLI, and isolated leap-frog algorithm
with the elevation copy-paste bug fixed.
2026-02-11 04:10:17 -07:00