DIY MMOS ffb STM32 and servo drive servo motor

DIY MMOS ffb STM32 and servo drive servo motor force feedback wheel

Similar projects worth following
ASDD 30A or AASD 15A servo driver from China and MiGE servo motor 130ST-M10010 and STM32
I am using an ASDD 30A drive

YouTube video test
rfactor 2 and Assetto Corsa testing

The following video
DIY successful people

If you have any questions, please consult my email:

YouTube video test drive:

Motor and drive connection
1 First set up the servo drive. Do not connect MST32 to
CN2. //////// First set the servo drive to
220V driver model is different from motor model

I am using MiGE motor 130ST-M10010 set to 21
MiGE motor manual description or view ASD drive manual V6.0 description = 31

After connecting the Stm32 cable, do not connect the servo drive. First set up the servo drive.
After setting the MiGE motor 130ST-M10010 to 21 on Pn001,
Turn off the power switch or unplug the power saving power for 2 seconds to restart the servo drive
If you do not automatically save all settings, you need to manually save
Servo starter code Fn001 needs to be held for 2-3 seconds to release, the next code will appear
Continue to long press it to complete the code to save all settings
After the drive restarts
Pn02 is set to 0 voltage mode)
Pn03 is set to 0 (external) to enable)
Pn53 is set to 18 (Pn53) stands for Sigln2 port function), 18) is the "command reverse" function
Value range name
Pn190 -1500 ~ 1500mv is set to 0
Analog pointer instruction adjustment adjustment Pn191 manual 0-1 I set to 1
Analog scale direction Pn188 1-500ms I also set it to 159
Plasma simulation command

The following notes

Motor limit speed Pn198. Motor limit speed Pn198 0 ~ 4500 default value 2500 torque setting control function
When the limit speed 120 is connected to the encoder and motor, the drive will be enabled internally. At this time, the motor rotates.
Adjust the positive and negative offset according to the direction of motor rotation.
In this case, please turn off the drive first.
2. MMOS MST32 has been connected to the CN2 control terminal of the driver, and then start the driver again

About STM32 flash firmware
Download tool brush firmware FFB2014-0.99.2.hex:

.MMOS enters the history download adverbial: 92420
Download MMOS unzip
Open MMosForceFeedback2014.exe and set to MMOS directory
Set the encoder to 10000
Please refer to the picture for more settings

Observe the rotation direction of the motor, and then adjust the command replacement again. In this step, it is best to enable it externally to prevent wiring errors and make the motor rotate randomly
. Pn191: When receiving positive and negative command signals, please adjust the rotation direction of the motor.
"0: positive (CCW), negative (CW)
"1: Forward and backward (CCW), forward and backward (CW)
If the servo motor rotates to the right or left, please switch PA0 and PA1 on the STM32 board
Or change the code to 1 or 0 in the servo drive PN191
The two methods are the same
The normally connected encoder A + is connected to PA0, and the encoder B + is connected to PA1. If the rotation direction of the steering wheel in the game matches the actual adjustment at this time, the wiring can be adjusted. At the same time, adjust the Pn191 settings. The reverse encoder cannot be set on MMOS. You can set replacements in the game.
..Pn188: High frequency adjustment setting noise
The larger the value, the slower the input analog response speed and the better the effect of reducing high-frequency noise interference. The smaller the setting, the faster the response speed, but the interference noise will become larger.
Variable value, the faster the speed. It is more appropriate to set the speed to 120 ~ 150. Then, when the game is controlled by the vehicle, the speed of the motor can be accelerated in 0.1 seconds. Adverbial clause: The electric motor will fly to the ground

Message on my Discord server


Read more »

Adobe Portable Document Format - 4.22 MB - 12/06/2019 at 20:40


