Outlap Docs
Open Outlap

Timing bridge

CLI

A single-file Node script that relays an RMonitor feed from the timing PC at your circuit into Outlap's live board. No install, no dependencies.

The Outlap Timing Bridge connects to your timing system’s RMonitor output on the local network and forwards it to the stream endpoint. Laps, running order and flags appear on the event board as they happen.

It’s one file with no dependencies. It needs Node 18 or newer on the timing PC, or on any machine on the same network as it.

Set it up

  1. Turn on RMonitor output in your timing software.

    Where to find it depends on the system. See Orbits, Trackside / X2 or AxWare. The default port is 50000.

  2. Create an API key.

    In Outlap, open Race Control → Timing → Connect timing. The key needs the timing:write scope; keys created in the app have it. See Create an API key.

  3. Run the bridge.

    Race Control fills in this command for you:

    node bridge.mjs --event <eventId> --key <outlapApiKey> --host 127.0.0.1 --port 50000 --vendor orbits
  4. Check the board.

    Within a few seconds the Live feed panel in Race Control turns green and laps start arriving on the event’s Timing tab.

Options

FlagMeaning
--eventOutlap event ID, or set OUTLAP_EVENT_ID. Required.
--keyOutlap API key, or set OUTLAP_API_KEY. Required.
--host, --portThe timing system’s TCP address. Default 127.0.0.1:50000.
--vendororbits, trackside, axware or rmonitor. Default rmonitor.
--sessionAttach laps to a specific Outlap session ID.
--labelFriendly name shown in Race Control, such as “Race Control PC”. Defaults to host:port.
--intervalUpload interval in milliseconds. Default 1000.
--fileRead from a captured file instead of TCP. Tails the file for new lines unless --replay is set.
--replayWith --file, send the file once, line by line, then stop. Use --speed <ms> to set the delay per line (default 5).
--apiOverride the API base URL, or set OUTLAP_API.

Prefer environment variables for secrets so the key doesn’t appear in your shell history or process list:

export OUTLAP_API_KEY=olap_xxxxxxxx
export OUTLAP_EVENT_ID=6c0e0000-0000-4000-8000-000000000000
node bridge.mjs --host 192.168.1.20 --vendor trackside --label "Race Control PC"

How it behaves

  • Reconnects automatically. If the timing system drops the connection, the bridge retries with exponential backoff, from 1 second up to 30.
  • Never loses a batch to a Wi-Fi blip. Failed uploads are put back in the queue and retried. The backlog is capped at 20,000 lines.
  • Batches. Up to 2,000 lines per upload, once a second by default.
  • No duplicates. The server ignores redelivered packets, so retries are safe.
  • Heartbeat. Every 30 seconds it reports live to /feed/status, or stale if more than 5,000 lines are waiting to be sent. On shutdown (Ctrl+C) it flushes the queue and reports stopped.

Driver matching

Laps are matched to Outlap drivers by transponder first, then car number, using the transponder list on the event’s Paddock tab. Drivers who saved their transponder and race number in their garage are already filled in; add hire units on the day. Unmatched laps are still recorded against the transponder or car number, so you can assign them afterwards in Race Control.

Run it as a service

For a whole race weekend, keep the bridge alive across reboots. On Windows, NSSM can wrap the command as a service; on Linux or macOS a systemd unit or launchd job does the same. Because the bridge reconnects on its own, you only need to restart it if the process exits.

Troubleshooting

See Troubleshooting for stale feeds, ECONNREFUSED, and laps that don’t match drivers.

esc
↑↓ to navigate ↵ to open esc to close