Skip to content

A Telemetry-based Force Feedback app for LMU, somewhat inspired by irFFB and Marvin's iRacing App.

License

Notifications You must be signed in to change notification settings

coasting-nc/LMUFFB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,441 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lmuFFB

A Telemetry-based Force Feedback app for LMU, somewhat inspired by irFFB and Marvin's iRacing App.

Experimental alpha version.

lmuFFB GUI

📥 Download

  • Standard Releases (Recommended): Stable versions, released less frequently.
  • Nightly builds (Latest features & fixes): Experimental versions compiled automatically based on the latest version of the code. They include the newest features and bug fixes but may be less stable. Once they have been out for a while and no major issues arise, they are promoted to standard releases.

Installation & Configuration (LMU 1.2+)

Step-by-Step Setup

B. Configure lmuFFB

  1. Run LMUFFB.exe.
  2. FFB Device: In the dropdown, select your Physical Wheel (e.g., "Simucube 2 Pro", "Fanatec DD1").
  3. Master Gain: Start low (0.5) and increase.

A. Configure Le Mans Ultimate (LMU)

  1. Start LMU.

  2. Go to Settings > Graphics:

    • Set Display Mode to Borderless. (Prevents crashes/minimizing).
  3. Go to Controls > Force Feedback.

  4. Steering Axis: Bind to your Physical Wheel (e.g., Simucube, Fanatec, Moza, Logitech).

  5. In-Game Force Feedback settings in LMU:

    • In-game Force Feedback can be left Enabled and with Strength % greater than zero.
    • It is necessary to have it enabled (and greater than zero) if you want to use the option to also transmit the in-game FFB through the lmuFFB app. The FFB strength % you set in-game will be exactly the strength lmuFFB receives (before applying any other setting). So set in-game FFB strenght to the value you generally prefer for in-game FFB when not using the app.
  6. Drive! You should feel force feedback generated by the app.

🧪 Experimental Version - Testing Needed!

This is an experimental release, the FFB formulas may require refinement based on real-world testing.

V0.7.40 Advanced Features:

  • Dynamic Slope Detection: Automatically detects tire saturation for more organic understeer feel.
  • Torque-based Anticipation: Feels understeer earlier by monitoring pneumatic trail drop.
  • Curb Rejection Filter: Prevents false understeer cues when hitting bumps or curbs.

Please help us improve lmuFFB:

  1. Test with caution - Start with low wheel strength settings
  2. Experiment with settings - Try different effect combinations and gains
  3. Share your results - Post screenshots, thoughts and settings to the LMU Forum Thread for the lmuFFB App
  4. Report issues - For bugs and technical issues, it is much better to open a GitHub issue rather than posting on the forum. Issues on GitHub are periodically tackled by AI agents, while forum posts can be dispersive and difficult to track.

Your testing and feedback is greatly appreciated! 🙏

Troubleshooting

  • Inverted FFB (Force pushes away from center):
    • If the FFB feels "backwards" or "inverted" while driving (wheel pushes away from center instead of pulling toward it), check the "Invert FFB" checkbox in the lmuFFB GUI.
    • This reverses the force direction to match your wheel's expected behavior.
  • No FFB:
    • Ensure the "FFB Device" in lmuFFB is your real wheel
    • Check if Connected to Le Mans Ultimate" appear in the GUI
    • Verify the FFB strength in your device driver is not too low
    • Increase Master Gain or reduce Max Torque Ref
    • Check the lmuFFB console for errors
  • Baseline vibration from the FFB:
    • That is known to come from the Steering Shaft Torque from the game (you can temporarily disable Steering Shaft Gain to confirm it).
    • To fix it, enable the "Static Noise Filter" in lmuFFB and set a Target Frequency of 10-12 Hz.
    • If some noise is still present, you can increase the Steering Shaft Smoothing.
  • FFB too weak:
    • Increase Master Gain (slider ranges from 0% to 200%, so you can boost beyond 100%).
    • Or reduce Max Torque Ref (this amplifies the signal by setting a lower reference point for maximum torque).
  • Violent oscillations or shaking:
    • If you experience violent oscillations that the Smoothing or Speed Gate settings don't catch, try increasing Max Torque Ref (e.g., from 45 to 60-80 Nm).
    • Higher Max Torque Ref values reduce clipping and noise, which can cause oscillations.
    • Tuning Tip: Max Torque Ref is the primary way to control the balance between clipping/noise and steering weight. Start at 45 Nm and adjust based on your preference.
  • Strange pull in some scenarios:
    • If you feel a strange pull in specific driving situations, try reducing the Rear Align Torque.
  • Sharing Presets:
    • You can now easily share your FFB settings with others using the "Export Selected..." and "Import Preset..." buttons in the Presets section.
    • Exported presets are saved as small .ini files that can be sent to other users.
  • The app has too many options and it's confusing:
    • A future version will include a "Basic Mode" with auto adjustment and defaults for most settings.
    • We need to first determine which settings work best for most users and wheel types (Direct Drive vs Belt/Gear).
    • Please leave feedback on the forum thread telling us what settings work best for you: LMU Forum Thread
  • Any other issue:
    • Preferred: Open a GitHub Issue. This is the best way to ensure your issue is tracked and addressed. Our AI agents periodically scan and attempt to fix GitHub issues.
    • Alternatively, post in the LMU Forum Thread, but be aware that forum posts are harder to track.

