
You've seen elaborate multi-screen simracing setups. You've seen those weird 3D-printed steering wheel attachments clipped onto gamepad joysticks. You've even seen players attempt precision driving with the binary input of WASD keys in Forza. But what you probably haven't seen—until now—is a real, physical car controlling the virtual one on your screen.
Meet Mr. Yeester (stylized as mryeester), who's just done exactly that. He took a real car, specifically an old Honda hatchback, and hacked into the onboard diagnostics of the vehicle in order to read the data coming from its sensors. Then, using Python libraries and some clever scripting, he managed to register the car’s actual gas pedal as an input device inside an emulator. Here’s how he pulled it off.
Every car made after 1996 (in the U.S.) has an OBD2 port, usually found under the dashboard. It’s a universal diagnostic interface designed to help identify and fix issues with your car. Mechanics and manufacturers use it to pull all sorts of data from various sensors, everything from engine RPM to the gas tank level. Basically, if a sensor monitors it, it can show up here. Of course, Mr. Yeester didn’t use this port for troubleshooting.

Thanks to a simple OBD2-to-USB adapter cable, he tapped into the car’s ECU (electronic control unit) and began logging sensor data directly onto his laptop. One of those sensors tracked the throttle position, directly linked to the gas pedal. However, it's not as easy as just taking this data and mapping it automatically to whatever game you want.
First, you need a Python library called pySerial to read data coming from the car’s sensors. Once the stream is visible, the next step is to identify the specific PID (Parameter ID) for the throttle. This allows you to tap into that particular sensor and write a script that converts the analog signal from the car’s gas pedal into a digital one your computer can understand. Unfortunately, Mr. Yeester didn’t share the exact details about how he achieved this.

Once the script is working and throttle data is being read in real time, the values need to be saved to a JSON file. That file is then monitored by a separate automation tool. In the video, Mr. Yeester used AutoHotkey to create a second script that mimics a physical key press whenever the values in that file change. In his case, he set the script to register a Spacebar input as soon as the "trigger_value" parameter crossed 0.2 inside the JSON.

At the end, just open your emulator of choice and configure the control scheme to map Spacebar as the throttle input. You can do this in pretty much any modern game that supports custom key bindings. Then, simply run the AutoHotkey script and, voilà, your car’s gas pedal becomes your car's gas pedal... in Need for Speed.

As a bonus, in his long-form video on the same project, Mr Yeester even got the steering wheel of his car to function as the steering in-game. He used an old Honda diagnostics tool that gave him access to some hidden sensors, like the steering, which he mapped in a similar way to the throttle inside the Dolphin emulator.

The rest of the video turns into a borderline sponsor segment for a dashcam he used to film the setup from inside the car. No further technical instructions were provided. Still, this has to be one of the most expensive—yet somehow still barebones—simracing setups we’ve ever seen. If you want to see a similar drive (no pun intended) for DIY wizardry, check out the unofficial Steam Controller 2, made from a sliced-up Steam Deck.
Follow Tom's Hardware on Google News to get our up-to-date news, analysis, and reviews in your feeds. Make sure to click the Follow button.