The LifeOn2 FFB Wheel Controller

Pax7

LifeOn2 Development
Hello All,

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 Logitech, Thrustmaster, 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:

Game_Controllers_Window.jpg


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 :)

LifeOn2_Development_Workplace_1280.jpg
 
Hi Pax7,

If I could find a ffb controller I would like to source a Kollmorgen servo motor and xp power supply like the ones included in Leo's kit. Can you confirm if your firmware would work for this application?

Also how far away from beta do you think you might be?

Thanks Serge
 
Upvote 0
Hello Serge,

It is not enough with just a FFB controller, a power supply and a servo. You also need a servo motor drive stage of some sort.

I see you have also posted in Mizoo's thread. Afaik he uses off the shelf servo drives and control them via his FFB controller. Controlling a drive capable of driving a BLAC servo shall not be a problem; it should not be different from driving a DC drive. It is more a matter of being able to interface the particular servo drive properly. Overall that should not be too difficult though.

My guess is that Mizoo pretty much already is capable of driving an AC servo drive with what he has now.
 
Upvote 0
Keep in mind though that very many servo drives have enclosed position feedback, which makes it impossible to use that for steering wheel position if one would like to use such a servo in direct drive mode in conjunction with an off the shelf servo drive. It could however be that the servo drive has output for servo motor shaft position, but that must be checked before purchase. It must also be checked that one can handle the protocol the servo drive outputs.

I have not looked much at all on off the shelf drives though, so I cannot say much of the actual status of this in general for such drives. Maybe Mizoo knows more.
 
Upvote 0
How is rotation restricted? ie. 900 degrees or 270 degrees etc..??
Hello Paul,

for motors/servos which are capable of outputting much torque, one can restrict rotation electrically. This means there is no (practical) limit to how much rotation you can have. This is especially true for direct drives. For belt drive designs, I guess one can have problems with belt slip.

Weaker motor designs, including current wheels like the Fanatec CSW, Frex etc. use mechanical stops to restrict wheel rotation, which usually limit rotation to 900 or 1080 degrees.
 
Upvote 0
Hello guys,

the project is very much alive!

Right now I am doing some fundamental research one could say, which will benefit the project going forward.
 
Upvote 0
I'm guessing that is rather intense FFB research (congrats for your other posts on the matter) on the mayor sim titles ;)
is there a timeline estimate for the project to be usable that you may think of
i'm jaw dropping looking fw to it :p
 
Upvote 0
Hello FFB-lovers,

I thought I'd post a little update on the project and also share a little everyday highlight here at LifeOn2 Dev. premises: :)

Below you see the two lab power supplies I picked up today. The big one weighs in at 12 kg and can deliver a massive 20 Amps current! That will come in handy when driving the real stuff - servo motors! The smaller supply I will use primarily for driving logic and other low power stuff.

LifeOn2_Development_Lab_Power_Supplies.png


Status for the FFB system project on the whole is that I for the last few months have been out (and still is, part-time) on a walkabout in theory-land :) However, circumstances have made me decide to take a detour from my original plan and spend time on something I really was not so interested to mess with. But, I think many of you here will be excited about it! I will share more details in a while, so stay tuned :)

Thanks,
 
Upvote 0
Nice gear Pax !
Be careful with that PS as 20A are to handle with care indeed.
Like the Rigol scope in the bg too...i was close to pick one up myself few days back...
Looking fw to hear back on the pjt
Thanks for keeping us posted man
 
Upvote 0
Guys, let me present to you what I sincerely hope is the ugliest wiring I will ever have done in my life! :roll: :)

Below you see the ARM Cortex M3 MCU board hooked up by me via USB to my laptop. I really wanted to try a few things around this, the only problem was I did not have the proper tools at hand. So, I took a completely wrong type of wire, stripped a USB cable, soldered the wrong type wire to the USB cable leads and wrapped the wire ends by hand(!) to the MCU pins! It looked terrible, and seemed to barely make contact - but the LifeOn2 FFB wheel enumerated fine anyway! :)

Should_Be_Illegal_Wire_Wrap.png


