final commit for the day

This commit is contained in:
Chris Frankland-Wright 2025-06-23 17:25:23 +01:00
parent 7ec7f6844d
commit 9fe70f4688
2 changed files with 29 additions and 48 deletions

View file

@ -1,31 +1,37 @@
# 🕰️ NTP Timeturner
**NTP Timeturner** is a Raspberry Pi-based stratum 1 time server that sets its system clock based on incoming SMPTE LTC (Linear Timecode) audio. Designed for broadcast and production environments, it allows LTC-based time sync across local networks via NTP.
**An LTC-driven NTP server for Raspberry Pi, built with broadcast precision and a hint of magic.**
Inspired by Hermione Grangers TimeTurner, this project synchronises timecode-locked systems by decoding incoming LTC (Linear Time Code) and broadcasting it as NTP — with precision down to the millisecond.
---
## 📦 Features
## 📦 Hardware Requirements
- 🕒 Decodes LTC timecode from audio input (25fps supported)
- 🌐 Serves NTP time to local devices
- ⚡ Fast, reliable startup using a USB audio interface
- 🔌 Optional OLED display for system time and sync status (coming soon)
- 🛜 Web interface for Wi-Fi config and status (in development)
- Raspberry Pi 3 (or better)
- Debian Bookworm (64-bit recommended)
- USB audio input (e.g. USB to 3.5mm TRS adapter)
- Ethernet connection (recommended for stable NTP)
- Optional: Blackmagic Video Assist or LTC generator for input testing
---
## 🚀 Quick Start
## 🛠️ Software Features
### ✅ Requirements
- Reads SMPTE LTC from audio input (25p/50i to start, with more frame rate support to follow)
- Converts LTC into NTP-synced time
- Broadcasts time via local NTP server
- Supports configurable time offsets (hours, minutes, seconds, milliseconds)
- Systemd service support for headless operation
- Optional splash screen branding at boot
- Raspberry Pi 3 or newer
- Debian Bookworm
- USB audio interface with 3.5mm mic/line input
- SMPTE LTC source (e.g. video playout, Blackmagic device)
---
### ⚙️ Setup Instructions
## 🚀 Installation
Clone and run the installer:
1. Clone the repo:
```bash
git clone https://github.com/cjfranko/NTP-Timeturner.git
cd NTP-Timeturner
wget https://raw.githubusercontent.com/cjfranko/NTP-Timeturner/master/setup.sh
chmod +x setup.sh
./setup.sh

View file

@ -89,40 +89,14 @@ sudo make install
sudo ldconfig
# ---------------------------------------------------------
# Step 7: Apply Custom Splash Screen and Wayland Wallpaper
# Step 7: Apply Custom Splash Screen
# ---------------------------------------------------------
echo ""
echo "Step 7: Applying Timeturner visual identity..."
echo "Step 7: Applying splash screen..."
# Splash screen
echo "Downloading splash screen..."
sudo curl -L -o /usr/share/plymouth/themes/pix/splash.png https://raw.githubusercontent.com/cjfranko/NTP-Timeturner/master/splash.png
sudo chmod 644 /usr/share/plymouth/themes/pix/splash.png
# Wallpaper for LabWC / swaybg
echo "Installing swaybg for Wayland wallpaper management..."
sudo apt install -y swaybg
echo "Downloading wallpaper..."
mkdir -p /home/hermione/Pictures
curl -L -o /home/hermione/Pictures/wallpaper.png https://raw.githubusercontent.com/cjfranko/NTP-Timeturner/master/wallpaper.png
chown hermione:hermione /home/hermione/Pictures/wallpaper.png
# Update labwc init file
INIT_FILE="/home/hermione/.config/labwc/init"
mkdir -p "$(dirname "$INIT_FILE")"
if ! grep -q "swaybg" "$INIT_FILE" 2>/dev/null; then
echo "Adding swaybg launch command to LabWC init file..."
echo "exec swaybg -i /home/hermione/Pictures/wallpaper.png --mode fill" >> "$INIT_FILE"
else
echo "LabWC wallpaper command already present — skipping"
fi
chown hermione:hermione "$INIT_FILE"
echo "Custom splash and Wayland wallpaper applied."
# ---------------------------------------------------------
# Final Message & Reboot Option
# ---------------------------------------------------------
@ -133,10 +107,11 @@ echo "────────────────────────
echo ""
echo "The TimeTurner is ready. But remember:"
echo "\"You must not be seen.\" Hermione Granger"
echo "Visual enchantments adapted for Wayland by Luna."
echo "Visual enhancements are in place. Terminal timeline is stable."
echo ""
echo "The system will reboot in 30 seconds to complete setup..."
echo "Press [Enter] to reboot immediately, or Ctrl+C to cancel."
read -t 30 -p ""
read -t 30 -p "" || true
sleep 1
sudo reboot