The online racing simulator
G27 LEDs mod [renamed]
(330 posts, started )
Hrm
My LEDs don't light up.

I even tried setting rpm_xrt to zero. The XRT didn't light the LEDs

I'm on Windows 7 x86.

The driver for my G27 is version 5.9.129. I guess that's what comes with the Logitech Profiler now (version 5.10.127).
Attached files
g27dbg.txt - 668 B - 245 views
That's probably the same issue a few other guys are having. There is a sort of a testing app to check that. Could you launch LFS, start a race and then run the app (car's engine in LFS has to be _running_ for this to work).
The app will generate a report that could tell me what's going on. I'm working on a workaround, but I'd still like to get to the bottom of this. Are you sure you're running unmodified LFS 0.6B?
I have noticed that the G27 LEDs light up for example with FXR/XRR in every camera position, but with FZR I have to go to the cockpit sight once. Only then the LEDs start lighting up for FZR (after cockpit sight i can go into every other camera position).

My FFB is not affected by this tool in any way (Win 7 x64).

Sometimes my LEDs aren't turned off, too (after closing LFS).
Quote from MadCatX :Do you have any idea what got it working? There's another guys with what appears to be the same problem and the debugging output suggests that for some reason the RPM read from LFS memory is always 0. I'd like to fix any problems I might have missed..

It started working when I typed /insim=29999 to get AONIO going. Not sure if it's working as intended, but I was under the impression that the latest version was independent of insim and outgauge. For some reason it can't read the RPM memory until this point?

People who can't get theirs working should try this method as it also worked for two of my teammates.
Quote from MadCatX :That's probably the same issue a few other guys are having. There is a sort of a testing app to check that. Could you launch LFS, start a race and then run the app (car's engine in LFS has to be _running_ for this to work).
The app will generate a report that could tell me what's going on. I'm working on a workaround, but I'd still like to get to the bottom of this. Are you sure you're running unmodified LFS 0.6B?

I re-installed LFS, and ran the test app.

Windows x86 version: 6.1.1.0
LFS HWND: 001702D4
LFS PID: 3992 570
Trying full access mode.
RPM: 0
Car: XRT
Trying read only mode.
RPM: 0
Car: XRT
Press any key to continue . . .

Quote from AndreNZ :It started working when I typed /insim=29999 to get AONIO going. Not sure if it's working as intended, but I was under the impression that the latest version was independent of insim and outgauge. For some reason it can't read the RPM memory until this point?

People who can't get theirs working should try this method as it also worked for two of my teammates.

could be the solution because i use insim=29999 always, too (via shortcut)
Quote from Mountaindewzilla :I re-installed LFS, and ran the test app.

Windows x86 version: 6.1.1.0
LFS HWND: 001702D4
LFS PID: 3992 570
Trying full access mode.
RPM: 0
Car: XRT
Trying read only mode.
RPM: 0
Car: XRT
Press any key to continue . . .


Can you post your Outgauge settings at the .cfg file? I am just curious. Also was your engine running when you run the program?
Quote from DarkKostas :Can you post your Outgauge settings at the .cfg file? I am just curious. Also was your engine running when you run the program?

The engine was running. I was under the impression that the new version of MatCatX' program no longer used outgauge.

I tested a newly installed LFS, so the configuration hasn't been modified, other than enabling my wheel.

OutSim Mode 0
OutSim Delay 1
OutSim IP 127.0.0.1
OutSim Port 0
OutSim ID 0
OutGauge Mode 0
OutGauge Delay 1
OutGauge IP 127.0.0.1
OutGauge Port 0
OutGauge ID 0

Quote from Mountaindewzilla :The engine was running. I was under the impression that the new version of MatCatX' program no longer used outgauge.

I tested a newly installed LFS, so the configuration hasn't been modified, other than enabling my wheel.

OutSim Mode 0
OutSim Delay 1
OutSim IP 127.0.0.1
OutSim Port 0
OutSim ID 0
OutGauge Mode 0
OutGauge Delay 1
OutGauge IP 127.0.0.1
OutGauge Port 0
OutGauge ID 0


It doesn't need it, but maybe when OutGauge Mode is 0(like it is now, it doesnt report the RPM to the memory. Can you please try Mode 2?(I just came up with this idea... Port doesn't matter just mode)

