Full command inventory from automated deep probe + interactive ? exploration (firmware 02.02.48, captured 2026-02-12). Automated probing finds commands that respond without arguments; interactive ? in each submenu reveals the full set including parameter-requiring commands the probe misses.
Known Console Hazards
ADC scan without arguments on uncalibrated AZ: Targets position 2147483647 (INT_MAX), motor task blocks forever, shell deadlocks. No serial input (CR, Ctrl+C, ESC, q, reboot) can recover — requires hardware power cycle. The firmware shell is single-threaded: UART input is only parsed between command completions, so a blocking motor move prevents all input.
Root q command: Terminates the shell task entirely. Console becomes unresponsive until power cycle.
The root prompt provides access to 12 submenus plus system commands.
Command Description ?List available commands (alias: help) a3981Enter motor driver submenu adcEnter ADC submenu dipswitchEnter dipswitch submenu dvbEnter DVB tuner submenu eepromEnter EEPROM submenu gpioEnter GPIO submenu latlonEnter lat/lon calculator submenu motEnter motor control submenu nvsEnter non-volatile storage submenu osEnter OS submenu peakEnter peak/DiSEqC switch submenu stepEnter stepper motor submenu rebootReboot firmware stowFold dish flat (caution: modified feeds may not survive) oduTunnel to outdoor unit (Trav’ler Pro only) ngsearchEnter search submenu (HAL 2.05 only)
Note
command appeared in automated probe results — this is a false positive. The help parser extracted it from the help [<command>] usage text, where <command> is a parameter placeholder, not an actual command.
6 commands. Controls the two A3981 stepper motor driver ICs via SPI.
Command Description cmCurrent control mode: AZ/EL both report “AUTO” or “HiZ”/“LoZ” diagFault pin status: “AZ DIAG: OK EL DIAG: OK” (or FAULT) resetReset AZ/EL A3981 fault flags smStep size mode: AZ/EL both report “AUTO” or fixed mode ssStep size: returns integer (FULL=16, HALF=8, QTR=4, EIGHTH=2, SIXTEENTH=1) stTorque level: AZ/EL report “HIGH” (moving) or “LOW” (idle/holding) ? / qHelp / return to TRK>
The step size value is an inverted divisor — 1 means 1/16 microstepping (finest), 16 means full stepping (coarsest). In AUTO mode, the A3981 dynamically adjusts microstepping based on motor speed.
5 commands. Hardware-level ADC readings from the LNB signal chain and board ID.
Command Description bdidBoard identity: returns “STATIONARY” (Carryout G2 variant) bdrevidBoard revision: returns “A” mMonitor RSSI (streaming, CR-overwrite line, interrupt with q) rssiSingle-shot RSSI (raw ADC count, ~233-238 noise floor) scanAZ sweep with per-position RSSI/Lock/SNR readings ? / qHelp / return to TRK>
The scan command outputs: Motor:<id> Angle:<cdeg> RSSI:<adc> Lock:<0/1> SNR:<dB> Scan Delta:<step>
1 command. Reads physical DIP switch GPIOs and interprets satellite config code.
Command Description dipswitchRead dipswitch: val:<hex32> (raw GPIO) + app_dipswitch:<decimal> (interpreted) ? / qHelp / return to TRK>
Example: val:ffffff01 = all switches OFF/up. app_dipswitch:101 = DISH 110+119+129 degrees W.
38 commands. Controls the Broadcom BCM4515 DVB-S2 tuner and DiSEqC 2.x LNB interface. Help is paginated: ? shows the first page, man shows extended commands.
Command Type Description rssi <n>One-shot RSSI averaged over n samples. Returns Reads:<n> RSSI[avg: <v> cur: <v>] snrStreaming SNR level (avg + current). Interrupt with q agcStreaming RF/IF AGC + SNR + NID. Interrupt with q qlsStreaming Quick lock status at ~100ms intervals: Lock:0 rssi:500 cnt:0 nidStreaming Network ID (CR-overwrite display, FFFF = no signal) statsStreaming Accumulated signal statistics (silent when no lock)
Command Type Description disOne-shot Display channel parameters (frequency, symbol rate, LNB polarity) e <n> <v>Write Edit channel parameter freqsOne-shot Tuner frequency list name rangeOne-shot Transponder scan range t <n>Write Select transponder
Command Type Description lnbdc oduOne-shot Enable LNA in ODU mode (13V = V-pol; boot default 18V = H-pol) lnbvStreaming Stream LNB voltage readings. Interrupt with q pwrOne-shot SDS and DiSEqC core power state
Command Type Description lsStreaming Full transponder lock scan. Exits DVB submenu on interrupt configOne-shot BCM hardware/firmware version (ID 0x4515, Rev B0, FW v113.37) diagOne-shot Multi-block per-transponder diagnostics tableOne-shot Full 32-transponder scan (~136 seconds) tablexToggle Extended table mode (on/off) srchToggle Search transponders mode (on/off) srch_modeOne-shot Auto search mode value shufToggle Transponder shuffle order (on/off) defWrite Reset all params to defaults (silent, no confirmation, no undo) mswWrite Modulation switch (format unknown)
Command Type Description tabtoRead/Write Table scan timeouts (acq/nid/sd) toRead/Write Single tune timeouts (acq/nid)
Command Type Description di2confRead DiSEqC LNB config register di2csWrite DiSEqC committed switch command di2idRead DiSEqC read LNB hardware ID di2rcsRead DiSEqC read committed switch status di2scRead DiSEqC switch control di2statRead DiSEqC read LNB status flags ovraddrRead/Write DiSEqC override address (default 0x11) pretxRead/Write DiSEqC pre-transmit delay (default 15 ms) rrtoRead/Write DiSEqC receive reply timeout (default 210 ms) send <hex>Write Raw DiSEqC packet (max 6 bytes, space-delimited hex) tdthreshRead/Write DiSEqC tone detect threshold (default 110)
Command Description manExtended help page ? / qHelp / return to TRK>
Caution
Streaming commands (snr, agc, lnbv, qls, nid, stats) run until CR interrupts them. All stay in the DVB submenu when interrupted except ls, which drops to TRK> (exits the DVB submenu entirely).
3 commands. Low-level EEPROM access (separate from NVS). The prompt is EE>, not EEPROM>. Most indices read as 0 (unwritten) or fail with val:65793 (0x10101 marker = uninitialized). The firmware primarily uses NVS, not EEPROM, for persistent settings.
Command Description ee <idx> [<v>]Read/write EEPROM value at index. Read: Index:<n> Read value = <v> or Failed to read eeprom index:<n> val:65793 inv <idx>INVALIDATE EEPROM index (destructive — marks entry invalid, not “inventory”)defRestore EEPROM defaults ? / qHelp / return to TRK>
4 commands. Direct access to K60 GPIO ports A-E. Pin naming: <port><pin> (e.g., B0, E12).
Command Description dir <pin>Query pin direction: returns “INPUT” or “OUTPUT” r <pin>Read single GPIO pin value (0 or 1) regsDump ALL GPIO pin states across ports A-E (26+16+20+16+14 = 92 pins) w <pin> <val>Write GPIO pin (requires pin name and value) ? / qHelp / return to TRK>
1 command. Satellite triangulation calculator — computes ground station lat/lon from look angles to two known geostationary satellites. Used for auto-location when GPS is unavailable. Values stored internally as centidegrees.
Command Description l <p1> <p2> <p3> <p4>Calculate lat/lon from 4 parameters (likely AZ/EL pairs for 2 satellites) ? / qHelp / return to TRK>
Output format:
anglesentered = <cdeg1> <cdeg2> <cdeg3> <cdeg4>
Lat = <cdeg> Lon = <cdeg>
Values are in centidegrees: Lat = 4295 means 42.95 degrees N, Lon = 25655 means 256.55 degrees E (= 103.45 degrees W).
25 commands. High-level motor control with angle-based positioning.
Command Description aShow position: Angle[0] (AZ), Angle[1] (EL) a <id> <deg>Move motor to absolute angle (0=AZ, 1=EL) a <id> +/-degRelative move (G2 only, undocumented in upstream) g <az> <el>Go to AZ/EL (aborts on new input) h <id>Home motor to reference position (stall-detect based) eEngage motors (energize steppers) rRelease motors (de-energize steppers)
Command Description lList motors and state (0=AZIMUTH, 1=ELEVATION) pRead raw step positions vRead motor velocities maRead max acceleration per motor mvMax velocity per motor elminmaxhomeShow EL limits: Min: <v> Max: <v> Home: <v> (NVS values) ela2s <deg>Elevation angle to steps converter els2a <steps>Elevation steps to angle converter
Command Description azscan [az_rel] [el_rel] [delay]AZ sweep: scan relative AZ range at EL steps with delay azscanwxp [motor] [span_deg] [res_cdeg] [num_xponders]AZ sweep + transponder cycling (radio telescope mode)
Command Description pid [motor] [Kp] [Kv] [Ki]Read or set PID gains for motor control loop sp [motor] [pos]Set position (override current position register) sw [motor] [pos]Set wrap position (cable wrap reference point) w [motor] [ON/OFF]Wrap manager: enable/disable cable wrap protection per motor vms [motor] [deg_per_rev] [ms]Velocity move for duration
Command Description lifeMotor lifetime/usage stats motorbothSimultaneous dual-motor move test motorlifeDetailed motor life statistics sdStall detection test (motor, direction, timeout) ? / qHelp / return to TRK>
The azscanwxp command performs an azimuth sweep while cycling through DVB transponders at each position. This is the core of Davidson’s winegard-sky-scan project for RF imaging.
Parameter Type Units Description motor int — Motor ID (0=AZ, 1=EL) span float degrees Total azimuth sweep range resolution int centidegrees Step size per position num_xponders int — Number of transponders to cycle at each position
Example: azscanwxp 0 10 100 3 — sweep 10 degrees on AZ at 1.00 degree steps, checking 3 transponders per position.
5 commands. See the NVS Settings page for a full index dump.
Command Description dDump all NVS values (name/current/saved/default) d <idx>Dump single value with details e <idx>Read NVS value at index e <idx> <v>Write NVS value at index (NOT saved until s) sSave pending changes to flash ? / qHelp / return to TRK>
2 commands on the Carryout G2 (4 on HAL 0.0.00).
Command Description Availability idFull MCU/firmware identification (NVS version, System ID, chip) All variants rebootReboot microcontroller All variants tasksList running tasks HAL 0.0.00 only kill <name>Kill a named task HAL 0.0.00 only ? / qHelp / return to TRK> All variants
6 commands. EchoStar/DiSEqC switch control and LNB polarity-switched RSSI.
Command Description pwPeak signal search (likely requires satellite lock) psnrPeak SNR measurement pxy1Peak XY single-axis (2D cross-pattern peak search) rssitsRSSI with LNB toggle switch: alternates H-pol (18V, even transponders) and V-pol (13V, odd transponders). Reports Even_sig = <v>, Odd_sig = <v>. Noise floor: even ~489, odd ~235 (V-pol quieter). Exits submenu on interrupt. stbSTB (set-top box) control / DiSEqC switch test tsEchoStar switch toggle status: SW Status: 0b<binary> <decimal> (all zeros = no switch connected) ? / qHelp / return to TRK>
7 commands. Raw stepper API in microstep units (ustep/sec, ustep/sec/msec). MOT wraps STEP with angle-to-step conversion.
Command Description eEngage motor (same as MOT e) maMax acceleration: Accel[0] = 44 / Accel[1] = 28 (ustep/sec/ms). Set: ma [motor] [ustep/sec/ms] mvMax velocity: Max Vel [0] = 7222 / Max Vel [1] = 3120 (ustep/sec). Set: mv [motor] [ustep/sec] pGoto position in raw step counts: p [motor] [steps] pidPID values: Kp=250 Kv=50 (no Ki at STEP level). Set: pid [motor] [Kp] [Kv] rRelease motors (same as MOT r) vGo to velocity (continuous spin): v [motor] [ustep/sec] ? / qHelp / return to TRK>
The relationship between STEP microstep units and MOT degree units:
Parameter STEP value MOT value Conversion factor AZ velocity 7222 ustep/s 65.0 deg/s 40000 steps/rev / 360 = 111.11 steps/deg EL velocity 3120 ustep/s 45.0 deg/s 24960 steps/rev / 360 = 69.33 steps/deg AZ acceleration 44 ustep/s/ms ~396 deg/s^2 x1000 / 111.11 EL acceleration 28 ustep/s/ms ~404 deg/s^2 x1000 / 69.33
The BCM4515 provides a DiSEqC 2.x controller accessible from the DVB> submenu. DiSEqC (Digital Satellite Equipment Control) uses 22 kHz tone bursts on the coax LNB bias line to control switches, LNB polarity, and band selection.
Command Value Description ovraddr0x11 Target LNB address (standard first LNB) rrto210 ms Receive reply timeout pretx15 ms Pre-command TX delay tdthresh110 Tone detect threshold (0.16 counts/mV)
Command Function Status di2confRead LNB config register RxReplyTimeout (no switch connected) di2idRead LNB hardware ID RxReplyTimeout di2statRead LNB status flags RxReplyTimeout di2rcsRead committed switch status RxReplyTimeout di2csConfigure committed switch Needs parameters di2scShort circuit test Untested send <hex>Raw DiSEqC packet (max 6 bytes) Functional
Raw DiSEqC packets use the send command with space-delimited hex bytes. Standard DiSEqC 1.x commands: send E0 10 38 Fx where the last byte selects the switch port (F0-F3 for ports 1-4).
Message Meaning AZ MOTOR STALLEDObstruction preventing rotation EL MOTOR STALLEDObstruction preventing elevation change EL Motor Home FailureRequires EL recalibration via IDU menu Step to Position EL angle error: 2147483647INT_MAX sentinel — motor axis uncalibrated/unhomed