A NTP Server with LTC Input and Offsetting Options
Find a file
Chris Frankland-Wright cf24c9029e
Merge pull request #31 from cjfranko/webui_updates
web ui update! We are for initial release!
2025-08-08 01:32:14 +01:00
.github fix(ci): install dependencies in release workflow 2025-07-21 15:56:24 +01:00
docs docs: Update API docs with new endpoints and response details 2025-08-07 21:59:32 +01:00
firmware Add files via upload 2025-07-22 13:34:13 +01:00
src Merge pull request #29 from cjfranko/non-fractional-mismatch-tc 2025-08-07 19:56:08 +01:00
static added Δ to text 2025-08-08 01:23:34 +01:00
.gitattributes Add .gitattributes, .gitignore, and README.md. 2024-07-27 20:16:00 +01:00
.gitignore Merge branch 'master' into withmergeresolve 2025-07-21 14:25:00 +01:00
Cargo.toml build: Add num-traits dependency 2025-08-03 12:26:31 +01:00
config.yml updated config with config bodge in tests. 2025-07-29 14:49:26 +01:00
LICENSE Create LICENSE 2025-07-22 13:40:18 +01:00
README.md Update README.md 2025-08-07 19:58:45 +01:00
SECURITY.MD Create SECURITY.MD 2025-07-29 11:29:46 +01:00
setup.sh fix: Conditionally compile systemd features for Linux only 2025-07-21 19:46:16 +01:00
splash.png Rename wallpaper.png to splash.png 2025-06-24 22:29:29 +01:00
test_ltc_serial.py final test_ltc_serial.py 2025-07-07 20:23:28 +01:00
timeturner.py refactor: Use rational numbers for accurate frame rate calculations 2025-08-02 12:26:17 +01:00

🕰️ NTP Timeturner (alpha)

An LTC-driven NTP server for Raspberry Pi, built with broadcast precision and a hint of magic.

Inspired by the TimeTurner in the Harry Potter series, this project synchronises timecode-locked systems by decoding incoming LTC (Linear Time Code) and broadcasting it as NTP — with precision as Hermione would insist upon.

Created by Chris Frankland-Wright and John Rogers


📦 Hardware Requirements


🛠️ Software Features

  • Reads SMPTE LTC from Audio Interface (3.5mm TRS but adaptable to BNC/XLR)
  • Converts LTC into NTP-synced time
  • Broadcasts time via local NTP server
  • Supports configurable time offsets (hours, minutes, seconds, frames or milliseconds)
  • Systemd service support for headless operation

🛠️ Known Issues

  • Supported Frame Rates: 24/25fps
  • Non Supported Frame Rates: 23.98/30/59.94/60
  • Fractional framerates have drift or wrong wall clock sync issues

🚀 Installation (to update)

For Rust install you can do

cargo install --git https://github.com/cjfranko/NTP-Timeturner

Clone and run the installer:

wget https://raw.githubusercontent.com/cjfranko/NTP-Timeturner/master/setup.sh
chmod +x setup.sh
./setup.sh

🕰️ Chrony NTP

chronyc sources | Checks Source
chronyc tracking | NTP Tracking
sudo nano /etc/chrony/chrony.conf | Default Chrony Conf File

Add to top:
# Serve the system clock as a reference at stratum10
server 127.127.1.0
allow 127.0.0.0/8
local stratum 10

Add to bottom:
# Allow LAN clients
allow 0.0.0.0/0

# comment out:
pool 2.debian.pool.ntp.org iburst
sourcedir /run/chrony-dhcp