1. Do not share user accounts! Any account that is shared by another person will be blocked and closed. This means: we will close not only the account that is shared, but also the main account of the user who uses another person's account. We have the ability to detect account sharing, so please do not try to cheat the system. This action will take place on 04/18/2023. Read all forum rules.
    Dismiss Notice
  2. For downloading SimTools plugins you need a Download Package. Get it with virtual coins that you receive for forum activity or Buy Download Package - We have a zero Spam tolerance so read our forum rules first.

    Buy Now a Download Plan!
  3. Do not try to cheat our system and do not post an unnecessary amount of useless posts only to earn credits here. We have a zero spam tolerance policy and this will cause a ban of your user account. Otherwise we wish you a pleasant stay here! Read the forum rules
  4. We have a few rules which you need to read and accept before posting anything here! Following these rules will keep the forum clean and your stay pleasant. Do not follow these rules can lead to permanent exclusion from this website: Read the forum rules.
    Are you a company? Read our company rules

DIY FFB Steering wheel (MMosFFB ) (In Progress)

Discussion in 'DIY peripherals' started by Alexey, Dec 10, 2015.

  1. pipis2015

    pipis2015 over-boost

    Joined:
    Feb 18, 2015
    Messages:
    222
    Location:
    Athens, GREECE
    Balance:
    10,248Coins
    Ratings:
    +270 / 1 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino
    Hi @Alexey ,
    i need to ask a question.

    Does your setup require a power resistor?

    Like this?

    [​IMG]
  2. Alexey

    Alexey Well-Known Member

    Joined:
    Sep 23, 2014
    Messages:
    452
    Occupation:
    Electronics Technician
    Location:
    Adelaide, Australia
    Balance:
    8,060Coins
    Ratings:
    +620 / 2 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino
    The resistor is not required as far as I can tell. The mm comes with over voltage protection. Some setups may require the resistor though. Even with direct drive it is optional.

    However, if whatever motor you choose for your setup does not stop fast enough you can use it as a brake resistor. Just note that the motor will be harder to turn in free wheeling mode.
    • Like Like x 1
  3. RufusDufus

    RufusDufus Well-Known Member

    Joined:
    Jul 21, 2013
    Messages:
    681
    Location:
    Adelaide Australia
    Balance:
    15,602Coins
    Ratings:
    +1,008 / 8 / -1
    You're progressing well. :thumbs

    It might be better to use the current sense outputs of the MM board to control it in current feedback to prevent it from drawing "unlimitted" current at stall. This is really how you get constant torque as well - torque is proportional to the current. Of course it is more complex as you need another (arduino?) controller to convert the PWM from MMos to drive a current control loop rather than directly connecting it as a voltage control loop. I'm pretty sure the MMos board doesn't have a current feedback option?

    That looks like crazy strong feedback in the video... Good experimenting!
    • Informative Informative x 2
  4. Alexey

    Alexey Well-Known Member

    Joined:
    Sep 23, 2014
    Messages:
    452
    Occupation:
    Electronics Technician
    Location:
    Adelaide, Australia
    Balance:
    8,060Coins
    Ratings:
    +620 / 2 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino
    Unfortunately programming isn't my strongest side so I'll have to forgo the current control offered by the MM as I am pretty sure nothing is mentioned about it on the MMos.

    In other new I figured out that when I connected the MM to run at 30A it never actually used the other channel. So when I ran the FFB at 100% power settings it was only on 15A.
    The PWM output does not have enough drive for multiple channels. So now I am waiting for a fanout buffer to arrive which will take the input and re-amplify the signal across 4 channels.
    http://au.element14.com/webapp/wcs/...estType=Base&partNumber=2101848&storeId=10184

    Should arrive sometime tomorrow so I should be up and running soon.
  5. RacingMat

    RacingMat Well-Known Member Gold Contributor

    Joined:
    Feb 22, 2013
    Messages:
    2,233
    Location:
    Marseille - FRANCE
    Balance:
    20,875Coins
    Ratings:
    +2,079 / 21 / -2
    My Motion Simulator:
    2DOF, DC motor, Arduino
    good job here! :thumbs

    About Direct drive wheels, it depends on the driver (VSD, IONI, Argon...) and their own protection capabilities but energy has to go somewhere :)

    It depends on inertia and speed... Stopping a wipermotor with motomonster doesn't require brake resistor, but for a wheel maybe?

    With VSD, the braking resistor does not add any friction in free wheeling mode.
  6. Alexey

    Alexey Well-Known Member

    Joined:
    Sep 23, 2014
    Messages:
    452
    Occupation:
    Electronics Technician
    Location:
    Adelaide, Australia
    Balance:
    8,060Coins
    Ratings:
    +620 / 2 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino
    @RacingMat Yes I agree.
    Also with direct drive, especially with the argon drive a brake resistor must be accounted for in the setup otherwise the VFD will dump power into the resistor even at idle. Fortunately some (from what i have encountered so far) VFDs provide this info in the setup procedure, even giving specific values and wattage which is nice.

    For permanent magnet DC motors like the ones found in consumer grade wheels the brake resistor definitely will add friction to the wheel. The lower value resistor the more friction. But in saying that from the wheel I have used none have had resistors as with such low power devices the diodes do the trick just fine. I did this once when one of my FFB driver boards died but I still used the wheel to play. I added a 50 ohm resistor and the wheel had some nice friction. If you were to turn the wheel slowly you wouldn't know the resistor was in there but during corrections and quicker turn-ins the wheel did have a noticeable weight.

    When it comes to the time when I get the 150W belt driven setup I am actually sitting on the fence about having the resistor at all either. At the moment with this smaller motor it is actually running just fine (except for the heating from massive current draw) considering the motor is rated at 57 amps stall. With this FFB driver it seems to be actually running at stall from most of it's operating duration and not having any ill effects in terms of over voltage. With the bigger motor it actually has a smaller stall current so I would assume it would be fine. I tend to go about things in this order. 1. Make item. 2. brake item. 3. Read manual. 4. Re make item properly.
    • Like Like x 1
  7. Alexey

    Alexey Well-Known Member

    Joined:
    Sep 23, 2014
    Messages:
    452
    Occupation:
    Electronics Technician
    Location:
    Adelaide, Australia
    Balance:
    8,060Coins
    Ratings:
    +620 / 2 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino
    Good news and bad news!

    I received the fanout buffers and connected all the PWM channels to the 2 MM.
    Bad news is that my wheel is now a rats nest and still over heats. The heating is no where near as bad and if I turn the power down I can manage a whole lap!
    One last thing to try would be a third MM as currently having two gives me 60A with the motor drawing on stall 57A (assumed). What I will try to do in the mean time is add the heat sinks and fans
    and see how effective they are. Also need to do a whole bunch of re-wiring to get things nice and neat again.
    [​IMG]

    Here is a video of 100% with two MM. I've turned down traction loss effects as it is just ridiculous and even still too powerful. You can see as I turn the corner I am really fighting the wheel. It is impossible to steer the wheel with one hand and try to video with the other. Eventually I will only run the FFB power at around 35% as this seems to be comfortable, responsive yet still powerful enough. 100% is just crazy with this size wheel.
    • Like Like x 6
  8. insanegr

    insanegr !N$@n€

    Joined:
    Jan 14, 2014
    Messages:
    505
    Location:
    Athens
    Balance:
    16,715Coins
    Ratings:
    +498 / 1 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino
    @Alexey if i can see correct you are using AC game for testing . what is your min force in control options(AC)? perhaps you need to lower that value. don't know if it will make any difference but you could give it a try.
  9. Alexey

    Alexey Well-Known Member

    Joined:
    Sep 23, 2014
    Messages:
    452
    Occupation:
    Electronics Technician
    Location:
    Adelaide, Australia
    Balance:
    8,060Coins
    Ratings:
    +620 / 2 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino
    Min force is 5% . Most of the heat comes from corners where the wheel tightens up really hard.
  10. OZHEAT

    OZHEAT Active Member

    Joined:
    Oct 26, 2015
    Messages:
    208
    Location:
    Australia
    Balance:
    2,458Coins
    Ratings:
    +105 / 6 / -0
    My Motion Simulator:
    3DOF, DC motor
    Hi @Alexey
    I am looking to doing something similar to what you are doing.
    I originally wanted to mod/upgrade mofets in my G25 and use 2x24W motors or 2x43W motors on a diy steering using belts.
    Can I ask what you did to your DGFT to mod the H-bridge?
    I was thinking of removing the NPN & PNP dual fet chips and shoehorning some larger rated fets.
    I would have to then work out the current limiting resistor value to allow for higher current.
    Do you think this would work?

    As for the MMOS I would also like to try this also using the 43W motors.
    I also agree that you will need to current limit any motor to under SOA conditions otherwise runaway thermal conditions will occur.
    With your MM can you not atleast monitor the Cs output with a multimeter?
    Better still would be to use a traditional comparator current limiting circuit and disable EN signal if the current is at your limiting point.
    This way instead of turning down FFB effect strength in game you can adjust strength by current limiting hence increasing resolution of the movements.

    Cheers Andy
  11. Alexey

    Alexey Well-Known Member

    Joined:
    Sep 23, 2014
    Messages:
    452
    Occupation:
    Electronics Technician
    Location:
    Adelaide, Australia
    Balance:
    8,060Coins
    Ratings:
    +620 / 2 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino
    @OZHEAT In regards to replacing the mosfets on the G25 I am assuming that is is a similar circuit to the DFGT then.
    It is not just as simple as fitting in larger mosfets as they will need a better power supply. If I was you I would keep the G25 board as a backup
    and build an MMos wheel using the G25 as a shell or just go full custom setup. The MMos board has great FFB and has 16 button inputs.

    In terms of current control for the MMos, it would defeat the purpose of having such a powerful motor. The power of the motor comes from the massive current
    near or at stall. So if I was to reduce this current I would reduce the force of the motor and negate any advantages. Simply put, the motor is not ideal for a FFB wheel.

    I don't think I will do much more with the DFGT as I have sorted the heating issues with the MM but now the motor is getting stupid hot.
    Ideally a motor with half the stall current would have been preferable as it would still be powerful but there would be less heat. I could also
    create a heat sink and fan combo to keep the bigger motor cool but at the moment I will focus my efforts into a full custom setup.
  12. Alexey

    Alexey Well-Known Member

    Joined:
    Sep 23, 2014
    Messages:
    452
    Occupation:
    Electronics Technician
    Location:
    Adelaide, Australia
    Balance:
    8,060Coins
    Ratings:
    +620 / 2 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino
    A little bit of progress of the custom setup:

    Went down to the local wreckers to get some parts for my actual race car when I happened upon a Hillman Imp with a racing wheel attached.
    It is certainly is worse for wear but I got it for $15 including the boss!
    [​IMG]

    It's rusty and the leather/vinyl trim is degraded.
    [​IMG]

    Material taken off wheel and taken off of boss.
    [​IMG]

    Boss dismantled, sanded down.
    [​IMG]

    Wheel powder coat sanded off and prepped for spray.
    [​IMG]

    Wheel and boss kit sprayed. boss kit was rust/primer converted before spraying.
    [​IMG]
    [​IMG]

    I then decided to have a go at replacing the wheel cover. What I used was a 380mm wheel cover and re sized it down to 350mm to fit the wheel. I took out the rubber mebrane that the cover came with so that the new cover would mold to the wheels hand grips. I did this all by hand, first time hand sewing.
    [​IMG]
    [​IMG]

    I then decided that I like blue instead.
    [​IMG]

    Next I need to find a little bit more material to cover the rubber on the end of the spokes.
    • Like Like x 7
    • Winner Winner x 6
    • Informative Informative x 1
    • Creative Creative x 1
  13. Pit

    Pit - - - - - - - - - - - - - - - - Gold Contributor

    Joined:
    Oct 2, 2013
    Messages:
    3,013
    Location:
    Switzerland
    Balance:
    30,409Coins
    Ratings:
    +3,088 / 31 / -0
    My Motion Simulator:
    DC motor, Arduino, 6DOF
    wow. real stunning, real diy at it's best!
    • Agree Agree x 5
  14. shannonb1

    shannonb1 Well-Known Member

    Joined:
    Mar 12, 2008
    Messages:
    1,107
    Occupation:
    Sales Intelligence
    Location:
    Virginia
    Balance:
    8,909Coins
    Ratings:
    +598 / 5 / -0
    My Motion Simulator:
    2DOF, AC motor, Arduino, JRK, 4DOF
    I think adding a breaking resistor might help some with the heating issues, that energy has to go somewhere. I wont solve it but It might help. You also might benefit from adding some holes to the motor housing so you can get air flowing directly onto the core of the motor. I have a DD but you have me wanting to rip apart another old wheel now.
  15. OZHEAT

    OZHEAT Active Member

    Joined:
    Oct 26, 2015
    Messages:
    208
    Location:
    Australia
    Balance:
    2,458Coins
    Ratings:
    +105 / 6 / -0
    My Motion Simulator:
    3DOF, DC motor
    @Alexey
    Its been a while since you updated, how are you going with this project?
    I have been trying to find info about mmos but the majority of post are either in french or german and google translate just confuses me with some of the translations and grammar.

    What I'm trying to work out is what kind of pwm output modes are available from the mmos.
    What I can't quite fathom is with PWM and dir signals it is traditionally used for speed control while in my mind for a ffb steering wheel you would not want to control speed but rather torque.

    I have ideas of controlling torque rather than speed using DIR and PWM signals.
  16. Alexey

    Alexey Well-Known Member

    Joined:
    Sep 23, 2014
    Messages:
    452
    Occupation:
    Electronics Technician
    Location:
    Adelaide, Australia
    Balance:
    8,060Coins
    Ratings:
    +620 / 2 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino
    Hi @OZHEAT

    I'll post some progress pics up soon, I've recently received my encoders so I am fiddling around with them.
    Mostly I am still waiting for parts to arrive with the closest arrival being estimated to 3rd Feb. I am also having a go at 3D printing
    to make some custom brackets etc. So I am progressing but things are done slow these days due to lack of free time.

    For the MMos there are these modes listed:
    [​IMG]

    I am using the H-bridge (Dir/PWM) mode
    I have no idea how the other PWM modes are controlled.

    Also, speed is related to torque. So if you want to control torque you could run PWM at max (tied high) and then limit current to limit torque.
    In the end it would perform the same or similar as a PWM control.
  17. RufusDufus

    RufusDufus Well-Known Member

    Joined:
    Jul 21, 2013
    Messages:
    681
    Location:
    Adelaide Australia
    Balance:
    15,602Coins
    Ratings:
    +1,008 / 8 / -1
    Ideally you want the MMos PWM to control the current through the DC motor windings.

    So for example use the PWM out of the MMos board as the target setpoint and a PID control loop to monitor the current feedback signal from a MotoMonster H-bridge and change the PWM drive to the motor until the current matches the target setpoint.

    If you use one of the existing Auduino motor controllers on this site (SMC3) for example and modify it so that instead of using the serial commands from the PC to send the setpoint measure the MMos PWM duty cycle as the target value. For the feedback signal instead of using a POT signal, use the MotoMonster current feedback signal.

    You may need to do some scaling in the code to suit.
    • Informative Informative x 2
  18. OZHEAT

    OZHEAT Active Member

    Joined:
    Oct 26, 2015
    Messages:
    208
    Location:
    Australia
    Balance:
    2,458Coins
    Ratings:
    +105 / 6 / -0
    My Motion Simulator:
    3DOF, DC motor
    @Alexey
    Thanks for the update.

    "Also, speed is related to torque. So if you want to control torque you could run PWM at max (tied high) and then limit current to limit torque.
    In the end it would perform the same or similar as a PWM control."

    This is what I am having a hard time understanding...
    In a steering wheel there is very little speed because you are holding on to it, so it almost always at stall/starting current which coresponds to max torque.
    Torque is directly related amps.
    In a steering wheel I want to feel torque or resistance against me turning in a corner.

    With your current setup do You feel the difference between a slow corner and fast corners?
    Does a small bump feel like a pothole?

    Maybe I'm misunderstanding what mmos is outputing and it varies the PWM regardless of whether the wheel moves or not. I just can't get it out of my head that it always wants to run very close to stall current hence high torque especially with a high RPM motor like what you are using.

    I intend on using a 24Vdc 43W motor rated 1000rpm @ 3.1A 0.411N.m and stall 9.5A 1.37N.m
    Although the spec sheet of the motor gives me those specs the motor is ~33% larger and was a custom made job lot.
    I have tested stall current and it is over double specs 24V@21A which is easy with these motors as they have holding brake on the end.
    Ratings on these motors look low but are industrial servo motors and are S1 duty rating.
  19. OZHEAT

    OZHEAT Active Member

    Joined:
    Oct 26, 2015
    Messages:
    208
    Location:
    Australia
    Balance:
    2,458Coins
    Ratings:
    +105 / 6 / -0
    My Motion Simulator:
    3DOF, DC motor
    @RufusDufus
    Thats what I want to do, a current/torque control loop.
    The idea that I was thinking is using the PWM signal and converting to an analog signal 0-5v.
    Using a current sensing circuit and feeding both signals to a comparator, the product would feed VCO or use another timer for PWM of the H-bridge.
  20. pipis2015

    pipis2015 over-boost

    Joined:
    Feb 18, 2015
    Messages:
    222
    Location:
    Athens, GREECE
    Balance:
    10,248Coins
    Ratings:
    +270 / 1 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino
    Guys I want to make a quick question.

    What type of data is transmitted from the game to the steering wheel?

    I imagine (with priority from high to low importance):
    1)torque data
    2)wheel postion
    3)maybe some preset ffb efects?