Skip to content

v2.2.0 — WS-V2 protocol family

Choose a tag to compare

@thecodingdad thecodingdad released this 30 Apr 21:58
· 211 commits to main since this release

Highlights

  • New WS-V2 protocol family for V2 firmware (≥ 40.51): F1, F1 Ultra, F1 Ultra V2 (GS003), F1 Lite, F2 family, M1 Ultra, P2S, P3, MetalFab, Apparel Printer.
  • Full TLS WebSocket API on port 28900 — three concurrent channels (function=instruction JSON request/response + push events, function=file_stream binary uploads, function=media_stream camera frames). Replaces the legacy listener-only F1 V2 implementation.
  • V1/V2 auto-detection at config-flow time. The integration probes port 28900, picks the WS-V2 family when the device answers, falls back to the legacy REST API otherwise. Same physical device behind one config entry.
  • Push events: status (STATUS_CONTROLLER mode changes), cover (GAP), machine lock, button presses, work-result.
  • Three-step V2 firmware flash via /v1/device/upgrade-mode + file_stream blob.
  • First-class V1/V2 registry entries: XtoolDeviceModel gains protocol_version and discovery_match fields so V1/V2 siblings of one device coexist without ambiguity. Future V2-only models can be added with a single registry entry.

Removed

  • Legacy f1v2 listener-only family (superseded by ws_v2).

Caveats

  • WS-V2 is implemented from xTool Studio bundle reverse-engineering; the wire format has not been verified against live V2 hardware. Issue reports + traffic captures from V2 devices welcome.
  • Existing config entries on V1 firmware keep working unchanged. After a major firmware upgrade to V2, re-add the device to switch families.