Arduino Microsoft Sidewinder Wheel


I took time to documentate a Microsoft Sidewinder Wheel modification. This piece of hardware from 1999 is still listed on Amazon:

The wheel is unsupported after Windows XP (or at least does not work well under modern systems). The basic idea was to replace the manufacturer logic with an Arduino to take over the functionality.

Reverse Engineering

The original design used a Mitsubishi MCU M37532 (USB Human Interface Device Controller). The image below shows the connector side of the PCB.

After some tinkering I found out:



The hardware engineering consisted of soldering 13 cables onto the right pins. See the result below. No additional components needed.

Pinout and connections between components (cable colors from picture)

Wheel       Cable           Arduino

            // steering wheel cable
            violet          Pin 2
            white           Pin 3
            yellow          Pin 4
            orange          Pin 5
            red             Pin 6
            brown           Pin 7

// steering wheel potentiometer
Pin 1       orange          VCC
Pin 2       red             A0
Pin 3       brown           GND

// pedal connections
ACC         yellow          A1
BRAKE       white           A2
VCC         red             VCC
GND         blue            GND


It has become easy to turn Arduino boards into USB HID devices (mouse, keyboard, joystick). The statement below sets up a steering wheel and pedals with the library ArduinoJoystickLibrary.

  8, 0,                   // button count and hat switch count
  false, false, false,    // X, Y and Z axis
  false, false, false,    // rx, ry, or rz
  false, false,           // rudder or throttle
  true, true, true        // accelerator, brake and steering axis

Working on all boards with the ATmega32u4. See the full source here.

Some notes on the script:

In the final arrangement the Arduino is taped down.


A DIRT3 joyride is outstanding.