🏍TeleBike

Your phone. A pole. A motorcycle sim controller.

TeleBike turns a phone mounted on a simple handlebar rig into a low-latency motion controller for motorcycle sims. Lean the rig, turn the bars — the phone streams its sensors to your Windows PC, and your game just sees a controller.

Windows + Android · free · in development — no packaged download yet.

lean = steer phone pivot pole floor pivot — no base, no bearings, no cost
The whole rig: a pivot pole, handlebars, and your phone.

how it works

A phone sits at the center of the handlebars, a crossbar on top of the pivot pole — a T shape, like an upside-down push broom. The pole's floor end is the pivot; you hold the bars and move the whole rig. Three motions, three axes:

You doPhone measuresGame getsMeaning
Tilt the pole side to sideRollLeft Stick XBike lean — the primary steering input
Tilt the pole toward / away from youPitchRight Stick Y (configurable)Rider body lean forward/back
Rotate the pole about its own lengthYawBlend into steer, or its own axisHandlebar turn (counter-steer)

The Android app streams one packet per sensor sample over UDP — USB tethering preferred, Wi-Fi works too. A small Python receiver on the PC filters, maps and feeds a ViGEmBus virtual controller, so any game that takes a gamepad takes TeleBike.

features

⚡Low latency by design

One UDP datagram per sample straight from the sensor loop — no cloud, no relay app, no video stream. USB tethering keeps it off your Wi-Fi entirely.

🎛Fully custom mapping

Per-axis range, deadzone, response curve, inversion and smoothing — plus yaw_into_steer to blend handlebar turn into the lean axis for counter-steering feel. All in one config file, no rebuild.

🎮Looks like a real controller

The receiver drives a ViGEmBus virtual pad. If your sim takes a gamepad, it takes TeleBike — no per-game plugins.

🧭Drift handled

Yaw is measured relative to your last Re-center: stand the rig upright, bars square, one tap and you're zeroed again.

🔩Hardware-ready

Throttle and brakes are planned as real hardware — levers and a twist throttle on Hall-effect sensors — merging into the same virtual pad later. The mapping stays open for it.

🔓Free and local

Self-written, free, and everything stays on your own network. Test without the phone using the included test sender.

quick start

  1. PC, once. Install ViGEmBus, then pip install -r pc/requirements.txt.
  2. PC, every session. Run .\pc\run.ps1 and leave it running — it creates the virtual controller and prints live axis values.
  3. Phone. Install the TeleBike app, plug into the PC over USB and enable USB tethering (Wi-Fi on the same LAN also works). Open TeleBike, tap Find PC, then Start.
  4. Zero it. Stand the pivot pole upright with the handlebars square and tap Re-center. Ride.
No phone handy? python pc/test_sender.py feeds the receiver synthetic packets so you can verify the controller end to end.

tuning

Everything lives in pc/config.json and applies without a rebuild:

SettingWhat it does
Per-axis range (degrees)How far you physically lean for full stick deflection
Deadzone & curveKill jitter near center; shape the response toward the edges
InversionFlip any axis to match your sim
SmoothingTrade a little latency for steadier input
yaw_into_steerBlend handlebar turn into the lean axis — one steering axis with counter-steer feel

faq

Find PC doesn't find my PC.
Make sure the receiver is running, the phone and PC share a network (USB tethering, or the same LAN over Wi-Fi), and the firewall allows the receiver's UDP port.
Steering slowly drifts to one side.
Gyro yaw drifts — that's physics. Stand the rig upright and square and tap Re-center; it zeroes yaw instantly.
The game doesn't see any controller.
ViGEmBus must be installed and the receiver running; the game then sees a standard virtual gamepad. Check the receiver window — it prints live axis values when packets arrive.
What about throttle and brakes?
Undecided for now — phone pitch can serve as an interim throttle/brake. The long-term plan is real levers and a twist throttle on Hall-effect sensors as a separate input device.
Where's the download?
TeleBike is in active development and there's no packaged download yet. The docs describe the full setup; watch this page.