Custom motor driver for FFB Wheels

Why do we have to rely on expensive drivers when we can make our own?

Similar projects worth following
The main idea of the project is to have a possibility to build a steering wheel on a cheap. But the true intention is it's capability to break your hands. Even better - Free Gym, having fun while training is super cool, right?

Stepper motors allow us to do this together with traditional servo / brushless dc. Steppers can be had for around 100 bucks for 12 Nm variariant or even better - monster nema 42 with around 20-24 Nm for 200$, while servos are more expensive.
To put the numbers into something practical, with a wheel of 300 mm diameter, you will be fighting against 8 kg of max force with 12 Nm or 16 kg with 24 Nm.

Thankfully there are preassembled units available from china called hybrid stepper. They come with 1000ppr/4000cpr encoders which are directly compatible with mmos or OpenFFB board.
This saves you the hassle of drilling the back of the motor and having headaches of encoder and shaft misalignment.

Youtube channel:

XSimulator page:

Motor driver:

Driver consists of an arm chip as brain and driver circuit with mosfets. It takes PWM and Dir input from usb force feedback controllers, or any other hardware, e.g. MMOS on stm32 from virtual racing or AI WAVE on arduino leonardo from racing fr, OpenFFB board from Ultrawipf or VNMwheel from HoanTV.

