DOCUMENTATION · FIELD TESTED
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.
Field tested on a real MISSION 1 shoot. On 11 September 2026, the project owner confirmed that the utility was used for a shoot and “worked perfectly.” Earlier testing on a new, out-of-the-box MISSION 1 also confirmed that no Labs installation is required for the time-QR workflow. GoPro’s Labs compatibility table separately lists MISSION 1 and MISSION 1 PRO.
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.
- 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.
- 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
24HZandALLIsettings are documented separately for users of GoPro Labs extensions; they are not part of this utility’s QR. - 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.
Changing Camera capture rate: Device Clock updates its display rate and ±1f frame duration immediately, without stopping the reference clock or requiring Apply reference. A live QR keeps updating, and a paused QR stays paused with Start QR available. In Jam, the readout stays at the source rate and the existing match is preserved. Changing Source Timecode Rate in Jam still requires a fresh match; the capture selector cannot restore a reference invalidated by edits, sleep or a clock change.
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.
Display timecode and ±1f adjustments follow Camera capture rate. At 24 fps, the frame digits count 00–23 and one frame is 41.667 ms. The QR contains date and time, with no frame-rate command; each camera uses its own recording settings. Changing the display rate preserves the applied timestamp, offset and timezone.
High-speed frame counts are display previews; a recorded clip may use a lower timecode rate. Counts above 99 use three digits, such as 12:00:00:120 halfway through a second at 240 fps. Screens cannot show every frame number above their refresh rate. Fractional selections use NDF counting from midnight, which runs about 3.6 seconds per hour behind wall time. The QR clock below the readout continues to show wall time.
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. For true 24.000 fps capture, select 24 in MovieSlate and 24 here: both displays count frames 00–23. Different display rates can describe the same instant: 12:00:00:12 at 24 fps and 12:00:00:15 at 30 fps both mean half a second past noon. Exact recorded camera alignment still needs a slate test.
- 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.
- 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.
- 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
- 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.
- 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.
- 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
- 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.
- 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.
- 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.
- 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.
The successful shoot report establishes practical use. To choose a re-jam interval for your own setup, measure initial offset and drift with the procedure below. 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.
- Match the reference and jam all cameras. Record camera model, firmware, actual frame rate, offset, display device and date.
- Record a common clap/slate at the start, keep cameras running for 30–60 minutes, and clap/slate again at the end.
- 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.
- 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.sssoTD0oTZ<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.
Camera Settings QR
Open Camera Settings QR to configure a MISSION 1, MISSION 1 PRO or MISSION 1 PRO ILS. This is a separate tool: it changes capture settings, while Timecode QR sets the clock. Configure capture first, then jam timecode.
GoPro Labs firmware is required for settings QR. GoPro documents camera configuration QR commands as a Labs firmware feature. Use the download for your exact camera model. On stock MISSION 1 firmware, apply the displayed capture settings manually, then use the field-tested Timecode QR to jam.
- Set your Capture target at the top and choose your exact camera model. The default is 4K 16:9 / 24 fps. Production / Cinema, Run & Gun and Custom follow this target, so choosing 4K30 makes all three use 4K30.
- Choose a starter preset. Streaming / Live keeps 1080p and follows the target rate through 60 fps; higher targets use 60 fps. Slow Motion keeps 4K60 and High Frame Rate keeps 4K120. A visible note identifies capture overrides. Custom starts with the target and leaves other settings unchanged on-camera. All defaults use 16:9; Open Gate remains an editable option on supported models.
- Edit any field. “Leave unchanged” omits it from the command. Fields stay editable after selecting a preset; your first edit changes the preset label to Custom. Unsupported resolution/rate pairs block generation.
- Use Exposure & image controls for ISO, bitrate, sharpness, EV and noise reduction. Cinema, Run & Gun, Slow Motion and High Frame Rate use GP-Log2; Streaming / Live uses Natural color. All five configured presets use 10-bit, high recording bitrate and low sharpness. Cinema, Run & Gun and Streaming / Live use 5500K, a 180° shutter and Auto ISO up to 800.
- Press Generate QR, show it to an idle camera, and check the applied settings on the camera. Full screen QR enlarges the view. Copy Command copies the exact text; on browsers without clipboard access it selects the text for manual copying. Editing any field clears the old QR.
Streaming / Live over HDMI
This preset starts at 1080p 16:9 / your target rate, up to 60 fps (24 fps with the default target). It uses Natural color for a picture ready for live use, 10-bit, HLG Off, High recording bitrate, 5500K WB, 180° shutter, Auto ISO up to 800, Low sharpness and HyperSmooth Off for a mounted camera. EV and noise reduction are left unchanged. Adjust WB and exposure for the actual lighting; select GP-Log2 if your live setup applies an appropriate LUT.
- Choose your intended stream frame rate as the target. Streaming / Live overrides resolution to 1080p and caps its starting rate at 60 fps, with a visible note if that differs from the target. All fields remain editable.
- Apply the capture settings via QR on Labs firmware, or manually on stock firmware. Connect the camera to your HDMI capture device using compatible hardware. GoPro specifies up to 4K60 output for the MISSION Media Mod.
- Select clean video output without camera overlays and 1080p output in the camera’s output controls. Confirm the received resolution, exact frame rate, color and bit depth in your capture device or streaming software. Capture settings alone do not guarantee the HDMI signal format. High bitrate controls internal recording, not the stream encoder’s bitrate.
- Set the stream encoder’s format and bitrate, provide power suitable for the session, and check camera auto-power-off settings. Test the complete chain for the intended duration and adjust audio/video delay in the streaming setup. A timecode jam does not align HDMI feed latency.
HDMI controls remain on-camera: the Labs support matrix does not list HDMI display-setting support for MISSION, and the HDMI command reference lists HERO8–13. This preset therefore sends capture settings only. It does not enable clean HDMI output, change power-off settings, set an HDMI output format, or initiate a network stream. Successful HDMI operation with this preset still needs verification on your hardware.
Frame rate and shutter: the rate menu sends GoPro’s camera-mode labels, such as p24. Actual capture can be integer or fractional according to the camera’s existing timing settings. The tool does not change ALLI/24HZ. The supported s180 shutter-angle command corresponds to approximately 1/48, 1/120 or 1/240 second at nominal 24, 60 or 120 fps. Set exact integer timing on the camera if required, then confirm a test clip’s metadata.
ISO and color: MISSION’s documented standard controls offer an auto ISO ceiling or fixed ISO. A separate minimum ISO is not sent. GP-Log2 requires an explicit 10-bit selection. Setting color or bit depth also sends hH0 to turn HLG off. EV is omitted from the presets and cannot be combined here with a manual shutter and an explicit ISO selection.
Coverage: the app supports the documented regular resolution/rate pairs through 240 fps. HyperSmooth On/AutoBoost is offered for 16:9 modes through 60 fps; other stabilization combinations are outside this tool’s verified coverage, not necessarily camera limitations. ILS users must confirm a supported lens and its camera setup before enabling HyperSmooth. Run & Gun starts with stabilization off on ILS. PRO and ILS share capture-rate definitions, with this separate lens check.
ILS lens compatibility: the checkbox is only for MISSION 1 PRO ILS and confirms that your interchangeable lens is supported for HyperSmooth. It does not configure a lens profile. “Rectilinear” means straight lines remain straight rather than having a fisheye projection; “prime” means a fixed focal length rather than a zoom. GoPro’s current ILS lens guidance, footnote 3 lists rectilinear MFT lenses from 6–500mm (tested up to 50mm, with performance beyond that varying) and five profiled fisheyes: Laowa 4mm f/2.8, 7Artisans 6mm f/2, 7Artisans 7.5mm f/2.8, Brightin Star 7.5mm f/2.8 and Meike 7.5mm f/2.8. Check the guidance and configure your lens on-camera before enabling stabilization.
Photo: switching to Photo exposes RAW output, white balance and EV only. Video controls are hidden and not emitted. Set photo resolution, shutter and ISO on the camera. Returning to Video restores the draft form and leaves the QR off.
Firmware and scope: command research was checked on 11 September 2026 against GoPro’s MISSION configurator, settings reference, model specifications and release notes. Use MISSION Labs 2.02.70 or later, or ILS Labs 3.00.70 or later, for settings QR. The earlier successful stock-firmware shoot verified Timecode QR. Camera Settings QR was field tested after a firmware update on 11 September 2026. The exact firmware build and individual presets tested were not supplied.
“Timecode not synced” after a settings scan
The project owner reported this message on original GoPro firmware with no settings applied, then confirmed that a firmware update resolved the problem. The original failure is consistent with the stock timecode QR reader receiving a Labs settings command; the exact firmware error path has not been independently confirmed. A settings QR contains capture commands, not a timestamp.
Check whether the camera has stock or Labs firmware. On stock firmware, set capture options manually and use Timecode QR for the jam. For configuration QR, use Labs firmware for the exact model. If the error persists on Labs, record the model, full firmware version and the exact text under “GoPro Labs command,” and compare the same settings with GoPro’s MISSION configurator. Check the resulting camera menus before treating any scan as successful.
Max/custom Mbps bitrate, HLG-on profiles, direct shutter-speed extensions, experimental independent ISO limits, generic HERO/MAX profiles, burst/480+ fps modes and camera factory-reset commands are omitted. Their mode-specific behavior is not covered reliably here. In particular, the ILS release notes removed EXPQ/EXPN/EXPX while broken. The tool sends no record, erase, network, date/time, calibration or persistent metadata commands.
Target and custom edits: changing a field makes the form Custom. Changing the target in Custom updates resolution and frame rate while preserving other edits. If the current capture settings differ from the target, the app shows an override note. Unsupported capture pairs block generation; the app never silently reduces your requested resolution or rate. Run & Gun starts with HyperSmooth Off for ILS and for targets outside this tool’s verified stabilization coverage. Photo mode does not send the video target; it is kept for your return to Video.
Remember and reset: optionally save the target and current form in this browser’s local storage. Reopening the page restores editable fields, never an active QR. Older saved forms keep their resolution and rate as the target. Reset restores Production / Cinema at the current target for the selected camera and removes this tool’s saved form; it sends no camera-reset command. The Timecode tool’s reference state remains separate.
Privacy & licensing: calculation and QR generation run locally, with no analytics, uploads, cookies or saved timecode calibration. Camera settings are stored only when Remember settings is enabled. 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.