udptunnelBerlin ⇄ Essen
One network across 500 km. Sensor broadcasts in the UdK Berlin LAN appear in the Folkwang LAN in Essen, and the other way round. Every datagram is forwarded the moment it arrives: authenticated, peer-to-peer where possible, relayed where not.
First udptunnel bridge between Berlin and Essen established
For the Opencall Dancing Piano II, the first bridge between the two universities went live on 9 November 2026 at 18:00.
Live
Ports
Download · v1.1.0
udptunnel.key.Install
curl -LO https://udk.ai/udptunnel/udptunnel-1.1.0-macos-universal.tar.gz
tar xzf udptunnel-1.1.0-macos-universal.tar.gz && cd udptunnel-1.1.0-macos
sudo ./install.sh folkwang --key-file ../udptunnel.key --bcast 192.168.71.255 # Berlin: udk
sudo ./install.sh status # logs · stop · start · uninstall · diagnose 4000
Starts at boot as a launchd service, keeps the Mac awake, logs to /var/log/udptunnel-edge.log. On macOS 15+, apps that send broadcasts need System Settings → Privacy & Security → Local Network.
wget https://udk.ai/udptunnel/udptunnel_1.1.0_amd64.deb # arch: dpkg --print-architecture
sudo apt install ./udptunnel_1.1.0_amd64.deb
sudo udptunnel-setup udk --key-file udptunnel.key # Essen: folkwang
sudo udptunnel-setup status # logs · stop · start
Runs as systemd service udptunnel-edge under its own unprivileged user. Options: --bcast, --mode p2p|relay|both, --dup N.
Test without sensors
# real latency, measured on one clock (Essen pings Berlin and back)
Berlin: python3 udpprobe.py echo 4999 8999 --to 192.168.1.255
Essen: python3 udpprobe.py ping 4999 8999 --to 192.168.71.255
# simple one-way test (number includes the clock offset between the machines)
Essen: python3 udpprobe.py send 4000 --to 192.168.71.255
Berlin: python3 udpprobe.py listen 4000
How it works
Capture
The edge machine in each LAN listens on its 3000 ports and picks up every sensor broadcast without blocking other apps on the same port.
Cross
Each datagram is signed (HMAC-SHA256) and sent immediately: directly between the edges through UDP hole punching, or via the broker on amsel.udk.ai when no direct path exists.
Re-broadcast
The edge on the other side verifies it, drops duplicates and replays, and broadcasts it into its LAN on the same port, as if the sensor stood next door.