At this moment both steppers and brushless dc (classic Chinese servo) motors with incremental encoders are supported.

  • Hover Boi

    Nikiss99906/14/2021 at 21:46 0 comments

    Here's an frankenstein hoverboard build. Main obstacle in post before was that it's mount was not good enough. 

    Ordered SK16 smooth rod holder and it's freaking great! This mount is way stronger than just taking a clamp directly on motor, like big stepper or mige.

    There's one big problem though. My motor's kind of a knockoff. It's stator is half the size of all other hovers...
    So very little torque and very much heat.

    Other problem is in pulley. One on the motor is drilled and filed to be able to be glued on the motor. Pulley on the encoder as well, needed to make 6mm hole from 5mm. Well, they are both woobly and there's encoder misalignment there. Since motor has 15 poles this is a BIG problem, or at least I think so.

    Well for now I think that real motor will be great. Can't be certain about cogging. Other guys here told that there is little cogging, not as good as real servo. Need a 3d printed pulley to print a real mount to the back of the motor.

    For now here's a little video of driving. Just ignore all squeaking and noise, it's coming from pedals, chair and fans all around. 
    Motor is silent as long as you keep road noise setting in assetto corsa down. At 15% motor Really starts vibrating. But it's good I guess, it should do that if road noise is present.

    Here's a picture of step log performance with tyre still on. HILARIOUS (better than actual performance, 20 amps was shoved into the motor expecting to get something out of it. Motor barely handles 4 amps on open air)

  • Aaaaaaand Mige is here! Welcome to servo

    Nikiss99903/06/2021 at 23:44 0 comments

    This project should be changed to both steppers and servo now :)

    Testing was done on 150 Watts 48 V supply, trimmed to 38 V. Strength in Nm should be between 10 and 15, but this is just a guess. Motor is Large Mige 130st-M15015 with 2500 ppr / 10000 cpr encoder.

    Didn't reveal stepper electronics yet, but you can see the driver for brushless motors (servos) on the right side. Powered with 2 supplies, one high voltage for motor and other is 12 V Pc power supply.

    This is as close as you'll get to OSW without Argon or Ioni. That's why MMOS was used. 10 for effect filters, 0 for overall filter,, no additional effects. 0 on everything in assetto corsa, gain on 100%, 75% in game (to avoid clipping).

    Some rally carnage as well, breaking some desks

  • Visualize your FFB

    Nikiss99902/08/2021 at 22:25 0 comments

    If anyone ever wondered how would force feedback look on graphs here's a nice representation

    MMOS will be tested as well against OpenFFB. This one might get very interesting :)

  • Smooth Boi

    Nikiss99901/29/2021 at 23:08 0 comments

    Smooth Boi enters the game

    And with it the support for 3 phase BLDC, AC Servo permanent magnet, Hoverboard, RC Drones, Mige, whatever more name you can think of brushless motors.

    This is hoverboard motor btw

  • Torque test !!!

    Nikiss99912/08/2020 at 19:31 0 comments

    Well, all before this was just empty talk without any info on actual strength of the boi. Time for a reveal:

  • Testing video

    Nikiss99911/21/2020 at 01:04 0 comments

    This has been long overdue :)

    But finally it's here, testing and driving

  • The 36V goodness

    Nikiss99911/14/2020 at 21:23 0 comments

    Well the title says everything.

    Forcefeedback is really good now, compared to what it was before (don't think that it was bad before with 12 Volts power supply, now it's just very good). Everything is snappier and Stronger. Cogging is also reduced because of that new closed loop current control.

    Higher voltage gives more headroom for faster rotation. This means that you still get feedback even when counter steering the force from the game. With 12 V, at some point you hit a brick wall and you can't push enough juice into motor to keep FOC running.

    This also means that the wheelbase can murder you. Stronk boi is really really fast now and that boi can punch you really hard.

    Here are step log results, from wheelcheck

    Wheel mounted


    No wheel

    12V with wheel 

    (this chart is flawed, 1080 degrees were in mmos and 900 in wheelcheck, however there is no big change, line may get a little steeper but it won't come close to -5000)

    Stay tuned for some stronk boi video action!

  • Another improvement, revamped current control and reduced noise

    Nikiss99910/06/2020 at 23:39 0 comments

  • Found out where the problem is

    Nikiss99909/23/2020 at 11:29 0 comments

    Usable force should be about 5 Nm in this moment. Electronics start having a mental breakdown above that level.
    This is the reason why wheel started feeling bad at higher forces. Current control is actually very good until 5 Nm. After that there are huge deviations, we are talking about 20 - 40 % difference in expected output vs reality.
    Notchiness is still there. I won't even try removing it until full 12.5 Nm are extracted from the wheelbase. Strength is the priority

    Edit : The noise in the previous demonstration videos is because of the bad current control. Motor starts squeaking above 5 Nm. If filmed at 5 Nm that there would be no squeaking noise.

  • Another improvement and torque measurement

    Nikiss99909/19/2020 at 21:59 0 comments

    Did some Nm testing. At 25% strength wheel was able to lift a 2 liter bottle at 12 cm from center of the shaft. That is about 2.4 Nm. Don't have concrete results yet but that should be about 10 Nm at full strength. For now.

    Turns out that bts7960 is not up to the task for closed loop current control. I made another diy bridge and current control now is much better. Current control is still not perfect. But good news is that torque unevenness is much Much better now. Didn't have a lot of time to calibrate it properly. This also solved the problem with fast rotation. Now the strength when steering quickly is not reduced. In fact if I didn't know that the problem existed I'd never notice it.

    Notchiness is still there. However below 50% strength or 5 Nm you can only feel the "tip" as a notch. Everything between steps is butter smooth.

    Driving with now improved wheel was a blast. Everything below 5 Nm is a meme. It is just not strong enough. 5Nm to 7.5 Nm is good. 7.5 Nm to 10 Nm is really strong. At 7.5 you feel road texture and it is the sweet-spot. More than that and you start struggling to make corrections. But it's too much fun to drive at 10 Nm.

    In summary:
    - Notchiness got lowered by let's say 70%
    - Speedy corrections and rally driving is not reducing strength anymore
    - 7.5 Nm is the sweetspot

    Flux weakening will be one of the next research steps. It reduces torque and increases power consumption but greatly increases rotational speed. However I'm still not sure if it affects notchiness between steps. If it breaks FOC which is used right now then there's no other solution but to use power supply with more than 12 Volts.

View all 12 project logs

Enjoy this project?



Andy wrote 02/19/2024 at 17:31 point

How is the stepper being driven?

My experience with stepper motors is they're applying incremental steps to lock the motor at a given output position, and to force them out of that step would be a very jerky movement, doesn't appear that's what's happening here. How do you drive it to a given amount of force without skipping steps like crazy?

  Are you sure? yes | no

Just_Yuu wrote 05/28/2022 at 18:17 point

excuse me but did i got this right? You used mmos on an STM32F103?

  Are you sure? yes | no

Nikiss999 wrote 07/08/2022 at 20:59 point

I've used mmos, openffb and vnm on STM32F407. Those are interfaces to pc games. As for motor driver microcontroller I've used various, but it doesn't really matter at the end if it pushes current through the motor correctly and fast :D

  Are you sure? yes | no

Ignatius Pelser wrote 01/22/2021 at 13:39 point

Hi there @Nikiss999

I am not an expert on these components, but I have been longing for such a long time to build a direct drive wheel with a stepper... I have seen so many videos and posts, and the big thing though is not a lot of people share the exact how to... Now I know people such as yourself with these talents, do so much work to figure this out, and us lazy bums just want to see and do from guides etc... I am very excited about your project and the progress that you have made, and looks amazing!! Wish I had the knowledge to pull something like this off.. 

I know Direct drive wheels are expensive, and a few times I thought some of the pricing is not too bad... But as South African, we get hit sooooooo hard with import taxes, plus currier costs, it turns out to be just short of double the price... Which is just too insane... Also we do not have a single form of product nor representation for DDW's here in South Africa!...

All the best to you, loving your work.... Eagerly awaiting your end product...


Avid Future Customer :)

  Are you sure? yes | no

Nikiss999 wrote 01/25/2021 at 16:20 point

Hey Ignatius,

Thank you for these nice words!

