Helm Clock
Helm Clock is a compact hardware timecode interface for live production — a central generator, distributor, and monitor for the timing that holds a show together. Inspired by the Rosendahl MIF4, it bridges LTC, MTC, and the Helm Protocol so DJ hardware, lighting consoles, video servers, and DAWs all run on one clock.
What it does
Section titled “What it does”- Timecode processing. SMPTE LTC and MIDI Timecode at 24/25/30 fps, with re-clocking of incoming timecode to suppress jitter and drop-outs.
- Multi-source sync. Priority-ordered sources (LTC → MTC → network → internal) with automatic failover.
- Audio routing. Acts as a USB/network soundcard for Helm software. Playback audio goes to RCA and minijack outputs; LTC goes exclusively to the XLR outputs — the two never mix.
- Network integration. Joins a Helm session over Helm Protocol for distributed control, show data, and network timecode.
- Hardware UI. 8-digit 7-segment LED for the timecode readout (HH:MM:SS:FF), a small OLED for menus, and a rotary encoder for control — minimal by design, for use under pressure in the dark.
| Direction | Connections |
|---|---|
| Inputs | XLR (LTC), MIDI in, USB-C (power/data), Ethernet |
| Outputs | 2× XLR (LTC), MIDI out, RCA stereo, 3.5mm minijack |
How it’s built
Section titled “How it’s built”Raspberry Pi-based hardware running a custom boot image that starts straight into the application. Everything timing-critical lives in a Rust daemon (helm-timekeeperd) built on the shared helm-timecode crate — the LTC encoder runs inside the audio device callback so the DAC crystal is the timebase, and MTC quarter-frames run on a dedicated real-time thread. A Python control plane drives the daemon over a Unix socket and owns the UI, configuration, and network layer.
Performance targets: <0.1 frames RMS timecode jitter, <5ms end-to-end audio latency, <30s boot.
Status
Section titled “Status”Prototype. The Rust timing engine is merged and the first on-device deployment is in progress. Detailed hardware, software, and testing documentation exists as drafts and will publish here as the design settles — this overview is the current canonical page.