Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
irFFB was originally created to experiment with the 360 Hz telemetry data that was recently made available by iRacing. The original intent was to feed the 360 Hz steering column torque data to your FFB wheel so that we could examine what benefits a higher FFB sample rate might bring.
The standard iRacing FFB output writes samples to your wheel 60 times per second, which is arguably not fast enough to generate an accurate (or pleasant) feel at the wheel. This is particularly noticeable with 'Direct Drive' wheels that output higher torques and have lower response times than gear or belt-driven equivalents. The 360 Hz data available in live telemetry provides a significantly smoother feel at the wheel and contains high frequency detail that is absent from the standard 60 Hz output.
The disadvantage of using data from telemetry instead of the standard iRacing FFB is that there is a small delay ( ~ 15 ms) between when the standard FFB is updated and when the data becomes available in telemetry. In addition, since the 360 Hz data is actually written to telemetry 60 times per second (with 6 values each time), irFFB must delay the samples by another 14 ms before sending them to the wheel. This means that the 360 Hz FFB is subject to around 29 ms of total delay referenced to the standard (60 Hz) FFB.
As an alternative, irFFB's 'direct' modes use the vJoy driver to access the standard iRacing FFB output. irFFB upsamples and applies low-latency processing to the standard FFB to improve smoothness and feel without the latency (or high frequency detail) associated with use of the 360 Hz telemetry data. irFFB can also modify the FFB (regardless of type) via a number of telemetry-driven effects.
A guide to getting up and running is available in the Configuration page. There are answers to some FAQ at FAQ and the FFB types available are described in the FFB types page. If you're an iRacing member (which you presumably are!) there's a long thread that follows the early irFFB development here and a more recent thread about irFFB 1.3.x here.
For the FFB types based on telemetry (360 Hz types), irFFB just reads the data from telemetry, mixes in the output of any enabled effects and then writes the samples to your wheel at the appropriate time.
It looks something like:
For the direct modes, irFFB needs to access the standard iRacing FFB output. To do this it relies upon the vJoy driver, which allows you to create a virtual DirectInput device that irFFB can control. By recalibrating the steering axis in iRacing, we can get iRacing to use the virtual device instead of your wheel and irFFB can therefore process the FFB before passing it on to the wheel.
The direct modes look something like: