The LifeOn2 FFB Wheel Controller

Discussion in 'General Discussion' started by Pax, Oct 21, 2012.

  1. Pax

    Pax Registered

    Joined:
    Dec 28, 2011
    Messages:
    44
    Likes Received:
    7
    Hello All,

    I posted this over at RaceDepartment, but if any of you do not go there I thought I'd post it here too:

    -----------------------

    After a number of months of research, planning and implementation I am happy to present the results of my latest project: implementation of a FFB wheel controller.

    The controller is built around an ARM 32 bit RISC processor, the Cortex M3. The M3 has a wealth of peripherals, including an USB 2.0 interface, which I have programmed to communicate with a PC host. The Cortex M3 is paired with a base board which has an electric motor drive stage and monitoring capabilities. The drive stage can be controlled via the Cortex M3 to power a variety of motor types, including brushed DC motors (Found in the Fanatec, Frex and ECCI FFB wheels) as well as brushless servo motors. The drive stage can output 300W, which is more than the Fanatec CSW and I think also the Frex TypeG and ECCI 7000.

    My plan has been to use a high performance type servo motor also for this initial FFB controller prototype, but as sourcing of a servo motor with the specifications I wanted has been an issue, I decided to use a brushed DC motor instead. I will drive a proper servo motor going forward.

    The status of the project now is that I have a FFB controller capable of driving a brushed DC motor (the FFB) and reading of a rotary encoder for steering wheel position.
    I have also worked with a brushless DC motor, which is closer to the type of servo I will use going forward. But, as the BLDC motor has some properties not suitable for FFB application, I use the brushed DC motor instead for now.

    I have furthermore implemented USB communication between the FFB controller and the PC, and the FFB controller presents itself to the PC as a FFB device. I have followed the specification from USB-IF on FFB/haptic devices. This means I did not have to implement USB device drivers in Windows, as Windows includes FFB device drivers for USB-IF FFB/haptic devices.

    The drawback of using the USB-IF specification is however that the specification and its communication protocol is quite complex and has too many features not used in an FFB simulator steering wheel.

    Here is a screenshot of the FFB controller (wheel) attached in Windows 7:

    [​IMG]

    The FFB controller is capable of receiving FFB commands at 1000 Hz, and it can report wheel position to the PC at 500 Hz. I plan to increase that to 1000 Hz too though.

    Below is a video I shot earlier tonight of the FFB controller connected to the brushed DC motor and rotary encoder and used as a FFB wheel in iRacing.

    As you can see, I have not bothered to attach any gearing and other devices (belts etc) to create a proper wheel, but the important stuff is all there. Gearing and other mechanical stuff are the easy parts... ;)



    Some eagle eyed readers might recognize the motor, rotary encoder and bracket - they are taken from a Frex SimWHEEL MkI. I have a broken SimWHEEL standing in the closet, so I thought it could come to some use... ;)

    -----------------------

    In addition to switching to drive a servo motor, I also have other plans which I hope to be able to share/demonstrate the results of going forward.

    Thanks,

    -----------------------

    PS. I will share a bonus photo; this is the LifeOn2 Development work place, where most of the more hardware oriented work is done :)

    [​IMG]
     
  2. argo0

    argo0 Registered

    Joined:
    Jan 22, 2012
    Messages:
    624
    Likes Received:
    8
    Cool. Good on ya mate.
     
  3. GTFREAK

    GTFREAK Registered

    Joined:
    Mar 27, 2011
    Messages:
    340
    Likes Received:
    5
    Will this be able to handle a Direct Drive unit? Or were you thinking along the lines of a belt driven unit?
     
  4. Brian Clancy

    Brian Clancy Registered

    Joined:
    Jan 3, 2012
    Messages:
    77
    Likes Received:
    0
    Really interesting and impressive stuff! :D
     
  5. Pax

    Pax Registered

    Joined:
    Dec 28, 2011
    Messages:
    44
    Likes Received:
    7
    GTFREAK, I am all for direct drive systems. Everything else is just bad compromises IMO.

    As I said above, my plan was to already from the beginning use a servo that would be a small version (but with the very same controlling principles) of a direct drive system. But, since I did not find a really suitable servo, I decided to use a simple brushed DC motor instead to begin with, and concentrate on the USB and FFB controller stacks.
     
  6. JJStrack

    JJStrack Registered

    Joined:
    Dec 23, 2011
    Messages:
    469
    Likes Received:
    9
    HeyPax,
    looking very cool!
    Ifyou want to, you can send me the specifications you want to have on your servo motor. I am studying mechanical Engineering and there is an Institute at my University that has much Knowledge in Stuff like Servo-Motors etc. I could go and ask them for Ideas...
     
  7. Pax

    Pax Registered

    Joined:
    Dec 28, 2011
    Messages:
    44
    Likes Received:
    7
    Thanks Johnny, I have sent you a PM with motor specs for the prototype!
     
  8. Ivan Baldo

    Ivan Baldo Registered

    Joined:
    Oct 7, 2010
    Messages:
    57
    Likes Received:
    3
    I guess you already know about it but just in case, take a look at iRacing's WheelCheck by David Tucker, it is a very good software to test wheels properties, for example you can vary the rate of polling/sending data to the wheel, forces, different ways of sending the forces, reaction times, dead zones, etc..
    I wish you the best of luck with your project man!
     
  9. Pax

    Pax Registered

    Joined:
    Dec 28, 2011
    Messages:
    44
    Likes Received:
    7
  10. taufikp

    taufikp Registered

    Joined:
    Nov 14, 2010
    Messages:
    609
    Likes Received:
    16
    Cool video Pax :) You should've put it here as well. What is the technical spec of the servo motor by the way?
     

Share This Page