dd-pits is free for every club. If it makes your race day run smoother, buy bob9 a coffee

Setup guide

The best race-day setup.

Every piece, installed in order. Do the race director's part once on the timing laptop; each pilot does theirs once on their goggles. After that, race day runs itself: channels set, recordings named, lap times in every pilot's goggles.

How it fits together

  1. TimerRotorHazard 4.0+, or the FPVTrackside alpha
  2. dd-pitson the timer (plugin) or beside it on the laptop
  3. Timer backpackELRS Netpack on the network, or a USB backpack
  4. Pilot's gogglesHDZero firmware 9.5.45 + the race-day goggle backpack
  5. Pilot's quadfollows the goggles' channel through their radio's TX backpack

Race channels

dd-pits puts every pilot on their race channel as each race is cued, Raceband or Lowband.

Lap times in the goggles

Position, lap, last and best lap on the OSD, live, in the layout you choose.

DVR named after the race

hdz_0042-WinterCup-Mains-A-R5-H1.mp4, with the goggle clock set right.

Quad follows the goggles

A pilot picks a channel on the goggles; their VTX, radio and the timer follow.

Brackets and marshalling

Races drawn and run for you, laps fixed from each pilot's signal (RotorHazard timers).

Dashboard and stream

Live times on every phone, 22 OBS overlays and an AI commentator.

Everything except the goggle extras works with stock goggle firmware. The race-day firmware adds Lowband from the timer, DVR names and the quad following the goggles.

Once, on the timing laptop

The race director

  1. Set up the timer and dd-pits

    RotorHazard 4.0 or later

    Upload the dd-pits plugin at Settings → Plugins (4.3+; on 4.0–4.2 copy the dd_pits folder into src/server/plugins) and restart RotorHazard. dd-pits appears in its menu and runs on the timer itself.

    FPVTrackside

    Install the FPVTrackside alpha (brackets, the Meeting editor and race control need its REST API). In FPVTrackside tick Menu → Application Settings → Auto start HTTP Server, restart and open your event. Then download dd-pits and run it on the same laptop.

  2. Connect a timer backpack

    This is how dd-pits reaches every pilot's goggles. The best is an ELRS Netpack: on a PoE board one Ethernet cable powers and connects it, anywhere on the venue network, and it confirms each message reached the goggles. A USB backpack plugged into the laptop works too.

    In dd-pits open Settings → Backpack (/setup/backpack) and choose Network (netpack) with its name (elrs-netpack.local), USB, or netpack with USB fallback.

  3. Add your pilots

    Settings → Goggle pilots (/setup/pilots): each pilot's callsign exactly as the timer spells it, and their ELRS bind phrase (or their 12-character goggle ID). dd-pits works out each goggle's address from the phrase, the same way ExpressLRS does. Set the OSD layout at Settings → OSD screen, for everyone or per pilot.

  4. Turn on race channels

    Race director → Goggle control (/goggles): switch on Race channels as each race is cued. From then on every pilot's goggles go to their channel for the race the moment it's cued. Or use the buttons there for the race on the line or the one up next.

  5. Optional: brackets, marshalling, stream

    Brackets → Create bracket draws the finals and runs them on the timer. Race director → Marshal fixes laps from each pilot's signal on a RotorHazard timer (beside FPVTrackside too, when it times with a RotorHazard). Overlays gives every OBS scene with an Add to OBS button.

Once, on each pilot's goggles · about 10 minutes

Each pilot