Upcoming Features

  • Basic mode with only main sliders and auto adjustment of other settings
  • Adaptive Optimal Slip Angle
  • Wet Weather Haptics (Hydro-Grain): vibration cues telling when the tires are on dry or wet surface, and if there is grip or not
  • Per wheel Hydro-Grain to give information about a drying racing line (e.g., left tires on dry, right tires on wet)
  • Longitudinal Dynamic Weight Transfer: feeling of the car getting heavy under braking and light under acceleration.

Feedback & Support

For feedback, questions, or support:

  • GitHub Issues (Recommended for Bugs): Report bugs or request features. GitHub issues are easier for us to track and are periodically tackled by AI development agents.
  • LMU Forum Thread: lmuFFB App. Best for general discussion and sharing settings.

See also this Reddit thread:

Documentation

Building (for developers)

Prerequisites (First Setup)

  1. Compiler: MSVC (Visual Studio 2022 Build Tools) or generic C++ compiler.
  2. Build System: CMake (3.10+).

One-time Setup Steps (PowerShell):

# Enable execution of scripts
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

# Initialize build files
& 'C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\Launch-VsDevShell.ps1' -Arch amd64 -SkipAutomaticLocation; cmake -B build

# Download and Install ImGui (Required for GUI)
New-Item -ItemType Directory -Path "vendor\imgui" -Force
Invoke-WebRequest -Uri "https://github.com/ocornut/imgui/archive/refs/heads/master.zip" -OutFile "vendor\imgui-master.zip"
Expand-Archive -Path "vendor\imgui-master.zip" -DestinationPath "vendor" -Force
Copy-Item -Path "vendor\imgui-master\*" -Destination "vendor\imgui\" -Recurse -Force
Test-Path "vendor\imgui\imgui.cpp"
Remove-Item -Path "vendor\imgui-master.zip", "vendor\imgui-master" -Recurse -Force

Build & Test

Option 1: Build EVERYTHING (App + Tests) in one command: This will compile the main application, compile all test suites, and report build status.

& 'C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\Launch-VsDevShell.ps1' -Arch amd64 -SkipAutomaticLocation; cmake -S . -B build; cmake --build build --config Release --clean-first

Option 2: Run All Tests: After building, run the unified test runner to verify everything (Physics, Windows Platform, Screenshots):

.\build\tests\Release\run_combined_tests.exe

rFactor 2 Compatibility

Note: rFactor 2 is not supported in v0.4.0+. For rFactor 2, please use earlier versions of lmuFFB (v0.3.x). See the releases page for v0.3.x downloads. rF2 will be supported again in a future version, in particular to compare our grip approximation alghorithm with the real values returned by the game for non DLC cars.

Support for AC, ACC, ACE

It is planned for a future release. See #30

About

A Telemetry-based Force Feedback app for LMU, somewhat inspired by irFFB and Marvin's iRacing App.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages