01Overview
The Belt Tensioner App (written by Matthew Brittle) drives two servo motors that pull and release your seat-belt shoulder straps to simulate G-forces in racing games and flight sims. It reads telemetry directly from iRacing, or from any title through SimHub.
Expect roughly 28 kg of force per side — about 56 kg total with both belts engaged. A complete build costs around $200 USD / £150 / €170.
02What you'll need
Purchased parts:
| Part | Qty | Approx. |
|---|---|---|
| DS51150 150KG digital servo motors | 2 | ~$37 ea |
| 12 VDC 20A 240W power supply | 1 | ~$16 |
| Arduino Nano V3 | 1 | ~$9 |
| 40mm 12 VDC cooling fan | 1 | ~$10 |
| Shoulder straps, webbing & connectors | — | varies |
| Fasteners — M6, M5, M3 screws, nuts & washers | — | varies |
033D printed parts
Print in PLA. Use 5 walls on all belt-load-bearing parts, 20–30% infill, and a standard 0.2 mm layer height.
| Model | Qty | |
|---|---|---|
| Motor mount | 2 | |
| Motor covers | 3 pieces | |
| Pulleys | 6 (variations) |
04Flash the firmware
The Nano needs the BeltTentioner firmware before the app can talk to it. The easiest route is the app's built-in flasher.
Easiest — built-in flasher
- Download and install the Belt Tensioner app from the releases page.
- Plug the Arduino Nano into your PC via USB.
- Open the Flash Nano tool, pick the Nano's COM port (hit Refresh if it's not listed), leave Bootloader on
Auto, and click Flash.
Alternative — Arduino IDE
- Install the Arduino IDE from arduino.cc.
- Open
belt-tensioner.ino, connect the Nano and select its COM port. - Search for “Arduino Nano” in the board selector, then click Upload.
- If upload fails, set Tools > Processor > ATmega328P (Old Bootloader) and try again.
05SimHub plugin
- Download the SimHub plugin and extract the ZIP.
- Copy both files into your SimHub root folder — typically
C:\Program Files (x86)\SimHub. - Launch SimHub and enable the plugin when it's detected.
- In the Belt Tensioner app, turn on Use SimHub Telemetry.
06Wiring
Motor wires (180° servos)
- Brown — Negative / Ground
- Red — Positive
- Yellow — Signal (PWM)
Arduino Nano pins
| Pin | Connects to | |
|---|---|---|
D10 | Left motor signal | |
D9 | Right motor signal | |
D3 GND | Motor ground |
07Assembly
- Mount each servo motor into its motor mount.
- Attach the bottom cover panel to both mounts.
- Install the Nano and expansion board into the cover's mounting tabs.
- Install the wire connector into the cover tabs.
- Connect the power cord wires to the power supply — do not plug in yet.
- Run the 14-gauge wires from the power supply to the enclosure connector.
- Remove the motor connectors; attach the motors and cooling fan to the enclosure connector.
- Wire the ground from the connector to the Nano's
D3 GND. - Connect the motor signal wires (yellow/white) to
D10andD9.
08Install on your rig
- Mount the servo arms on the motors.
- Install the printed pulleys onto the servo arms.
- Attach the webbing / belts to the pulleys.
- Install the complete motor assembly onto your rig's seat mounts.
- Connect the Nano to your PC via USB.
- Open the app and verify the startup (home) position.
- Fit the servo arms with pulleys once the motors are homed.
- Test with a 1G force setting to confirm the rotation direction is correct.
09App configuration
Each car has its own profile. The main panel sets how hard and how far each effect pulls, with a live preview line for every parameter.
- Max Output (%) — maximum belt force (red preview line).
- Resting Point — the pulley's idle position, allowing negative travel (cyan line).
- Braking curve / strength — deceleration force profile (blue line).
- Cornering curve / strength — turning force profile (green line).
- Vertical strength — bumps and elevation changes (yellow line).
Wind effect
A speed-based load layered on top of telemetry. Set resting power, min speed, min power, power and a shaping curve, and enable it per car. The graph previews power against speed.
10G-force directions
- Surge (front–back) — decelerating tightens both belts; accelerating loosens both.
- Sway (left–right) — a left turn tightens the right belt; a right turn tightens the left.
- Heave (up–down) — downward motion tightens both; upward loosens both.
11Motor calibration
- Start Angle — the zero-G-force position (degrees).
- End Angle — the maximum-G-force position; 80–100° works well.
- Inverted — reverses the motor's rotation direction.
- Test Force — applies a set G-force so you can check the feel.
Use the Testing & Telemetry window to sweep each effect and watch live motor output and left/right belt force before you drive.
12Sample settings (Mazda MX-5)
| Setting | Value | |
|---|---|---|
| Max G-force multiplier | 2.0 | |
| Max power | 100% | |
| Braking curve | 0.95 (near-linear) | |
| Cornering strength | 10.7 | |
| Vertical strength | 1 | |
| ABS strength | 23 (enabled) |
Treat these as a starting point and tune to taste for each car.
13Notes & safety
- Some motor noise is normal for gear-driven servos.
- Motor voltage is adjustable via the power-supply potentiometer (roughly 11–13V).
- Keep the power-supply switch within the driver's reach for an emergency cut-off.