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
 
Hey, I'm in too, I've got all the funds saved to shell out on motors, parts etc.
I'm only intrested in using this for rFactor 2, if you need testers for a specific game.

I've read your analysis of the feedback system over at ISI website, very intresting the detail its been modeled too from Terence's reply. Did the actual data gathered correlate with accuracy in the end, as I know there was a little uncertainty?
 
Last edited:
Upvote 0
Hi Pax, if you need a tester i'm ready. I'm so tired of my modded G25 :)
I've the founds ready, you have only to provide me the board, and the shopping list to buy the servomotor and controller.
 
Upvote 0
I don't think he accepts beta testers at the moment, but if you change your mind: please remember that I came crawling on my knees ages ago, way before I got desperate and started doing my own neverending project.. :D
 
Upvote 0
Hello All,

and thanks for the interest in the FFB system!

As you probably have figured out by now, I am continuously working on this project to advance it. It is however very comprehensive and eats man-hours like nothing :S
I will post a little update soon to report what has been going on lately.

...an homemade ampli board...support DC motors...
The amplifier board is interesting!
I will initially probably support DC motors, but I will not tune the system for any.

...I've read your analysis of the feedback system over at ISI website, very intresting the detail its been modeled too from Terence's reply. Did the actual data gathered correlate with accuracy in the end, as I know there was a little uncertainty?
I am not quite sure what you mean by "uncertainty", but if you mean the FFB resonance issues they were still there in build 300, which I tested last. In fact, now it was there also in a car it was previously not in.

...neverending project..
Neverending? The amount of time you have spent on that is not much more than a rounding error young man ;)
 
Upvote 0
I am not quite sure what you mean by "uncertainty", but if you mean the FFB resonance issues they were still there in build 300, which I tested last. In fact, now it was there also in a car it was previously not in.
This is what Terence wrote back to you :

Sitting in the garage turning your wheel is an interesting test - the noise we are seeing might simply be the stick-slip of the rubber. Note how it's fairly smooth at the start of each turn, I think you're just stretching it with no slip there.

I guess what I ment to say by uncertainty, was your test conducted while stationary and that affected the resonance as you never replied back to Terences last post. But I guess now that it has appeared in a car it previously wasn't it would cancel out Terences response unless the new build has seen further tyre model updates.
 
Upvote 0
Very interesting !
I can't wait you do same analysis with Assetto Corsa ;)
Great that it is of interest!

I actually made an initial analysis of the first AC TP version on the day of its release, and published it over at iRacing:
Pax7 said:
I did a fair amount of laps in the TP, but of course I also wanted to know some details about the AC FFB implementation. So, I started to dump FFB traffic data in various in-sim situations. 80 MB of raw data later I was ready to start the analysis...
2786c5c8e1a8be796fb2f726cca5a0fe.gif


80 MB is A LOT of data, so I have only browsed through it to try to capture the important FFB configurations made and to identify patterns. This is my preliminary report:

The FFB effect types used are Constant Force and Damper. Damper is set to a static gain (40%) and never changed. The Constant Force magnitude is most probably updated at 200 Hz. The latter is (as you know by now) 60 Hz for iRacing and 400 Hz for rF2.
It seems it is not possible to disable Damper in AC - at least I did not find any way to do it in any .ini or so.

Going purely by feel, it was immediately clear that AC updates faster than iR but slower than rF2. I was surprised the rate was as high as 200 Hz though - it felt like it would be slower than that.

I also found some odd overhead in the AC FFB protocol, which I will report to Kunos. It seems like a bug somewhere to me, and just generates unnecessary USB traffic.

The overhead was reported to Kunos and he fixed it in the new TP version.
 
Upvote 0
Hey, Just wanted to throw my hat in the ring if you need any help writing device drivers or firmware for this project. I'm also pretty proficient at writing user interface and light os type applications and systems.
I have experience working with major networking device and systems corporations (that shall remain nameless) designing hard and firm-ware for both consumer and enterprise oriented devices.
I won't bug y'all about getting in on this project, but I'm here if you ever want to run anything by me or throw any non-time sensitive work my way. Good luck with your endeavors either way!
 
Upvote 0
Hello there,

I just made a post regarding Assetto Corsa Early Access FFB over at iRacing:

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

Hello again Gents (and Ladies if we are fortunate enough to have any around here!),

I have now had 90 min or so in AC Early Access, and I made a quick analysis of the FFB traffic it generates.

AC Early Access uses two FFB effects, Constant Force and Damper. Damper strength is static and remains as set by the user in the control config interface.

The Constant Force effect magnitude updates at 250 Hz, which is higher than in the first Technology Preview, where I measured it to 200 Hz. For comparison (and which most of you know by now...), rFactor2 updates at 400 Hz and iRacing at 60 Hz. With a high end wheel, it is a very significant difference between 60 and 400 Hz, and a noticeable difference between 250 and 400 Hz (and yes, higher is better :) )

