/ Timecode

DOCUMENTATION · VERIFIED 9 SEPTEMBER 2026

Timecode sync documentation

Choose Device Clock to use the time on the device displaying this page, or Jam to manually match a running timecode source. Show the animated GoPro time QR to each camera, then verify the recorded timecode in your editing workflow.

MISSION 1 works with stock firmware. The project owner reported successful QR acceptance on a new, out-of-the-box MISSION 1 on 9 September 2026, with no Labs installation. The exact stock firmware version was not recorded. GoPro’s Labs compatibility table also lists MISSION 1 and MISSION 1 PRO. Recorded timecode accuracy and drift still need measured validation.

1. Prepare the reference and cameras

Defaults: Device Clock with a 30 fps readout; camera capture and the Jam source rate also start at 30 fps. Set camera capture to your actual mode, such as 60 for an 8K/60 setup. Source Timecode Rate appears only under Jam. Confirm the actual video rate and embedded timecode timebase in a test clip. Resolution does not enter the time QR. Jam supports NDF only; do not use it with a drop-frame reference.

  1. Start with your MISSION 1’s stock firmware. A Labs installation is not required for the reported MISSION 1 time-QR workflow. Check QR acceptance on your exact model and firmware; if it is not recognized, check GoPro’s model-specific support before changing firmware.
  2. Set each camera to the intended capture mode, then select its capture rate here. Use a mode supported by your model and resolution. Verify integer versus fractional rates in a recorded file; a mode label alone may be rounded. Advanced 24HZ and ALLI settings are documented separately for users of GoPro Labs extensions; they are not part of this utility’s QR.
  3. Choose a common reference: the display device’s clock, or an external timecode readout. Under Jam, select the source’s timecode rate. Confirm the production timezone for either mode.

Capture through 240 fps: the camera selector includes 24, 25, 30, 50, 60, 100, 120, 200 and 240 mode families, plus fractional variants. These are documented in GoPro’s MISSION 1 specs; availability depends on model and resolution. Keep reference timecode separate: 240 fps capture with 60 fps timecode gives four captured frames per timecode frame. The capture setting shows this ratio; it does not claim the camera writes a 240 fps SMPTE track. Verify original and slow-motion/conformed files separately.

2. Choose a reference and scan

Device Clock — the default

Device Clock starts from the current time on the device displaying this page. The production UTC offset starts at that device’s timezone, including daylight saving time. Leave the reference offset at 0 ms for the unadjusted clock. After changing settings, select Apply reference, then Start QR.

Switching from Jam back to Device Clock immediately restores live device time, using the displayed reference offset. The source-rate control is hidden and its previous Jam value no longer affects the readout. The QR stays off until you select Start QR.

Its readout and ±1f adjustments use 30 fps. Camera capture rate does not alter that display or configure a camera. The QR contains date and time, with no frame-rate command; each camera uses its own recording settings. A 60 fps slate and this 30 fps display can share wall time while showing different frame digits within each second.

If you open this app on an iPad, it uses the iPad’s clock, even when the page is hosted on another computer or on Vercel. Hosting delivers the files; timekeeping and QR generation happen on the viewing device. Once loaded, the page does not fetch time from the internet or the hosting computer.

Example: MovieSlate on the same iPad

Same iPad, shared clock. MovieSlate in Wall Clock mode and this app in Device Clock mode use the same iPad time reference. That is why this setup needs no manual tap-to-match. At integer rates such as 30 or 60, they share wall-clock seconds; frame digits depend on each display’s rate. Exact recorded camera alignment still needs a slate test.

  1. In MovieSlate 8, select the intended timecode rate. With no shot running, tap the timecode display, choose Clock, then Done. This selects Wall Clock mode. See MovieSlate’s timecode instructions.
  2. Open this utility in the browser on that same iPad. Leave Device Clock selected, keep the iPad’s UTC offset and use 0 ms reference offset. Set the camera capture selector to your recording mode. No Source Timecode Rate selection is needed in this mode.
  3. Apply the reference if prompted, start the QR and scan each camera. Record a short slate test to check the result. When you return here after switching apps, select Apply reference again before restarting the QR.

MovieSlate documents that Wall Clock mode uses the device’s Date & Time settings. It also warns that fractional NDF timecode diverges from wall time. See its user guide: Timecode Basics. A 23.976, 29.97 NDF or 59.94 NDF source needs its numbering checked separately; shared wall time alone does not establish identical timecode. This app does not support DF. Use Jam to match a compatible NDF readout, custom start time or external reference.

Jam — manually match another source

Use a running timecode readout from a slate, recorder or generator. For example, MovieSlate can display a custom or externally synchronized reference. Select Jam, set Source Timecode Rate to match that source, choose the reference date, and enter an upcoming HH:MM:SS:FF value. Start with a 0 ms offset. Press Jam now when the source reaches that value.

The app then advances that reference locally. Compare the readouts and repeat or apply a measured correction as needed. Positive offset advances the reference; ±1f changes it by one selected-rate frame. Manual matching includes reaction and display delay. Jam mode does not listen to LTC or automatically follow subsequent changes at the source. A second visible display makes manual matching easier.

For fractional NDF rates, compare the reference timecode rather than the QR clock’s wall time. The app models GoPro’s conversion from seconds since midnight to frame count: at 29.97 NDF, a QR clock of 01:00:00.000 corresponds to 00:59:56:12. Both references must use compatible numbering.

