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
 
Spinelli,

Immersion was a part of the standardization group which derived the USB FFB device specification in the late 1990s. That specification was significant input to the design of the Microsoft DirectInput API, which still today is used by all major simulator SW to interact with e.g. FFB wheels.
So yes, to be compatible with these titles one has to recognise the USB FFB device specification.

There is however some simulation industry activity on trying to improve various aspects of the above specification (I have been involved in some of that).
 
Upvote 0
Spinelli,

Immersion was a part of the standardization group which derived the USB FFB device specification in the late 1990s. That specification was significant input to the design of the Microsoft DirectInput API, which still today is used by all major simulator SW to interact with e.g. FFB wheels.
So yes, to be compatible with these titles one has to recognise the USB FFB device specification.

There is however some simulation industry activity on trying to improve various aspects of the above specification (I have been involved in some of that).
I really hope something can be done about this, I can only imagine how much this is limiting FFB devices (even $1000+ wheels), or rather, I can only dream of what FFB wheels could be like (from low end to ultra high end) if they weren't limited to Immersion.

I'd love to see some sort of detailed write up explaining more details regarding this, and what things could be like without this current limitation, and how/in what way it limits current FFB. Doesn't seem to be much info, or knowledge in general, online regarding all this.
 
Upvote 0
Hello there FFB-lovers,

it's 2:30+ AM here in Stockholm - but since I am little excited, rather that going to bed here is a short update for you:

10 minutes ago I successfully executed code on the very first prototype of my new HW design (the one I have shown you PCB design pictures of in earlier posts above).
It has been a 3.5 month journey to get to this point, and I am very happy initial tests were successful on the first go of the HW design and manufacture. Careful planning and execution pays of sometimes, even though it is patience testing... :S

Early Jan I decided to make things a bit more difficult for myself by doing all of the PCB assembly in-house rather than shelling out 250€ to have a PCB assembly company produce a single(!) PCB, which I did not even know if it would work at all. There are some fine pitch components in the design, which makes the assembly a bit tricky - and sure enough this very first prototype was not pretty after component solder :) Using my new, very nice solder station I however fixed that tonight, and after having checked for shorts etc. I thought why the heck not fire the board up? The worst thing that could happen is that I fry components for X € plus my laptop :)

No frying occurred though!

There; I will give you a longer update shortly!

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

@Spinelli, I will answer you ASAP.
 
Upvote 0
Sounds great Pax7!

Really looking forward to hearing how you get on. Does your controller attach to a PC via USB and just show up as a FFB device that can be driven by any software, or does it require drivers to be written for each game?
 
Upvote 0
Hi guys,

I will answer you in a batch!

I am busy with the new HW now though; here is another little update:

I have done some further tests of my new HW prototype tonight, now testing out some critical HW components on the board with real code (code actually part of the FFB system). I had to migrate the code base to a new version of my development environment first though, since I now use the latest and greatest debugger - which is not supported by my old IDE. That only took me 1.5 hours or so to get sorted so that I could get down to the actual business of HW testing.

But guess what? HW tests successful!

I now have very good hopes this first revision of the new HW will actually be possible to run in the complete FFB system without issues -> I can go to sleep now!
 
Upvote 0
I cannot wait to see what you've got in store for us, Pax.

I have been watching your development for quite awhile, and I can't wait to see this project come to fruition.
 
Upvote 0
Guys, batch answer below! (better late than never... Busy here :S )

I really hope something can be done about this, I can only imagine how much this is limiting FFB devices (even $1000+ wheels), or rather, I can only dream of what FFB wheels could be like (from low end to ultra high end) if they weren't limited to Immersion.
I'd love to see some sort of detailed write up explaining more details regarding this, and what things could be like without this current limitation, and how/in what way it limits current FFB. Doesn't seem to be much info, or knowledge in general, online regarding all this.
The "Immersion" problem is not the technically most prominent problem with FFB wheel/simulation SW technology today. There is a host of other issues/limitations that affect end result more negatively.

Sounds great Pax7!
Really looking forward to hearing how you get on. Does your controller attach to a PC via USB and just show up as a FFB device that can be driven by any software, or does it require drivers to be written for each game?
What you describe first is "plug-and-play", which has been a requirement for computer peripherals since late 1990s.

Another question: does your board work with the known Mige servomoto?
These Chinese motors are standard technology. Provided one has support for the type of motor, in general these motors should work too.
However, in a professional system the motor should be adapted/tuned to the rest of the system to produce the best possible results. One can not just mix and match, it is a bit more complicated than that.

Now, I hope to have a little update on what has been going on, soon(TM)
 
Upvote 0
What you describe first is "plug-and-play", which has been a requirement for computer peripherals since late 1990s.

Indeed, but not all solutions are plug-and-play. There are a some projects using RS485 comms cards and motor controllers to drive servo-motors using the telemetry output from individual sims rather than the standard FFB output. From your response it would seem that your solution is using the standard FFB output.
 
Upvote 0
@Moog,

That should be Bernhard's project you are referring to. AFAIK he has chosen that approach to try to steer around the issue of having to deal with microcontrollers and detailed USB protocol(s) and stack knowledge. The up-side of this approach is that it should be possible to get sth basic to work with relative ease (but there are draw-backs and clear limitations).

In my case, from the very first prototype of mine mid-2012 I have used advanced industrial microcontrollers and a proper USB implementation for the FFB system to communicate with the PC host.

But sure, the USB protocol and stack can be a bit of a handful. For my first prototype to work for FFB I had to rewrite/extend the USB stack I was using, since it could not handle the more advanced configuration needed for a FFB device. I have since then proceeded to adapt/optimize USB stack(s) for FFB device use and for performance in general (e.g. see post above on that).
 