EDIT: I just sent this idea to a friend who had the same problem AND IT WORKED! So it seems that you need to have OutGauge enabled to send RPM values to RAM(Memory) so it will work.
Small warning, make sure the Port is not zero, because you will come up with an error.
I guess I know what's going on. LFS physics engine doesn't work with engine speed in the revolutions per minute format, it only converts it to RPM when it sends data through OutGauge. I had OutGauge enabled during development so I didn't realize that. Until I fix the problem, enabling OutGauge in cfg.txt should fix the problem.
Works!
It's ironic that you'd need to enable outgauge so that you wouldn't need to use outgauge.
It kinda is... I found out how LFS stores RPM in RAM, a little catch is that the addresses are dynamic and change whenever you leave garage. I suppose I'll end up writing a helper app that'd read RPM from OutGauge interface and pass the RPM to the mod via shared memory. That way it will be guaranteed to work with every version of LFS which uses the new OutGauge packet format.
I think the best way would be if Scawen implemented it instead
Considering it's a 5 minute work, it would be nice of him...
He already commented on this, afaik. Something about logitech's bad drivers or something, I can't remember...

//found it
Quote from Nadeo4441 :He already commented on this, afaik. Something about logitech's bad drivers or something, I can't remember...

//found it

The thing is that THIS mod is not using Logitech API(at least that's what i noticed), so it can be made the same way this one is working and maybe without the need to send the RPM "request" to all devices(maybe getting the name of the device and if its equal to "Logitech G27"[its not exactly like that] then send it).

EDIT: The name of the device is "Logitech G27 Racing Wheel USB" in case you try to implement this improvement.
Quote from Nadeo4441 :He already commented on this, afaik. Something about logitech's bad drivers or something, I can't remember...

//found it

Actually Scawen is kinda wrong about this. The Logitech API is nothing but a wrapper around standard DirectInput interface and it is distributed as source code.
When I got fed up with their API (rather horrible, I'm glad I'm not the only one who's of that opinion) I simply ripped out the stuff I needed to get the LEDs working. The "Escape" packet format Scawen talks about is exactly what I use to pass the RPM data to the wheel. There is a "PlayLeds()" function in the Logitech API which constructs such a packet and passes it on using a common DirectInput way.
I quickly looked over the "official" way of setting the wheel range and (although it's far from being elegant) it only alerts the Logitech Profiler and passes the new wheel configuration to it.

If I could figure that out, I don't see why should Scawen have any problems with it...
Quote from DarkKostas :The thing is that THIS mod is not using Logitech API(at least that's what i noticed), so it can be made the same way this one is working and maybe without the need to send the RPM "request" to all devices(maybe getting the name of the device and if its equal to "Logitech G27"[its not exactly like that] then send it).

EDIT: The name of the device is "Logitech G27 Racing Wheel USB" in case you try to implement this improvement.

G27 is identified by a GUID of 0xC29B046D (where C29B is G27's product ID and 046D is Logitech's vendor ID). However, getting this GUID _after_ the DirectInputDevice object is created is rather difficult as DirectInput won't give me the data I need - probably because I'm asking for it from within the DirectInputDevice object itself.


OK, perhaps I should stop showing off my "knowledge" I gained over the year and a half of messing around with LG hardware and do something useful....
Thanks MadCatX, it works.
Been testing this out and haven't had any problems, Thanks a lot!

Also I found this via Google, not sure if they are perfect, probably needs some adjusting

rpm_uf1 4400 6900
rpm_xfg 4400 7900
rpm_xrg 4400 6900
rpm_lx4 6000 8900
rpm_lx6 6000 8900
rpm_rb4 4500 7400
rpm_fxo 4500 7400
rpm_xrt 3500 7400
rpm_rac 4000 6900
rpm_fz5 4500 7900
rpm_ufr 5000 8900
rpm_xfr 5000 8800
rpm_fxr 4500 7400
rpm_xrr 4500 7200
rpm_fzr 5000 8400
rpm_mrt 4000 10000
rpm_fbm 7700 9820
rpm_fox 5000 7400
rpm_fo8 5750 11240
rpm_bf1 14500 22470
how do you make it go?
Quote from S3ANPukekoh3 :how do you make it go?

Edit your LFS "cfg.txt" (in the LFS directory) so that this line near the bottom
OutGauge Mode 0

becomes
OutGauge Mode 2

A few lines bellow that make sure the outgauge port is not zero, such as
OutGauge Port 59999

V 1.02 is out. Hopefully it will not need to be updated to maintain compatibility with possible further versions of LFS.
Quote from MadCatX :V 1.02 is out. Hopefully it will not need to be updated to maintain compatibility with possible further versions of LFS.

Works fine. I just replaced the .dll because i dont use OutGauge(the actual outgauge) so i didn't even copy the .exe and the .bat file. (i want to have everything tidy haha)

Good work once again!

G27 LEDs mod [renamed]
(330 posts, started )
FGED GREDG RDFGDR GSFDG