Yeah when taxes hit they hit like a truck. That's why there'll probably be no motors and hardware available but only electronics. Better try a force feedback wheel first and then decide if this is for you :)

For me it's fun to wrestle with the wheel and break a hand or two XD

  Are you sure? yes | no

Gustavo A. Lara wrote 01/12/2021 at 11:40 point

Hi Nikiss99!

I'm very interested in this project and sounds very promising. Finally, what components did you use? I have a Nema34 with a rotary encoder and a SMT32F4Discovery board... but reading your post I don't know if you are transforming the PWM signal to voltage with a BTS7960 / BTN7960 43A H-Bridge or is needed another components like arduino... Are you making your own firmware too?

  Are you sure? yes | no

Nikiss999 wrote 01/14/2021 at 13:21 point

Hi Gustavo :)

You can think of my driver in the same way as VESC. It's not using BTS unfortunately. There are 2 H-Bridges made of IRFZ44N. The most important part is that you get around 40 Volts power supply cus it's really hard to get any speed out of stepper on a lower voltage supply. 

Not an arduino, microcontroller used was Stm32f103. This thing drives 2 H Bridges and it has a closed loop mechanism that controls current with voltage. However this might change anytime.

Not sure how will these thing be sold. Maybe I'll be selling just a microcontroller and letting you solder all electronics or there will be whole units premade like VESC. I think that there will be a catastrophe if people suddenly start soldering something that is not easy to solder, but again at this point in time that will be the cheapest option and for this I was aiming from the start. 

I'll be making a video with some thoughts  about the current state of Stronk Boi. It may be a good idea to create discord channel or use the chat here for later discussions.

  Are you sure? yes | no

Gustavo A. Lara wrote 01/15/2021 at 14:47 point

Thanks for the answer Nikiss. Then, are you thinking in sold your board like OpenFFBoard project? Or sharing your design for the people that could solder the components by themselves? I think it's a good idea a Discord Channel. I think there is a lot of people interested in sim wheels based on stepper motors because are cheap and enough for people that are starting in iracing and enjoy with DIY projects like me

  Are you sure? yes | no

Nikiss999 wrote 01/17/2021 at 10:40 point

It'll be either fully assembled driver or just a microcontroller - in this case you'll either solder everything on perfboard or I'll maybe make a Pcb which can be ordered from china pcb manufacturers with through-hole components if it can all fit.

  Are you sure? yes | no

Nikiss999 wrote 12/16/2020 at 18:41 point

Another good point. Servo steppers from china have 1000ppr encoders (mine has positive and negative A and B wires, no Z or Index wire). Mine also does not require pullup resistor and works on 5 Volts. I bought DB 9 male connector and removed backplate of the motor. After that checked which encoder pin corresponds to which pin on plugged in db 9 male connector with multimeter continuity test (6 pins are used, 5V, Gnd, A+, B+, A-, B-). You can take A and B positive or negative pair and plug them into mmos without a problem. Motor only comes with short db 9 female cable so I bought 2 meter extension db9 cable and it all works without a problem. This is the main reason why this motor was bought - encoder was premounted.

  Are you sure? yes | no

Arian wrote 12/14/2020 at 07:48 point

Looks very promising! Though it might need a kill switch for safety reasons. Planning on sharing the plans when you're confident it would work?

  Are you sure? yes | no

Nikiss999 wrote 12/14/2020 at 23:49 point

Thx for the suggestion! Pretty good idea for something like this although it may not be necessary if forces don't go above 10 Nm. It is strong and reacts very quickly but it's not insane like Osw Mige :)

As for plans it is pretty much the same thing as Osw. You'll probably buy a stepper servo locally or order it from China, get shaft coupler, power supply, steering wheel and adapter, wheelbase mount, button plate, etc...

It doesn't make much sense for me to ship motors (pay shipping from China and shipping to somewhere) and complete kits, maybe just shaft couplers as they are not that common. So my decision is to ship only the stepper driver when it's ready for distrbution, it's fully functional now but it needs two more things: smooth out the cogging torque and reduce noise when rotating.

At the end your wheel might cost less then an entry level belt drive, depends how much effort you want to put into searching local marketplace for a steering wheel. Main reason why shipping cost is so important.

  Are you sure? yes | no

Arian wrote 12/16/2020 at 09:58 point

Mounting the rotary encoder to the stepper would be hard from what I've read to get it centre, you'd have to drill on the back and mount the encoder there. There are Steppers with encoder though I'm not sure how to wire it to the STM32 as they have 9 pins while most rotary encoders have 4/5 pins.

I'm sure it would be much cheaper to build one as I've already build a belt drive steering wheel and it cost less than a G27 while being more powerful. I hope your driver and shipping wouldn't cost much, while I get some of the products in sim racing community isn't mass produced and were built by the owners themselves (Heusinkveld, Turn Racing, etc.), there's a big gap in pricing for us normal folks.

Best of luck for your project

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

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