ExacT force feedback steering wheel

The ExacT is an affordable precision force feedback sim racing wheel platform with open source hardware/software

Similar projects worth following
The ExacT is a sim racing wheel designed to provide the track-feel of an expensive direct drive wheel, without the price-tag of some of the other direct drive wheels on the market. The current Bill of Materials is currently at less than $400*. This project was inspired by this thread on

*BOM not official until the project is complete, obviously. Unexpected cost may arise.

The motor drive system is composed of a 12NM NEMA32 stepper motor.,off the shelf TI development boards, a custom phase current sensing board, custom firmware,  and a US Digital 5000 PPR (20000 CPR) encoder. 

The software uses Field-Oriented Control to, with the help of the encoder, precisely control  the magnetic flux vector so that maximum torque with minimal ripple is achieved. 


Excel Spreadsheet for FOC of stepper motor

sheet - 26.81 kB - 02/08/2018 at 04:41


  • Current Sensing board 99% assembled + Test Plan

    John Taylor02/28/2018 at 19:52 0 comments

      I received the phase current sensing PCB from OSHPark on Monday. I finally got around to assembling it today. Here are some pics.

      If you look closely, you will notice that U2, one of the isolators, is missing. Unfortunately I forgot to order this part from digikey and I'll have to wait for it to come in.  There were a few problems with the board. I used really tiny 0402 resistors and capacitors and from an assembly perspective this made things tedious. I also forgot to put a package outline and a pin-1 callout on the current sense amps so I had to reference the Altium file to figure out which way they needed to go on the board. 

      Test Plan

      1. Make sure no power nets are shorted to ground
      2. power board on
      3. Check Vref
      4. Apply i known current through the channels and make sure it shows up on the output of the op amp
      5. Check all of the digital signals to make sure they are working

      I probably wont get to this until late next week because I'm going to be out of town.

  • Current Sensing PCB is ordered

    John Taylor02/11/2018 at 21:44 0 comments

    After a few weeks of tinkering, I finally finished the PCB that will allow me to sense the phase currents of the stepper motor. The phase output wires of the motor driver board plug into one side and feed the motor current through 5mohm resistors. Special kelvin connections that I learned about from this article were used to improve the measurement accuracy at high-currents. INA240 current sensing amplifiers from TI were used for their enhanced PWM rejection. With these components I should be able to sense currents from -16.5-16.5A. Isolators were added to isolate the motor driver processor/power circuitry from the STM discovery board. I have also added connector ports to route the encoder and PWM signals to the STM discovery board. This board has a standard booster pack layout and will plug directly into the C2000 launchpad.

  • Update

    John Taylor02/08/2018 at 04:39 0 comments

    I have been working on the project for almost a month now and have accomplished a bunch, and also ran into a few problems.  


    • Sourced motor, encoder, motor driver,wheel rim, game controller interface board (STM32) and motor controller processorboard (TI C2000)
    • Mounted the encoder to the back of the motor with a 3D printed adapter. I had to machine a hole in the back of the motor case in order to have access to the shaft. I then drilled and tapped mounting holes and mated the encoder shaft with the motor shaft via an adapter. (pics)
    • Mounted the wheel rim to the motor output shaft with a 3D printed coupler (pics)
    • Wrote software to set up the Motor Controller Processor to talk to the Motor Driver/send PWMs and wrote a basic stepper motor algorithm to spin the motor up to about 300RPM
    • Researched Field Oriented Control for Stepper motors extensively and made an excel spreadsheet detailing and graphing the desired current in each of the motor coils in one electrical cycle. (Great PPT on the subject)
    • Got MMos set up on my STM32 dev board and got my FFB-less wheel to control a car in IRacing. (video

    I have however ran into one big challenge. The DRV8301 Motor Driver Booster pack from TI uses low-side current sensing. Because of the topology of the motor I am using, the sensors on the low-side of the inverter do not provide enough information to determine the phase currents. For this reason I have been working on a custom phase-current sensing booster pack that the motor leads will pass through on their way to the motor. This booster pack will plug directly into the launchpad dev board and provide the phase current information that I need for FOC. 

    The plan moving forward is to order the PCB in the next couple of days. As soon as i receive the PCB's I will test them and begin writing the FFB code. 

View all 3 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates