Skip to content

Latest commit

 

History

History
50 lines (40 loc) · 2.51 KB

README.md

File metadata and controls

50 lines (40 loc) · 2.51 KB

DWARF protocol reference

The maintained protocol sources are the .proto files under src/dwarf_alpaca/proto. Generated Python bindings are checked in because the runtime imports them directly. Regenerate and validate with:

uv run python scripts/generate_protos.py
uv run python scripts/generate_protos.py --check

Evidence and confidence for reverse-engineered V3 additions are recorded in the APK analysis, with the full application registry in api-inventory.json.

The firmware alignment audit is documented in firmware-comparison.md. Transport/framing details are in transport.md, and unresolved conflicts are retained in UNRESOLVED.md rather than guessed.

Machine-readable, field-by-field results are available in firmware-schema-audit.json and firmware-command-audit.json; their compact Markdown summaries are generated by the audit tools in tools/protocol.

For controlled hardware validation, tools/protocol/safe_live_probe.py performs a read-only BLE/state probe by default. Supplying --exposure-seconds explicitly enables one astronomy exposure; the tool never calibrates, focuses or moves the mount.

Important Mini values:

Definition Value Applicability Confidence
WS major/minor 1/20 Mini firmware 1.1.3 build 2 app code and hardware traffic
WS device ID 4 Mini app code and hardware traffic
Astro / Duo-Band / Dark 1 / 2 / 3 newer filter enum; Dark calibration-only app code, normal filters hardware-confirmed
Get/set quick-set parameters 11040 / 11041 shared API; hardware-verified on Mini firmware descriptor, app code, traffic
Calibration-frame list 11043 shared API; response semantics unresolved firmware descriptor and app code
Start/stop calibration-frame capture 11045 / 11046 shared API firmware descriptor and app code
Calibration state/progress 15290 / 15291 shared API firmware descriptor and app code

DWARF 2, DWARF 3 and DWARF Mini use the same version-3 application protocol surface. Device profiles still supply model-specific WebSocket identity, capability and hardware differences; for example, DWARF 2 has no built-in filter wheel.

Do not turn a registry entry into a production capability without model and firmware evidence. Preserve unknown protobuf fields and use placeholder names when semantics are not established.