Scan the cameras

  1. Select Start QR. Keep the page visible, with a readable screen and no glare. The large view can help the camera focus. Scan the live animation; a screenshot or printout is already out of date.
  2. Point each idle camera at the QR and wait for its on-camera acknowledgment. Move it away after acceptance. The browser cannot detect that acknowledgment or count synced cameras.
  3. Jam again shortly before each setup and after a power cycle, battery change, rate change, or suspected drift. Recheck your reference after sleep, clock changes, or switching apps; the QR is hidden until you apply it again.

The browser cannot confirm a camera jam. Keep the QR page in the foreground while scanning; switching apps hides the QR and requires a fresh reference. Device Clock makes returning simple: apply it again to read the current device time.

3. Check and synchronize in Premiere Pro

  1. Record original test clips with a visible slate and an audible clap. Import the originals. Verify frame rate and starting timecode in clip properties/metadata. A file creation date is not an embedded timecode track. Check each camera and any separate audio recorder.
  2. Set timecode display to Use Media Source in Media preferences. Use your intended editing sequence rate and matching DF/NDF display. For high-speed or conformed media, confirm how source timecode maps to playback before automatic alignment. Adobe explains source-timecode display.
  3. Select the clips in the Project panel, choose Clip → Create Multi-Camera Source Sequence, and synchronize by Timecode. Leave Ignore Hours off when hours are part of your reference. See Adobe’s multicamera instructions.
  4. Inspect the clap and slate at the beginning and end. If timecode is absent, zero, or wrong, stop relying on timecode for that footage. Use the recorded clap, markers or common audio to align it and investigate the camera settings. The app does not add or repair clip metadata.

An external audio recorder must share the reference independently. Showing it this QR does nothing unless that device explicitly supports the protocol.

4. Measure offset and drift

Jam sync sets an initial clock relationship; each device then runs independently. Genlock aligns video timing and exposure cadence through an ongoing reference. This QR workflow provides no genlock and cannot guarantee that exposures begin together.

There is no measured MISSION 1 accuracy figure for this app yet. Browser scheduling, screen refresh, QR recognition, manual matching, temperature and camera oscillators all contribute. One frame lasts about 41.708 ms at 23.976, 41.667 ms at 24, 40 ms at 25, 33.367 ms at 29.97, 33.333 ms at 30, 16.683 ms at 59.94, and 16.667 ms at 60.

  1. Match the reference and jam all cameras. Record camera model, firmware, actual frame rate, offset, display device and date.
  2. Record a common clap/slate at the start, keep cameras running for 30–60 minutes, and clap/slate again at the end.
  3. In Premiere, align by timecode. Measure signed disagreement at both claps. Initial disagreement is the jam offset; the change between start and end is drift.
  4. Set your own tolerance and re-jam interval from repeated tests. A constant correction can reduce repeatable initial offset; it cannot remove drift during a take.

For scale only: a relative error of 10 parts per million adds 36 ms in one hour, about 1.08 frames at 29.97. That is an arithmetic example, not a MISSION 1 specification. Fractional NDF label lag of about 3.6 seconds per hour is a numbering/timebase effect and is separate from oscillator drift.

GoPro’s Precision Time page recommends scanning near the shoot because camera clocks drift. Its older compatibility footer omits MISSION; the current main compatibility matrix includes it. GoPro also documents signed millisecond TCAL calibration. This utility does not change it; avoid combining unmeasured camera calibration and browser offsets.

What the QR contains

oTYYMMDDhhmmss.sss​oTD0​oTZ<offset>​oTI0 (without spaces or separators). A deterministic UTC example is oT260909130000.125oTD0oTZ0oTI0.

The command reference specifies oT date/time and oTD/oTZ timezone fields. The official generator source supplies fractional seconds and an oTI suffix; this app retains its current value of zero without assigning it undocumented semantics. UTC offset includes DST here, so the separate DST flag stays zero. Whole-hour offsets use hours; other offsets use signed minutes.

The frame-rate selector controls reference conversion and frame nudges; it is not encoded as a camera frame-rate command. GoPro’s legacy preview applies the 1000/1001 correction to its 24/30/60 family. This app distinguishes true integer rates. Matching that mathematical model does not prove how every MISSION firmware writes MP4 timecode, particularly in integer modes.

Midnight limitation: the daily fractional NDF model resets at QR midnight, before NDF reaches 24 hours. The final roughly 86 seconds of nominal NDF labels cannot be represented that day. Manual entry rejects those labels, and an active manual reference is invalidated when its QR date rolls over. Device-clock mode follows the daily reset. Test overnight workflows separately.

Timing limits: rendering uses fresh timestamps on animation frames, with no assumed display-latency compensation. QR output is hidden on pause, backgrounding, restore and detected stalls. A browser or operating-system freeze can retain the last displayed pixels until execution resumes. A live badge indicates browser output, not a confirmed camera jam.

Privacy & licensing: calculation and QR generation run locally, with no analytics, uploads, cookies or saved calibration. No CDN or backend is needed. The software and original documentation use the MIT license. The supplied IgorBox logo and trademark are excluded from that license; forks can replace the branding. GoPro, MovieSlate and Adobe retain their trademarks and the rights to their firmware and documentation.