As some of you might remember, back when I analyzed the FFB traffic of the Technology Preview, I noticed quite a lot of redundant FFB traffic. I discussed this with Stefano, and he fixed that in the second Technology Preview (or at least he said he would). When I look at the Early Access FFB traffic, the redundant traffic is back! With the USB FFB drivers I use atm, 90% of the FFB traffic volume on the USB bus is redundant and can (should) be removed. rFactor2 does a great job here (in keeping redundant traffic low), and iRacing too after a clean up David did some time ago.

Of course a "clever" FFB device driver stack can filter out redundant traffic using some logic, but I think most drivers are not that clever and just do what the caller asks them to.

One more thing I noticed is that AC Early Access sets damper strength in an unorthodox way. This way of doing it leaves some room for interpretation on how it should be implemented in the FFB device firmware (the FFB protocol documentation is not crystal clear here), so IMO it is better to do it the way both iRacing and ISI, plus a reference Microsoft implementation does it.

As for FFB feel, all-through good physics and vehicle (dynamics) models yield good FFB, and with my limited seat time I would say FFB is good in many respects, and in some extremely good.

That's it, now I am back to FFB HW design I think!


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

@posimosh, interesting, I will keep that in mind!
 
Upvote 0
Thank you for info Pax7.
AC now updates CF at 250Hz and rfactor2 at 400, and rfactor1?
Does rfactor1 only works with constant force?
I ask to have my own mental comparative about games. I have played a lot with rfactor1 and I want to convince about the better improve FFB from the new coming games.

Are you able to estimate for us the time you need to have a HW product?
 
Upvote 0
Neverending? The amount of time you have spent on that is not much more than a rounding error young man ;)

Sorry if that came out the wrong way as I wasn't aiming at you, but only at having a clear vision on my own realistic deadline ;) And that's in the range of never +/- a few years.. :(
 
Upvote 0
I just made a long-ish post over at iRacing, could be of some interest to some here:

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

Hello there guys,

A user said:
This topic certainly has taken an interesting turn.
It takes turns! I am using it not only as "blog"-space for the FFB wheel project, but also for some FFB-related topics which come up during my development, and as the sim scene progresses.

And you guys are of course more than welcome to join in!

A user said:
I think the NTM forum would be an appropriate place to discuss it. The NTM forums has basically become the all things vehicle dynamics related forum even regarding other sims and real life racing and it is where the serious nerds come out to play (myself included)
I have had a discussion going with some iRacing staff about the FFB-related physics of iRacing for quite long now, and have also spent quite much effort trying to illustrate how it can be improved, e.g. like this:

http://members.iracing.com/jforum/posts/list/2394168.page

As you know, the iRacing FFB has taken quite big strides the last ~year and that is great, but again, it is quite symptomatic that that forum section is called "New Tire Model Discussion". While being important and a great competitive advantage for iRacing, vehicle physics does not begin and end with the tires.

I do not feel I have much more energy and time to put into trying to have iRacing improve FFB related physics more; it is of course ultimately they who have to decide that it is important enough to spend time on. They are good listeners and to discuss though, so kudos for that! I also think the info and ideas has been propagated within the company.

One more observation on the iRacing FFB though :roll:

Even with the "linear-FFB" output option, I still do feel that there is something not quite right in how the wheel torque changes as the vehicle loads up and down going into-in-out of a corner. I have thought some about if it would be possible to visualize this for comparison, but there are many varying factors. I might try something when I have the time though (i.e. do not expect to see anything on this :) )
This very area is btw one where Assetto Corsa IMO does a much better job than iRacing; it is quite convincing in AC. (AC however IMO cannot compete with the tire movement modelling of iRacing).

On AC FFB, it seems Kunos has turned to the dark side!

http://www.assettocorsa.net/forum/i...mprovement-suggestions.1635/page-2#post-13363
https://twitter.com/KunosStefano/status/400260943025692672

A user said:
Interesting but I 'd rather Pax7 stopped enjoying himself and got back to work :mrgreen:
Don't worry, I already have!

I will post an update on what is going on "soon"™ :)
 
Upvote 0
Sorry if that came out the wrong way as I wasn't aiming at you, but only at having a clear vision on my own realistic deadline ;) And that's in the range of never +/- a few years.. :(
Ah, your expected time to complete - that particular detail was not clear by your post, no.

But I think you have enough time to complete there ;)
 
Upvote 0

Latest News

How long have you been simracing

  • < 1 year

    Votes: 126 13.0%
  • < 2 years

    Votes: 100 10.3%
  • < 3 years

    Votes: 94 9.7%
  • < 4 years

    Votes: 66 6.8%
  • < 5 years

    Votes: 134 13.8%
  • < 10 years

    Votes: 129 13.3%
  • < 15 years

    Votes: 82 8.4%
  • < 20 years

    Votes: 57 5.9%
  • < 25 years

    Votes: 47 4.8%
  • Ok, I am a dinosaur

    Votes: 137 14.1%
Back
Top