Search models, users, collections, and posts

Sim HandBrake DIY

Print Profile(1)

All
P1S
H2C
X2D
X1
H2D Pro
H2S
A1
P2S
P1P
X1 Carbon
X1E
H2D
A2L

0.2mm layer, 3 walls, 15% infill
0.2mm layer, 3 walls, 15% infill
Designer
15.2 h
2 plates

Open in Bambu Studio
Boost
42
113
9
0
67
13
ReleasedĀ 

Description

šŸ DIY Sim Racing Handbrake (ESP32-S3 USB)

+ Optional Sequential Shifter Support (included in firmware below!)

If there is enough interest, I will also release a full DIY Sequential Shifter design in the future.
The firmware already supports both the handbrake and the shifter.

šŸ”„ Introduction

This is a DIY analog sim racing handbrake designed for PC racing games like rally simulators and track racing titles.
It uses an ESP32-S3 with native USB to act as a plug-and-play HID device — no external Arduino or USB converter needed.

The design is compact, strong, and fully 3D printable, using mostly standard hardware components.

The handbrake works analog, meaning the position directly affects braking force — just like a real hydraulic handbrake.

šŸŽ® Features

  • āœ… Analog handbrake (linear position → braking force)
  • āœ… USB HID via ESP32-S3 (plug & play on PC)
  • āœ… Optional sequential shifter support (via firmware)
  • āœ… Fully 3D printable
  • āœ… Uses common, easy-to-source hardware
  • āœ… Spring-loaded return (compression spring)

🧾 Bill of Materials (BOM)

Electronics

Hardware

  • M8 nut
  • M8x50 socket head bolt
  • M8x16 bolt (1x)Ā 
  • M6x12 bolt (1x)
  • M3x8 or M3x10 bolts (4x)
  • Threaded rod M10 (60–70mm)
  • Compression spring
    • Length: 40–50mm
    • Wire thickness: ~2.5mm
    • Outer diameter: max 19mm

Printed Parts

Included in this project:

  • Base (Body)
  • Lever / Hand lever
  • Shaft components
  • Lock shaft
  • Rings / spacers
  • Spring holder
  • Lever shaft system
  • Horizontal guiding shaft + ring
  • Potentiometer bracket (linear mount)
  • Top shaft + bolt parts
  • Handle

(All parts are included in the STL files)

 

🧱 3D Printing Notes

For the best surface quality, I used PLA/PETG support interface filament.
This gives a much cleaner finish on supported surfaces compared to standard supports.

Recommended materials:

  • PLA → easy to print, good enough for most use cases
  • PETG → slightly stronger and more durable

Stronger materials are always possible if you want extra rigidity or long-term durability.

āš™ļø How it Works

The handbrake uses a linear sliding mechanism:

  • The lever pushes a slider
  • The slider compresses a spring
  • At the same time, it moves the linear potentiometer
  • This gives a smooth analog signal to the ESP32

Important:

  • This uses a compression spring, not a tension spring
  • The return force comes from pushing the spring back

šŸ”Œ Wiring (ESP32-S3)

The potentiometer has 3 pins:

  • Middle pin → GPIO (analog input)
  • Side pin → 3.3V
  • Other side → GND

āš ļø Use 3.3V only, not 5V

The firmware reads this signal and converts it into a USB axis.

šŸ’» Firmware

  • Firmware is included with this project
  • Supports:
    • Analog handbrake (X-axis)
    • Sequential shifter (2 buttons)

You can use:

  • Only handbrake āœ”
  • Handbrake + shifter āœ”

šŸŽ® Setup in Windows

  1. Connect the ESP32 via USB
  2. Open:

    joy.cpl

     

  3. Select the device
  4. Click Properties
  5. Move the lever → should respond on an axis

Optional:

  • Use Calibrate to fine-tune the range

šŸŽļø In-Game Setup

In games like:

  • Assetto Corsa
  • Dirt Rally
  • iRacing

