
voltCAN
Python script for controlling a virtual Xbox controller with a 2013 Chevrolet Volt (really)
PythonSecurity
June 5, 2025(edited August 25, 2025)•1 min read
This script uses the Innomaker USB2CAN (sold separately) to read CAN bus messages from a 2013 Chevrolet Volt and start a virtual Xbox controller with controls mapped from the physical vehicle.
Requirements
- Python 3.11 or later
- 2013 Chevrolet Volt, though from my research it may work on other Chevy vehicles
- Innomaker USB2CAN-Module
- Some sort of connection between the two. For beginners, I suggest a DB9 to OBD2 cable, such as this one also by Innomaker, which I originally used. Pay careful attention to the pinout of the cable, especially that the OBD2 pins 6 and 14 map to DB9 pins 3 and 5 respectively.
- Something that uses an Xbox controller. I used Dolphin Emulator to play Mario Kart: Double Dash!!
Controller Mappings
- A Button: Accelerator
- B Button: Brake
- X Button: Cruise control rocker (either enable or disable)
- Left Joystick (left/right): Steering wheel position
Links
Open-source on GitHub here
Demo video here