x-zip-compressed - 6.11 MB - 12/06/2019 at 20:22


  • 1
    Step 1

    The following is a DIY successful video test
    All settings on YouTube short sight and frequency test drive and fast drive

    $450 Mige Direct Drive Force Feedback Wheel Build Tutorial

    All settings on YouTube short sight and frequency test drive and fast drive

    The following are all the settings of the DIY successful driver fast drive

    PN001 = 22 (motor code, requires restart)
    PN002 = 0 (control mode - voltage mode, requires restart) 02
    PN003 = 0 ( Servo enabled? - external)
    PN018 = 0 (Take the encoder output pulse AB phase logic - 0-1)
    PN051 = 1500 (Motor max RPM - see motor specs)
    PN053 = 18? (SigIn 2 port functional allocation  -27 - 27) - 58? "command reverse" function
    number range name
    PN188 = 159 (Analog torque instruction smooth filtering time - 1-500ms)
    PN189 = 39 (Analog torque instruction gain 1-300 %/V)
    PN190 = 0 (Analog torque instruction offset adjustment  -1.5v - 1.5v)
    PN191 = 1 (Simulation of torque command direction - try 0 first)
    PN198 = 120 (Torque control speed limit - 0-4500rpm)

    Connect STM32, Motor and Encoder to Driver
    Run MMOS with settings, 16.8khz, 10000CPR, use encoder index, analogue axis - 3
    See if wheel turns the correct way using the App.
    PN191 = 0-1 to change Direction if needed and;
    Swap Encoder wiring (Encoder A+  <->  PA0)    (Encoder B+  <->  PA12) 
    you can not Reverse Encoder in MMOS
    PN188 = 120-150    (Analog torque instruction smooth filtering time - 0-500ms)

    Message on my Discord server


View all instructions

Enjoy this project?



Chris Murray wrote 04/12/2020 at 06:05 point

Hi there! My motor and driver should be here this week hopefully and i have a couple questions for you as the google translate isn't 100% :)

is PN053 = 18? correct?

Also PN198 = 120, after testing direction do you turn this speed up a bit? i see people usually talk about 220-330rpm when discussing Small and Big mige capabilities at max torque.

Thankyou for your time and i will let you know if i get it working :)

  Are you sure? yes | no

Jack wrote 04/13/2020 at 01:39 point

Hi Chris, ive been going over this build a few times. Lets just say the chinese to english conversion leaves room to interpration but i think i got it figured out. Ive been slowly making a list of parts i plan to order to get going on building this, as well as downloading all the necessary files. The german website he links to seems like it requires registration, but i found the 2 important MMos zip files just by searching the net for the file names. Someone uploaded them to a google drive on a post. If you cant find them, i can upload them for you.

For the build im planning on ordering a 130ST-M15015 motor with AASD-30A controller. This motor will put out a max of 15nm.. should give me a good workout lol

Also Google AASD-30A manual, and you should be able to find an english/ish translated manual. its not the best, but it gets the parameter settings more context.

Please keep myself and others updated on your success. Ive been doing a fair bit of research on these "STM32F407G-DISC1" powered sim board, and most of the info online relates to folks just using the servo motor with a universal standalone servo drive (simucube)/Ioni setups.. but i think tying the motor with a proper servo drive designed for its peak power outputs would be most beneficial..

Im a automation engineer and spend alot of my time working with Mitsubishi Mr-J2,Mr-J3 drives and setups. I really wanted to use one of them as i know the settings and setup software, but a 1.5+KW setup will cost me more then 4x this AASD-30A setup.. Plus it would be a waste to use such a good servo for this application, most "automation high end" drive/motor combos have significantly higher performance parameters then these AASD setups.. The mitsubishi's for example are rated for max RPM/s of 4000-6000... which is never needed in these operating parameters for a sim motor. lol

When i dig in, im tempted to do a detailed video overview so folks will have a better ideal of how this all comes together and "works"

Also regarding the "PN053 = 18?" yes he must of made a typo.. it should be 18 and not 58.. In the manual, "PN053" has multiple parameter options, option 18 is described as "CINV - Instrucitons in reverse... "The speed or torque control mode, take the speed or torque of the instruction"

Basically its reading the DIR output from the STM32 and telling it to invert the torque..  Kinda crude description, but thats how im interpreting it.

  Are you sure? yes | no

