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
 
I didn't say you are copying :) but looks like both of you are walking same path :) from my noob pov :) Nobodies is copying nobody :) FFB exists for years :)
 
Upvote 0
Congrats ! the second FFB controller.

To reduce costs, we now need to build a generic servo drive, I begun the design but I have not the time to continue (a baby takes a LOT of time).

magic: it's not a homemade PCB, it's LPCXPRESSO, like my first prototype, replaced by blueboard for costs reason and integrated USB device connector.
 
Upvote 0
To reduce costs, we now need to build a generic servo drive, I begun the design but I have not the time to continue (a baby takes a LOT of time).
If there is cost concern I would be surprised if one could construct and sell a drive in small quantities with production grade quality at significantly lower price than what is already available.

As I do not have cost focus (at least not atm), I have not even tried to do the math though, so maybe you know more.
 
Upvote 0
A 5-10A 3 phase inverter with current sensing (the tricky part for good results) and some basic protections cost less than 60€ with few components (since a few years you can find smart power module ICs with integrated boost stage and insulation).
The MCU (Cortex M4) can drive the inverter and USB comm, a second board is not needed.
On a homemade 2 side PCB, 100€ target price can be reached.
Compared to the FFB controller + Granite Device controller (300€ inc.ship.).
 
Upvote 0
A 5-10A 3 phase inverter with current sensing (the tricky part for good results) and some basic protections cost less than 60€ with few components (since a few years you can find smart power module ICs with integrated boost stage and insulation).
The MCU (Cortex M4) can drive the inverter and USB comm, a second board is not needed.
On a homemade 2 side PCB, 100€ target price can be reached.
I see you have made some investigation into the subject, and that sounds promising. As you point out the employed control loop and its quality is important, which could be an issue. But it should "work" regardless I assume.
 
Upvote 0
Hello Everybody,

I thought I'd share a status update here for you guys:

there has been a lot of activity by me on FFB technology and my FFB controller/system project since my last post on the RD forum. I have e.g. extended the capabilities of my FFB controller and used that, among other, to make an extensive analysis of rFactor2 FFB and related. I have also looked at Assetto Corsa, and will post some more on that.

Since there has not been much activity in the Hardware sub-forum here at RD lately, I will however not repost everything here (at least not for the time being). So, if you are interested in technical aspects of FFB technology, FFB systems, etc. please see my threads and posts over at the iRacing forum!

BR,
 
Upvote 0
Iracing forums are not accessible if you don't have iRacing...
Hello there Magic,

that I think is known by most sim racers, yes.

However, the iRacing HW forum is by FAR the largest and most active forum there is; the post rate must be ~ an order of magnitude higher than here, so it is a good place to be for active discussions.

With that said, I am open to posting at other forums too (which I do every now and then), as long as we can get a good discussion going.
 
Upvote 0
Hello Everybody,

I thought I'd share a status update here for you guys:

there has been a lot of activity by me on FFB technology and my FFB controller/system project since my last post on the RD forum. I have e.g. extended the capabilities of my FFB controller and used that, among other, to make an extensive analysis of rFactor2 FFB and related. I have also looked at Assetto Corsa, and will post some more on that.

Since there has not been much activity in the Hardware sub-forum here at RD lately, I will however not repost everything here (at least not for the time being). So, if you are interested in technical aspects of FFB technology, FFB systems, etc. please see my threads and posts over at the iRacing forum!

BR,

To what extent would the control board and other related equipment be compatible with general industrial servo motors that meat the basic speck , Is it the case that it would only work with one specific motor or would it be possible to have something that works with many or maybe a family of motors ?

I'm under the impression that using these motors for a FFB SimRacing device is massively underutilising the motor so to save costs for some users maybe a second hand motor could be used ?

From the companies I have spoken to or contacted there Servo motors cost around 3-30k yet it seems you can find second hand ones on Ebay for around 400-4k.

What sort of price range are the servo motors you are working with now going for ?

All the best !
 
Upvote 0
Pax7
Have you thinked about making a plugin to rFactor 2, bypass DirectInput and make your own connection to your USB controller, directly from the plugin? Could that reduce connection latency?
Have you actually measured typical connection latency between data send by sim and your controller?
 
Upvote 0
To what extent would the control board and other related equipment be compatible with general industrial servo motors that meat the basic speck , Is it the case that it would only work with one specific motor or would it be possible to have something that works with many or maybe a family of motors ?