Last edited:
Upvote 0
Indeed, but not all solutions are plug-and-play. There are a some projects using RS485 comms cards and motor controllers to drive servo-motors using the telemetry output from individual sims rather than the standard FFB output. From your response it would seem that your solution is using the standard FFB output.

Yes, this is would be my project. I do go another route than Frederic for exactly the reasons he mentioned. Pax's project is way (WAY) more sophisticated than my solution and my approach will most likely require a proper driver to be written in the mid term. Long term I may hopefully understand what's going on uC wise to support true pnp and complying HID specifications. As far as I read the spec sheet the ARM µC on the drive stage I use is should be capable of USB HiSpeed.. however it is a complete DIY solution and aiming for "I-can't-wait-anymore-MacGyvers" out there while trying to keep the costs low or for guys that are interested in contributing to development (it's an OpenSource community project).

I can't wait until Frederic has some controller ready though as I am fully positive that it will be kind of a milestone. From what I've read in this last posts and the other forums I'm more and more sure that my project will just be a time-bridge for Frederic's solution.

ad motor tuning) yes, 100% this is unavoidable. But with a good design and good specs it should be doable to create a system that is capable of adapting to different conditions (within limits).
 
Upvote 0
Hello All,

Tonight is soon(TM), so here is a little update on what has been going on lately:

First, a few photos I took back in Feb. of the actual HW design PCB (you have seen the ~corresponding PCB CAD images and renders above):

(the dark green boxes are censored stuff :S )

o2lAYfG.png



In the below shot there is a cosmetic error on the PCB - where? (yep, I was a little fast there doing a small design change. But it is v0.1.0 after all, gotta have something not 100%...)

jWHa6y3.png


The cut-outs are for separating the PCB from the manufacturing panel frame, which is handy also when you do component assembly.

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

The day after I had verified that all essential functionality of the above HW design worked as expected (i.e. Feb 28 ), I turned my attention to a new, rather large and complex sub-project. A primary aim for this project is to realize a new control scheme I have decided to go ahead with. A first step is to evaluate it and if promising implement it in all aspects. This work has had multiple components so far:

* Researching for new HW components, including a new microcontroller which is state-of-the art for this particular use/scheme. There are several candidates, but none is 100% spot on in all aspects. I am sort of waiting and hoping my favorite microcontroller manufacturer will produce a specific chip in another package. Let's see where this heads...

* For evaluation of the new control scheme, I have spent some time working with another engineer to adapt a state-of-the-art platform to be usable for my purposes. This has included a rather detailed design/implementation review to get a good picture of the performance critical to FFB application. I found one parameter that was not quite 100% of what I wanted, but it should be more than good enough in practice really.
I hope to be up and running with this evaluation platform in not too long. The platform will cost me around €1300 btw :S

* Most of the available time since late Feb. I have had my nose down in theory though. I have ploughed through 400+ pages of technical documentation, papers, reports, ... Fun stuff, but now I am finished with that - at least for the first round.

Tonight I was so starved of practical work I sat down and soldered some new lab hook connectors just to do something with my hands for a change :)

And, oh, right. This Wednesday is was electronics Christmas day for me! I visited Scandinavia´s largest B2B electronics trade show. There were all sorts of fun stuff, like PCB assembly machines, industrial soldering ovens 10 m in length and costing $100.000 :)
A lot of cables, connectors, components, tools, instruments, ...

I was temped to buy a new fancy oscilloscope and a function generator, but then remembered that my wife wants me to pay the rent this month too... ;)

Here is a shot of the main hall as seen from the entrance:

4vF2mzZ.jpg


[/end of update]

BR,
 
Upvote 0
The censored stuff either has to be your real name (which most of us will know already) or more likely either SX of Fanatec if I had to guess ;-) My bet would be on the first one though. It would just be almost spot on timeline wise...
 
Upvote 0
The censored stuff...SX...It would just be almost spot on timeline wise...
Heh Bernhard,

good guess, but I can confim it is not LifeOn2 Development which makes the SimXperience FFB wheel HW. They have some other supplier(s) of that.
 
Last edited:
Upvote 0
Pax7, have you already a date estimation for the commercial launch or it's still way too early to say ?

An other question.. your first plans when you started this thread was to build a controller with a drive stage capable to deliver 300w for big DC motors, it's still up to date or you changed your mind and now focus only on servo motors ?

In both case, i cant wait to start build a proper steering wheel with your FFB controller, because since i discovered this thread i cant put my hands on my g25 anymore .. :redface:
 
Upvote 0
Pax7, have you already a date estimation for the commercial launch or it's still way too early to say ?

An other question.. your first plans when you started this thread was to build a controller with a drive stage capable to deliver 300w for big DC motors, it's still up to date or you changed your mind and now focus only on servo motors ?

In both case, i cant wait to start build a proper steering wheel with your FFB controller, because since i discovered this thread i cant put my hands on my g25 anymore .. :redface:

I think there are a huge number of people that have had a chance to use a servo wheel , or just have seen the figures and are disappointed by consumer wheels and are dying to get a servo wheel.

These projects are very exciting and I think everyone appreciates the work and effort the guys are putting into it !
 
Upvote 0

Latest News

Online or Offline racing?

  • 100% online racing

    Votes: 76 7.1%
  • 75% online 25% offline

    Votes: 114 10.6%
  • 50% online 50% offline

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

    Votes: 299 27.8%
  • 100% offline racing

    Votes: 425 39.5%
  • Something else, explain in comment

    Votes: 4 0.4%
Back
Top