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.