Chris Murray wrote 04/13/2020 at 10:01 point

Cheers for the reply mate! i have ordered the 130st-10015 (Not genuine Mige) with AASD-30A too ;) Cheaper and more RPM and torque! It's a no brainer. I have also been going through the manual, hence why i asked as 58 was out of range for that parameter. I'm just structuring all the info in a different document so its easier for me to understand and for when i put it up on Xsimulator etc.

I am also going to be doing a tutorial video of the whole process as this is an excellent entry price for a Mige FFB setup. I just got a 2500PPR (10000CPR) encoder for now and will try source a second hand 10000PPR encoder off someone in the forums as most of them have gone Biss-c or SinCos so they would just have them laying around doing nothing.. Worst case i can order from Mige for $89us delivered. But i want to get it up and running first and see how it feels. Over the span of the next year i will save up for a Simucube setup to run the better encoders and use their software as its meant to be a step above MMOS these days in terms of compatibility and tweaking options. Either way it will be a fun project and it will kick my G920's butt for the time being haha. 

If i have some troubles, I might be able to ask Thanos for some help as hes had a lot to do the the AASD drives since making his new 6dof controller for them and he seems interested but doesn't have the time to try it out. See how i get on but.

I will definitely keep yous posted on how it goes and post videos when its done. Hoping all my bits are here by the end of the week, maybe early next week for the motor.

  Are you sure? yes | no

karl wrote 04/27/2020 at 04:58 point

Hi Chris. Did you receive your motor and driver yet?

What did you pay and who are the suppliers? Some of the links posted here don't take you anywhere relevant.



  Are you sure? yes | no

Chris Murray wrote 04/27/2020 at 05:13 point

Hi mate, Motor was held up in Singapore for 10 days by DHL due to Covid19 madness i guess. It left this morning finally! So hopefully a couple days more to wait. Ordered from here: ($360US delivered to Australia) I have bought 6 motors from them before, good seller and products, might be cheaper from different seller depending where you're located...

As for the STM32 i used RS Components: its also couple days away as they said they had stock but ordered it in from overseas.. arrgh i hate waiting! lol. 

I'll be getting an upgraded encoder from Mige: ($89US delivered) If all goes to plan, that is..

Cheers, Chris

  Are you sure? yes | no

karl wrote 04/27/2020 at 08:33 point

Thanks for your reply, Chris. From my research, the parts you've mentioned are the main parts, but you still need a power supply, case, adaptors, etc., right?

I'm referring to something like this as a reference:

  Are you sure? yes | no

Chris Murray wrote 04/27/2020 at 08:47 point

The AASD Driver takes mains power 220v (can be used with 110v search thanos AASD on youtube and look through his channel) So you wire up a plug from mains power, connect it to the driver. the motor plugs into the driver. The driver comes with a db25 connector, you wire up those pins from the stm32 board to the correct pins on the db25 connector and plug it into the AASD driver. then usb to the computer from the stm32 and you're done! Run MMOS and set it up. 

You are referring to a Simucube setup which uses DC power so needs external power supplies and expensive ioni drivers etc. As for a case i have 6 AASD already mounted into a server cabinet so adding one more is easy for me.. you could mount it to anything really.. the wall.. piece of wood.. or make your own enclosure..

  Are you sure? yes | no

karl wrote 04/27/2020 at 09:04 point

Thanks Chris. So what you're talking about is less than US$500 for a setup that works similarly to a Simucube setup? That sounds amazing. Looking forward to your review.

  Are you sure? yes | no

karl wrote 05/04/2020 at 19:00 point

Hi Chris. Did you receive your motor yet? Are you up and running?

  Are you sure? yes | no

paytufo wrote 04/03/2020 at 11:01 point

Could be used another shifters and pedals? Any code is benn used or "simple" connect and used it as the diagram?

  Are you sure? yes | no

Ken Yap wrote 12/06/2019 at 20:31 point

Your description would be much more readable if you formatted it better, for example used tables and lists.

  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