For HDZero Goggle, Goggle 2 and BoxPro. You need the goggles, their SD card and a computer. Both firmwares are community builds by bob9, not affiliated with HDZero or ExpressLRS; stock firmware can always be flashed back.

  1. Flash the goggle firmware (9.5.45)

    From the 9.5.45 release download the one file for your goggles:

    HDZero GoggleHDZERO_GOGGLE-…-9.5.45.bin
    HDZero Goggle 2HDZERO_GOGGLE2-…-9.5.45.bin
    HDZero BoxProHDZERO_BOXPRO-…-9.5.45.bin

    Copy it, exactly as downloaded (don't open it), to the top level of the SD card. In the goggles: Menu → Firmware → Update Goggle. Keep them powered until they restart.

  2. Flash the goggle backpack

    From the race-day backpack release download AUFPV_HDZero_Goggle_Backpack.zip and extract its four files (bootloader.bin, partitions.bin, boot_app0.bin, firmware.bin). On a Mac extract from Terminal (unzip AUFPV_HDZero_Goggle_Backpack.zip): double-clicking can damage the files.

    Put them in a folder called ELRS at the top of the SD card, then Menu → Firmware → Update ESP32. Delete the files afterwards. What the backpack adds →

  3. Bind, and tell the race director your phrase

    Your existing binding survives both updates. Your goggle backpack, your radio's TX backpack and the race director's list should all use your bind phrase. To re-bind: goggle backpack into bind mode, then Backpack → Bind in your radio's ELRS Lua script. Give the race director your bind phrase (or goggle ID) for dd-pits.

  4. Name recordings after the race

    Menu → Record Option → Naming Scheme → ELRS. It stays greyed out until the goggles know the time; the timer sets the clock as soon as it's running. Recordings then come out as hdz_<counter>-<Meeting>-<Mains/CTA>-<R|Q><round>-H<heat>.mp4.

  5. Optional: let your quad follow your goggles

    Turn on your radio's TX backpack, bound to the same phrase, and get ELRS VTX Administrator working (as you would for the Lua script). Then picking a channel on the goggles and long-pressing the dial sends it to your quad, radio and the timer; a green VTX SENT confirms it. Auto Send VTX on the goggles' ELRS page does it on every change: leave it off at races where the timer assigns your channel, or browsing other pilots' feeds retunes your own quad.

How to use dd-pits

From download
to race day in minutes.

Seven steps, all in the browser. Do the first two and you already have a live dashboard; the rest are optional.

  1. 1

    Download and run

    Download dd-pits and run it on the same laptop as FPVTrackside. The setup guide opens in your browser on first run.

    ./dd-pits
    localhost:8088/setup
    The dd-pits setup guide in a browser
  2. 2

    Switch on FPVTrackside's web server

    It's off by default, and it's how dd-pits reads the timing. In FPVTrackside open Menu → Application Settings, tick Auto start HTTP Server under Web, restart, and open your event. The dashboard lights up; share the laptop's address with pilots over the venue wifi.

    Application Settings → Web → Auto start HTTP Server

    Optional, for faster lap calls: under Gate / LED POST notifications, set the notifier to LegacyMode and NotificationURL to http://localhost:8088/fpvtrackside/events.

    <laptop>:8088
    The live dashboard on a pilot's phone
  3. 3

    Put it on screens

    Open the TV view on a screen at the pits, and add the overlay to OBS as a Browser Source.

    /live · /overlay
    <laptop>:8088/live
    The full-screen live race view
  4. 4

    Choose who speaks

    Pick whether dd-pits or FPVTrackside makes the race calls. dd-pits sets FPVTrackside's speech to match.

    /setup/calls
    localhost:8088/setup/calls
    The race calls settings page
  5. 5

    Wire up the goggles

    Add each pilot's bind phrase, connect an ELRS netpack or USB backpack, then lay out the goggle screen.

    /setup/pilots · /setup/backpack · /setup/osd
    localhost:8088/setup/pilots
    The goggle pilots settings page
  6. 6

    Turn on commentary

    Pick a writer and a voice. Hear it on the laptop's speakers, or add the audio to OBS as a Media Source.

    /setup/booth · /booth.wav
    localhost:8088/setup/booth
    The commentary settings page
  7. 7

    After the race

    Paste the stream's YouTube link and place one heat. Every heat gets a Watch link, and you get chapters to paste into the description.

    /setup/video
    localhost:8088/setup/video
    dd-pits race views ready for the stream

Before the first heat

On the day

  • Pilots power on their goggles. On Goggle control each pilot in the race on the line shows a ✓ when their goggles are set up.
  • Check one pilot end to end: cue a race and watch their goggles switch channel and show the race name.
  • With a netpack, its test page (http://elrs-netpack.local/test) sends an OSD message, a channel or a DVR name to any pilot's goggles.
  • Share the dashboard address with pilots: http://<laptop or timer>:8088. They tap their name for their own stats.

Download dd-pits Goggle firmware 9.5.45 Goggle backpack Watch it in action

Your download has started

Join the dd-pits Discord

Get help setting up, hear about new releases first, and swap race-day tips with other race directors and pilots.

Join the Discord