I actually was a little surprised it did, but it shows the ruggedness of USB. It could be at 1000 Hz (as the wheel runs at) there would be problems with EMI etc. resulting in connection degradation or fail. Anyway, it is good news it works this well, as it makes prototyping life easier! I will have proper tools for this type of work in two days or so, so hopefully no more of this stuff ;)
 
Upvote 0
Hello guys,

here is a little update on the LifeOn2 FFB system project:

I have spent some of last week to build a standalone HW prototype of the FFB controller logic. You can see it in action in the below video from my YouTube channel.

Steering input is fed from a rotary encoder to the FFB controller HW prototype and sent via USB to the PC host, where iRacing picks it up as steering input. Update rate is 1000 Hz. As usual, this board is FFB capable and reports as an FFB device to the PC. I run the same firmware in this prototype as in my experiment board prototype in the first post of this thread.

More to come in a little while I hope! :)

 
Upvote 0
Hello again FFB-lovers,

As I at the moment actually do some practical work, I have some new stuff to show you!

Let me first give some background; some two weeks ago I wrote the following in this thread:

...However, circumstances have made me decide to take a detour from my original plan and spend time on something I really was not so interested to mess with. But, I think many of you here will be excited about it!...

As those of you who have followed my posts know, I own a Leo Bodnar FFB system. I am picky about FFB quality, which is why I a little over a year ago decided to buy one of his FFB systems, rather than having to use "toy" wheels (sorry guys...) until my own FFB system would be ready. Leo's system is very capable, clearly on a different level than any other wheel ~available to the sim racing community. It seems pretty clear Leo has spent much time and effort to develop and tune his system and to select the most proper components for the task. His FFB SW implementation is very robust and has given me zero reliability problems.

However, Leo does not release updates to his FFB system firmware and/or config SW - at least not timely ones. During the 10+ months I have owned his system, there have not been any releases of new firmware and/or config SW. As there are some compatibility problems with certain sim titles, e.g. nkPro, and also ~slight FFB quality issues with low update rate FFB titles like iRacing, rFactor1 and Game Stock Car, it is less than ideal that there is no updated firmware and/or config SW available to address these problems, nor to add new features. As the Leo FFB system is a multi-1000 dollar investment, post purchase product updates are something one would like to have.

So, with the above situation being a fact, I a few weeks ago decided to deviate from my original plan not to spend time on interfacing off-the-shelf servo motor drive systems. Since Leo's firmware/config SW affects his own FFB controller only, I decided to bypass his FFB controller and replace it with the FFB controller I have developed myself, and which I of course have full control over also firmware/config SW wise.

As you have seen indicated in above posts, I have spent some time the last few weeks constructing a standalone HW/SW prototype of my FFB controller that can interface off-the-shelf servo motor drives. I found the drive Leo has chosen to be very nice to work with and well documented. As it is a generic drive, it is also free from manufacturer specific features and overhead, which is very welcome. Leo seems to have made a good pick with this drive.

Work with the initial FFB controller HW/SW prototype is now in a state where I have a working solution to be able to control the servo drive and servo motor via DirectInput FFB commands, and also to send steering input to the PC host, all at 1000 Hz update rate. In other words, I have a working FFB system in place.

Below is a video I shot tonight showing the FFB controller prototype, the servo motor drive and servo motor plus accessories used as a FFB capable steering device in iRacing.


Hope you like it! :)

Thank you all,
 
Upvote 0
Except of using a blue board you made your own :) Congratz :)
Thank you!

I see you took Mizoo's path, it's a good path :)

Heh, if you think I need to copy anybody else to make a simple interface to an off-the-shelf servo drive and some USB communication, you are clearly overestimating the complexity of those tasks ;)

See here for the reasons behind my choice of prototyping HW: http://racedepartment.com/forum/threads/the-lifeon2-ffb-wheel-controller.58355/#post-1280450

In fact, it is not. ;)
 
Upvote 0

Latest News

Online or Offline racing?

  • 100% online racing

    Votes: 87 7.4%
  • 75% online 25% offline

    Votes: 123 10.5%
  • 50% online 50% offline

    Votes: 170 14.5%
  • 25% online 75% offline

    Votes: 330 28.1%
  • 100% offline racing

    Votes: 462 39.3%
  • Something else, explain in comment

    Votes: 4 0.3%
Back
Top