A FFB app for LMU, similar to irFFB and Marvin's iRacing App
Experimental alpha version.
Download the latest release from GitHub
B. Configure lmuFFB
- Run
LMUFFB.exe. - FFB Device: In the dropdown, select your Physical Wheel (e.g., "Simucube 2 Pro", "Fanatec DD1").
- Master Gain: Start low (0.5) and increase.
A. Configure Le Mans Ultimate (LMU)
-
Start LMU.
-
Go to Settings > Graphics:
- Set Display Mode to Borderless. (Prevents crashes/minimizing).
-
Go to Controls > Force Feedback.
-
Steering Axis: Bind to your Physical Wheel (e.g., Simucube, Fanatec, Moza, Logitech).
-
In-Game Force Feedback settings in LMU:
- Disable FFB Set FFB Effects Off.
- FFB Strength: reduce to 0%.
-
Drive! You should feel force feedback generated by the app.
This is an experimental release, the FFB formulas may require refinement based on real-world testing.
Please help us improve lmuFFB:
- Test with caution - Start with low wheel strength settings
- Experiment with settings - Try different effect combinations and gains
- Share your results - Post screenshots (including the lmuFFB console and the "Graphs" window) to the LMU Forum Thread for the lmuFFB App
- Report issues - Let us know what works and what doesn't!
Your testing and feedback is greatly appreciated! 🙏
- 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.
- Steering wheel bouncing/shaking when stationary (engine vibration):
- If your wheel "bounces around on the tune of the engine rpm" when the car is stopped or idling, this is caused by the game's engine vibration physics being transmitted through the steering column.
- Automatic Fix (v0.6.22+): This is now automatically handled by the Automatic Idle Smoothing feature. The vibration should fade out when you're stationary and return to normal when driving.
- Manual Workaround (older versions): Go to Signal Filtering, enable Static Noise Filter, and set the frequency to 10-15 Hz. Adjust until the bouncing stops. This will surgically remove the engine bounce without making the steering feel light.
- 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.
- 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:
- Report it in the LMU Forum Thread to get support and help us update the app.
- Important: You can help significantly by taking a screenshot (use the "Save Screenshot" button in the app) and pasting it into your forum post. This captures all your settings and the console log in one go.
- 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.
For feedback, questions, or support:
- LMU Forum Thread: lmuFFB App
- GitHub Issues: Report bugs or request features
- FFB Tuning Recommendations
- Driver's Guide to Testing LMUFFB - Suggestions for specific driving scenarios and car setups to test each FFB effect
- The Physics of Feel - Driver's Guide - Explains how lmuFFB translates telemetry into tactile sensations, with telemetry visualizations
- FFB Effects & Customization Guide
- Telemetry Data Reference
- FFB Math Formulas
- How to Contribute to the Project - Step-by-step guide for contributors using AI-assisted coding tools
- Custom Effects:
- Grip Modulation: Feel the wheel lighten as front tires lose grip.
- Dynamic Oversteer: Counter-steering force suggestion based on rear axle alignment torque (v0.2.2).
- Progressive Lockup: Feel the edge of tire braking limit before full lock (v0.2.2).
- Traction Loss: Feel the rear "float" and spin up under power (v0.2.2).
- Compiler: MSVC (Visual Studio 2022 Build Tools) or generic C++ compiler.
- 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 -ForceOption 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-firstOption 2: Run All Tests: After building, run the unified test runner to verify everything (Physics, Windows Platform, Screenshots):
.\build\tests\Release\run_combined_tests.exeNote: 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.
It is planned for a future release. See #30
