I whipped this up last night because I was tired of using a gopro to "datalog" my AFR to RPM. I am also too cheap to buy all the additional innovate boxes and wire them up.
It's still got a few UI bugs (and occasional issues passing ^C to the stdin to stop logging). Most of the options are hard coded, but I will fix that soon and have something out within the next week or so.
1) It samples lambda from the LC1 at 12hz, which is a limitation of the LC1.
2) It fires up setzi's ME7 logger using the Mark P style layout and goes into a "standby" mode where it reads the stdout of setzi's ME7 logger in real time. In my test I was sampling at 47hz. (during this time, setzi's logger is still writing its own file to the disk.)
3) Next, it monitors the output in "standby" mode. If the accelerator pedal position goes over 90% it takes the output from stdout, appends the LC1 data, and adds an additional microsecond precision timestamp to debug potential timing issues/drift. It then writes this to a separate log file. Later, you just copy the values of the logged lambda field, and paste them over the calculated lambda field, and then dump them into the spreadsheet to view the purty graphs. No using conditional formatting in excel to find your WOT runs, and no nearly driving off the road trying to log by yourself. I will additionally be adding a feature to use WOT as a trigger, and then continue recording for X seconds after you lift - this way you can do a multigear capture as well.
Also, I have tested the accuracy of the samples and with an hour of simulated logging, I detected an approximate 20ms drift in "favor" of my app, which means that it is logging the current known lambda at every sample output and there is no deviation. I am guessing this is because setzi's logger uses a less precise method of calculating the elapsed time? I am using kernel32.dll's QueryPerformanceCounter to calculate the elapsed time.
Anyway, here is a quick video showing how it works at idle.
http://www.youtube.com/watch?v=nN8gkkslpaAedit------------------------------
Demons and bugs ahead... I only spent a few hours on this and there are probably some annoying bugs. The installer is probably broken. The app probably won't start. If it does, it won't log. Hell, I don't know - every machine is different, and bugs are inevitable. If you find some, let me know. I only wrote this for my own personal use, but I think it may be useful to others.
Here is what you need to know to install and use this.
First, I am providing this free of charge. Second, by downloading, installing, and using this you agree that I am not responsible for any damages that may result from its use. You run this tool AT YOUR OWN RISK.Additionally I'd like to thank setzi for his logger, and the community for their support.
Requirements:
Windows 7 (x86/x64) with .net framework 4.0 (installer will prompt if you don't have it) It may work in XP - if it does let me know.
Innovate's LogWorks 3 installed. Stupid, I know. No matter what I've tried I can't get my installer to package everything it needs, so the easiest way to deal with this is to just install LogWorks 3, which happens to include the SDK and the calibration/setup tool. Make sure your LC-1's lambda multiplier is also set correctly to your fuel.
http://www.innovatemotorsports.com/support/downloads/LogWorks3Setup.exesetzi62's ME7 logger from here:
http://nefariousmotorsports.com/forum/index.php/topic,837.0title,.htmlNote that I wrote this for the ORIGINAL RELEASE. I will test the latest version and report back. For now, I know that ME7Logger_DIST_29072011_v1.06.zip is tested and working. Here is a
DIRECT LINK:
Next, you will need the mark_p_style.cfg that Complacentsee put together.
http://nefariousmotorsports.com/forum/index.php/topic,837.msg7177.html#msg7177Last, download and install my logger. I attached it here.
First, I would recommend to start this app with your cables already connected. Remember which USB port you use for your LC1 and VAG-KKL cable. The port numbers will change if you move the devices to different ports. This will generally be annoying. I do my best to properly locate the LC-1, but there are a limited number of scenarios I can simulate.
You will need to set some default options. First, your LC1 should be detected, but if it's not, select the proper port, and the proper channel to use. You may have to hit the rescan button. And wait until the second coming of Christ for it to refresh. Sorry... it's just how lame their SDK is.
On the main screen:
"Display as lambda" - duh - if you need an explanation... erm... uh...
"Change Colors" - This simply changes the display background color on stoich. Red for lean, Green for rich.
"Smooth output" - one of my LC1's is older than the other and will sometimes offer jittery output. This takes a 3 sample rolling average, resulting in a ~25ms latency with respect to current conditions. This affects the log output as well. Unchecked is pure and realtime data logged AND displayed.
"% Throttle Trigger" - this watches your pedal position. Once your pedal position is >= this variable, it will start logging.
"Log Trailing (samples") - this specifies how many additional samples to capture when your pedal position is LESS than the trigger. This can be handy for multigear runs as logging won't be interrupted on gear changes.
"Log Options" button launches the options screen.
Set the path to the ME7Logger.exe
Paste in your command line arguments. By default, mine are:
-p COM8 -r -R -o c:\ME7log.log c:\ME7Logger_DIST_29072011_v1.06\logs\mark_p_style.cfg
"ME7log.log" is the unparsed ME7 output. Ignore it unless you need to look at all the raw data, minus the lambda logging"
Next, set your combined log path. This is the file that will contain the ME7 Logger output, with the lambda values and timestamp appended. It will also contain ONLY the samples received during the WOT trigger.
"Insert a timestamp separator before each throttle triggered log" will insert a timestamp in the combined log. This is handy for seeing when your sessions start/stop.
The parsing options should be default unless you are using a custom layout. If you don't know what I'm talking about, ignore this. I determine throttle position by reading the value associated with the pedal position. The position is 0 based and simply the first character of the throttle pedal position in your log output. The number of characters to parse should be 2 - you can determine this from looking at logs you take manually. Again, this is only something to mess with if you aren't using the mark p style...
"Initial samples to discard" basically captures the initial output with useful debug info, which can be later viewed on the main screen by clicking "debug window".
When you are done, click "stop logging". This will send a control-c to the logger and GRACEFULLY exit. If you don't do this, you will need to restart the application AND restart your car.
Youtube explanation/example:
http://www.youtube.com/watch?v=kjEs-YMCyJY