Logan Nommensen
voltCAN

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