I'm under the impression that using these motors for a FFB SimRacing device is massively underutilising the motor so to save costs for some users maybe a second hand motor could be used ?

From the companies I have spoken to or contacted there Servo motors cost around 3-30k yet it seems you can find second hand ones on Ebay for around 400-4k.

What sort of price range are the servo motors you are working with now going for ?

All the best !
Hello,

You need to ensure electrical and protocol compatibility between the components included in the system. You cannot just go and buy any servo motor on eBay. With that said, there are general electrical interfaces used, and some where "family" members are mateable.
In a serious implementation you also need to configure/tune the FFB controller to the rest of the system.

I have not investigated many different servo motors sharing fundamental technical design, as I have not found that interesting enough. But as usual I would guess you get what you pay for, with cost vs. performance not being a straight line function, rather a log shaped function.
 
Upvote 0
Pax7
Have you thinked about making a plugin to rFactor 2, bypass DirectInput and make your own connection to your USB controller, directly from the plugin? Could that reduce connection latency?
Have you actually measured typical connection latency between data send by sim and your controller?
Hello Marek,

I have only looked for a few minutes at ISI plugins (rF1), and I am not sure it is possible to do what you suggest. Anyone knows? It would require significant support by the sim.

On the latency: in my experience there is noticeable latency between any sim and any FFB controller (wheel), and it is not due to the FFB controller (at least not in my case). I have thought a bit about quantifying such latency, but it is not extremely straight forward in a very rich OS as Windows. It might not even be doable at all with high accuracy, or would at least require a particular approach.

BR,
 
Upvote 0
Hello there,

it is going very well; I am hard at work with research and development of the LifeOn2 FFB system! I wrote up a little recap in Swedish on what I have been up to the last few months. I ran that through Google translate to be able to post it here (but Google translate produces some funny wordings, so bear with me on that... ;) ) :

* I have used my "side-band" I/O module to make a detailed technical analysis of rF2 FFB output, with a lot of charts and graphs. There issome junk in rF2 FFB output ISI should try to get rid of. I should post the analysis on the ISI forums to see what they say.

* Analysis of Assetto Corsa FFB protocols. I found some overhead which I reported to the Kunos. They've fixed it in the latest version of their preview. Also iRacing had some overhead which they fixed after discussion with them. They also had some incorrect code for handling damping, which they now have fixed too.
It should be said that the exact overhead depends on the driver implementation of the steering wheel one uses, but most are probably "dumb" and generate overhead.

* I have designed and written a proper framework for FFB effect generation for my microcontroller. It works quite good, and is now fully in use!

* I have used the fact that I have a powerful microcontroller for improving FFB output quality. What I have done is to make it possible to apply signal processing algorithms on most effects. This requires microcontroller power to do in real time (sometimes on multiple effects simultaneously, and in several steps). However, there is power in my system, unlike e.g. in Leo's which has a microcontroller that is 10-15 times weaker than mine (he may have switched to a more powerful microcontroller in his latest version, but I do think also that is nothing to write home about).
The effect of the processing is dramatic in iRacing, and gives a far more pleasant FFB, far better than Leo's in the version of his system I have. I believe however that he now realized that he needed to fix this... ;)

* I posted a report (technical post + movie) about the last * in the case of the special interest effect "inertia".

* Post of movie where I demonstrate various canned effects:


* A little work to mathematically model a critically damped spring (rotating system), which was successful I must say. Here is a short demo of it:


* Work with the planning of HW-related parts of the system. I have taken a few decisions about direction and component selection which IMO is quite exciting. The result will be something clearly more capable than what is available today!

* The last ~month I have been working on a new area of ​​the system, which required a lot of research and "prototyping" I have since a few days back solved all (I hope :)) fundamental problems and now have to look forward to gradually build up the subsystem. Gonna be some functionality that is definitely not on any other FFB system! :)

For more info, check out my thread over at iRacing: http://members.iracing.com/jforum/posts/list/2248489.page

You can contact me e.g. via PM here on RD!
 
Upvote 0

Latest News

Online or Offline racing?

  • 100% online racing

    Votes: 84 7.3%
  • 75% online 25% offline

    Votes: 122 10.7%
  • 50% online 50% offline

    Votes: 167 14.6%
  • 25% online 75% offline

    Votes: 319 27.9%
  • 100% offline racing

    Votes: 449 39.2%
  • Something else, explain in comment

    Votes: 4 0.3%
Back
Top