SDKPython SDK

API reference

Public functions, objects, channels, models, and errors in Exo Python SDK 1.0.0.

Current version · 1.0.0

API reference

Discovery and configuration

APIResult or purpose
discover_exos()tuple[DiscoveredExo, ...]
ExoConfig(connection=..., name=..., enabled=...)Exo device configuration
Sdk(...).exo()Exo domain entry point

DiscoveredExo contains port, device_info, and error. ExoDiscoveryIssue contains code and message.

Exo

MethodPurpose
device(name=None)Select the unique or named device
start() / stop()Start or stop the domain
update()Advance one manual update
run_forever()Run on the current thread
run_background()Start background execution
request_stop() / join()Stop and join background execution
health()Return Core Health
close()Close the domain and invalidate children

ExoDevice

Properties are name and source_id. Methods are start(), stop(), health(), get_device_info(), telemetry(), status(), haptics(), and close().

Device information

  • ExoDeviceInfo: protocol_version, product, firmware, serial_number, hardware_name, capabilities, and components.
  • ExoCapabilities: telemetry, encoders, handsets, imus, haptics, and wireless.
  • ExoComponentCounts: encoder, handset, and IMU available/total_slots values.
  • ExoProduct: STANDARD, PLUS, and PLUS_WIRELESS.

Data models

  • ExoTelemetry(meta, payload, quality).
  • ExoTelemetryPayload: both arms, both handsets, and optional torso/extra IMUs.
  • ExoArmState: eight encoder counts and eight joint positions in radians.
  • ExoHandsetState: raw X/Y axes, button mask, and trigger.
  • ExoImuState: three accelerations, three angular velocities, and an XYZW orientation.
  • ExoStatus is the domain name for Core DeviceStatus.

Haptics and errors

Non-null ExoHaptics(left=None, right=None) strengths must be 0…100. HapticsState extends a read channel with set(value) and clear().

Control failures raise ExoControlError with ExoControlErrorKind; invalid inputs use InvalidArgumentError, and closed objects use ClosedHandleError.