Simply:

  • Assign handbrake → pull lever
  • Assign shift up/down → press buttons

āš ļø Notes

  • This is a DIY project, some basic technical skills are required
  • ESP32 works as a PC USB device only (no direct console support)
  • If something is missing or truly incorrect, feel free to report it
  • Small improvements or ā€œnice-to-haveā€ suggestions are not needed

šŸš€ Future Plans

If there is enough interest, I will release:

šŸ‘‰ A full DIY Sequential Shifter (mechanical design) to match this handbrake

ā¤ļø Final words

This project is designed to give you a realistic sim racing experience with minimal cost and maximum customization.

Build it, tweak it, improve it — and enjoy rallying the way it should be. šŸ

šŸ”§ Firmware (Arduino / ESP32-S3)


#include "USB.h"

#include "USBHID.h"


Ā 

USBHID HID;


Ā 

const int handbrakePin = 2;

const int upShiftPin Ā  = 6;

const int downShiftPin = 7;


Ā 

// HID report buffer: 1 byte knoppen, 1 byte X, 1 byte Y

uint8_t report[3];


Ā 

void setup() {

Ā  Serial.begin(115200);


Ā 

Ā  pinMode(handbrakePin, INPUT);

Ā  pinMode(upShiftPin, INPUT_PULLUP);

Ā  pinMode(downShiftPin, INPUT_PULLUP);


Ā 

Ā  HID.begin();

Ā  USB.begin();


Ā 

Ā  Serial.println("ESP32-S3 USB HID Gamepad gestart!");

}


Ā 

void loop() {

Ā  // Handrem uitlezen

Ā  int rawHandbrake = analogRead(handbrakePin); Ā  Ā  // 0–4095

Ā  int8_t mappedHandbrake = map(rawHandbrake, 0, 4095, -127, 127);


Ā 

Ā  // Knoppen uitlezen

Ā  bool upShift Ā  = (digitalRead(upShiftPin) == LOW);

Ā  bool downShift = (digitalRead(downShiftPin) == LOW);


Ā 

Ā  report[0] = 0;

Ā  if (upShift) Ā Ā report[0] |= 1;

Ā  if (downShift) report[0] |= 2;


Ā 

Ā  report[1] = mappedHandbrake;

Ā  report[2] = 0;


Ā 

Ā  // HID report sturen (report ID = 1)

Ā  HID.SendReport(1, report, sizeof(report));


Ā 

Ā  delay(10);

}

Comment & Rating (9)

(0/1000)

any idea of support settings? Couldn't remove support from it got rage and destroy it now another 12 hours of printing before that meybe anyone have idea
0
Reply
Support settings are for PLA/PETG connection, meaning if you print with PLA, you have to use PETG as support and vice versa. PLA and PETG don't bond, so you get smooth support surface, but if you print your supports with the same material as the model, you can't remove them. hope this helps.
0
Reply
Replying to @der_ulle :
that make sense so one is done but have you tried to figure out assembly? 🤯🤯
0
Reply
Replying to @JaRoX :
net yet, printing first plate right now.
0
Reply
If I size it lower can it function or does it need a spring
The designer has replied
0
Reply
you can take a smaller spring. But the problem would be, there are some threads printing in de model and you won't have isometric thread anymore. Like M8 thread is than smaller and you can't use the bold anymore.
0
Reply
are there any assembly instructions or photos?
0
Reply
Does it work on Forza
Show original
0
Reply
is there a assembly guide somewhere for the 3d printed parts?
0
Reply
No more

License

This user content is licensed under the MakerWorld Exclusive License.

You may create derivative works based on this object, provided that all such derivative works are published exclusively on the MakerWorld platform and include proper attribution to the original creator. You may not share, upload, host, distribute, or publish this object—or any derivative work of this object—on any other digital platform, marketplace, or distribution channel. Commercial use of this object and any derivative works is strictly prohibited. This includes, but is not limited to, selling, renting, sublicensing, or using the object in any context in which you receive monetary compensation or other financial benefits.