What is iLightMyShift?
It's an alternative driver for the M-spec shiftlight.
In addition to being used as a shiftlight driver, it can also be used without shiftlight to play audio beeps when it's time to shift.
Why is iLightMyShift?
There are two reasons (with nr 2 being the main one):
- Because I wanted to add some new functionality that the stock driver did not supply
- Because I can
Are you affilliated with M-SPEC?
No, I am not. I'm just a normal customer who happens to have bought myself a shiftlight that I like.
Will iLightMyShift be maintained?
I make no promises, but as long as I use it myself it will probably stay up to date.
The stock M-SPEC software runs just fine though so you can always use that.
Under which operating systems does it run?
Windows, and it requires .NET 4.0.
How do I install iLightMyShift?
Just read the notes below and then unpack the files and run the .exe.
iLightMyShift MUST be placed in a folder on your hard drive where it has write rights to files. I suggest your desktop!
You must also install the VCP drivers for the CP2102
in order to use it as a shiftlight driver, but if you've run the M-SPEC shiftlight before you already have these installed.
Will it auto-start when Windows starts?
No, but if you want it to just add a shortcut to it in the Windows startup folder.
Can I set it to start automatically when iRacing starts?
No, but iAppStarter can help you with that!
Is it possible to control multiple lights?
Yes. All you have to do is run multiple instances of iLightMyShift (one for each light).
I'm using three lights myself: a red one for shiftpoints, a yellow one for yellow flags and a blue one for blue flags.
Where do the default shiftpoint values come from?
I know next to nothing about that sort of thing, so I stole most of them from the (no longer available) ShiftTone app.
iLightMyShift will also automatically support any new iRacing cars that are released. In the case of such cars,
the default shiftpoints will be taken from the DriverCarSLShiftRPM telemetry variable.
If you've used the ShiftTone app, you will also recognize the similarities between the GUI:s.
The code for iLightMyShift is all my own, but I kind of liked the ShiftTone GUI so I took a lot of hints from there.
Credit should go where credit is due!
How do you get hold of the iRacing Telemetry needed?
I'm using Scott Przybylski's iRSDKSharp.
I also used to use Nick Thissens great little SDKWrapper,
but I have since simplified things a bit and am now running my own code largely based on the SDKWrapper.
I found a bug/Want a new feature!
Feel free to e-mail me about it (email@example.com) and we'll see what can be done!
There's just the one screenshot:
Settings File: (Resources/settings.xml)
As of v20131208, an XML file is used for representing all settings. This file is called settings.xml and is
located in the Resources folder within the iLightMyShift directory.
The settings file can be manually edited, but please do so only when iLightMyShift is NOT running or all your manual
edits will be overwritten!
- The checkboxes in the "General Settings" box pretty much do what they say
- This section is only relevant if you want to use the app as a shiftlight driver
- The first thing you need to figure out is which COM port to use.
The easiest way to do this is to select one COM port from the drop-down list and click on "Open".
If the M-SPEC shiftlight turns briefly on when you do this, you've found the correct port.
If not, try with the next port from the list.
- The "Light ON" button can be used to turn the light on. Good for testing purposes.
- If you want the selected COM-port to be automatically opened the next time the program is started, check the appropriate checkbox.
- The rest of the checkboxes do what they say
- The "Use audio tone for shiftpoints" checkbox does what it says (and checking it enables the other controls)
- The "Use hysteresis for tone" checkbox enables the hysteresis feature for the shift tone.
What this means is that once the tone has been played, it won't be played again until the RPM has dropped by X RPM.
Default value for X is 200 RPM but you can change it yourself by manually editing the Tone_HysteresisRpm setting in settings.xml.
- The combo box allows you to select which audio device to use for output
- The "Test Tone" button can be used to test the audio beep
- The Audio Volume slider does what you would expect
- If you don't like the audio beep I'm using, you can make the app play whatever sound file you like by replacing the
file "shiftTone.wav" in the Resources directory. Note that it has to be a PCM WAV file though, or it won't work!
A great place for generating tones is wavtones.com.
- The "Shiftpoint Settings" box allows you to set individual shift points for each car and gear.
If you don't want to fiddle with that there are defaults provided for all current iRacing cars.
iLightMyShift will also automatically support any new iRacing cars that are released.
In this case, the default shiftpoints will be set to the DriverCarSLShiftRPM telemetry variable value.
- The button "Set CURRENT car to Default Values" will set the shiftpoints for the currently selected car to the default values.
Note that this operation cannot be undone.
- The button "Set ALL cars to Default Values" will set the shiftpoints for ALL cars to their default values.
Note that this cannot be undone (but there is a warning-pop-up to make sure you dont accidentally hit it)
- The information for all shiftpoints and cars is stored in an XML file called cars.xml available in the Resources directory.
This file will be created upon the first program start and can be manually edited if you wish to (but please do so only when iLightMyShift
is NOT running or all your manual edits will be overwritten)
There are some more nifty features built into this as well, but I think this should be enough of an explanation to get you started :-)
Want to know what changed when? See Changelog.txt!
Not at this time.
iLightMyShift is released under the MIT License.
/Olof Holmgren [firstname.lastname@example.org]