OCP Quickstart

Last validated: 2026-05-05

Use this quickstart after video is working. It proves that OdenVR can send operator input to Oden Streamer and that a vehicle-side process can receive the values.

What you will run

  • OdenVR with Oden Control Pipeline enabled.

  • Oden Streamer or Oden Fleet Streamer with Oden Control Pipeline enabled.

  • A gamepad on the operator computer.

  • A vehicle-side TCP client connected to 127.0.0.1:4000 that prints received JSON control values.

Steps

  1. Connect OdenVR to the vehicle and verify live video.

  2. Enable the Oden Control Pipeline plugin on both sides.

  3. Connect a gamepad to the operator computer.

  4. Start the vehicle-side TCP print client on the vehicle computer.

  5. Move the gamepad sticks and press buttons.

  6. Confirm that the terminal prints changing controller values.

  7. Confirm that OCP faults are clear or explainable.

The TCP protocol is 4-byte little-endian length followed by UTF-8 JSON. The vehicle-side client must echo ack_time and ack_time_mac in its response so latency measurement stays closed.

For the full vehicle-side implementation details and a Rust example, see Vehicle-Side Control.

Expected output

A working terminal client should show repeated OCP control messages with:

  • controller.buttons

  • controller.axes

  • telemetry.latency

  • telemetry.fault

  • ack_time

  • ack_time_mac

If no messages arrive, check that the vehicle-side client is connected to the Streamer host and port, OCP is enabled, and the Player is connected to the vehicle.