Nice work there dude! You seem to know what you're doing. If only my car had OBD2. Then I could quit developing my program when yours is available.
How fast you can fetch values through your DME with your program? My M60B40 has Motronic 3.3.8 and the speed is around 150-200ms per value. Which I find quite slow.
Smooth11981: As you're a hacker.... Would you mind trying to figure out how to read jobs out of .prg files which are "encrypted" in some wayMy disassembly skills seem to be quite rusty.
For anyone: The program is still in beta/test phase but if you wish to already to play with it you can get current version by sending me a PM.
Last edited by pheno; 06-04-2012 at 02:55 AM. Reason: Automerged Doublepost
E61 520d LCI
Check out TestO - free datalogger for BMW. Includes support for: AEM, PLX, 14point7, Innovate (through SDK)
I should have no trouble supporting the full range of BMWs, not just OBD2.
It's not fair to compare speeds since this was a much newer DME, but if I get to the point of working with the Motronic 3.3.8 I'll chime back in and let you know what throughput I achieve.
It's hard to tell if the PRG files are actually encrypted or just compiled scripts. You may want to try patching into the dlls that are being used and watching what is being accessed by the program.
smooth1181, is the comms section of your logger re usable for other apps & what have you written the app with ?
This is a standalone application I created so no code will be given away as reusable source. Sorry.
no worries, am looking at something else & trying to decide on direction etc at the moment, it is the base comms level which is limiting people in development of apps
That's actually surprising. I'll PM you.
Edit: or I would if you had PMs enabled.
Last edited by smooth11981; 06-05-2012 at 01:38 PM.
Very Very interested in this!
not sure why i have not seen this or your other threads(M3cutters/e46f)
I have an e36 m3 euro 3.0, s50b30 and very willing to be a tester!
This specific engine would benefit from this, as INPA does not work, and no one seems to have DIS working either.
I can read every module with INPA except the ECU/DME! very annoying
Im currently chasing down a sensor problem which is impossible without live engine data
BLAKE AuST
Smooth11981, just realised I have not done enough posts or smiley's for PM's
You can let me know what you were going to say via
http://www.f650gs.crossroadz.com.au/ContactGS.html
Last edited by WayneC; 06-16-2012 at 08:31 AM.
You can download the zip from: http://phenoboy.kapsi.fi/testo
I'm constantly updating it - it has now features for plotting live graph of selected values. I don't consider this as "ready" but you can do something with it.
You can pause the graph by pressing some key on the window. This stops receiving values for that window and other windows values should be updating faster.
Pausing may sound funny but the fact is that at least my DME can transfer data (one value from ECU) at around 150-200ms. If you have 5 or more windows receiving values refreshing speed per window is about one per second. Actually one of the main reasons for making this program was that I wanted to see lambdaintegrator values with maximum refresh speed. To see better lambda's reactions and find vacuum leaks easier. For this purpose INPA was too slow because in one screen you can see ~10 values. You can't see well enough small changes there.
Ctrl+E takes screenshot of current window, Ctrl+S saves whole window data as CSV.
![]()
Last edited by pheno; 06-19-2012 at 09:00 AM.
E61 520d LCI
Check out TestO - free datalogger for BMW. Includes support for: AEM, PLX, 14point7, Innovate (through SDK)
Very cool, pheno. Keep up the good work!
Thanks! Yes, this is just a sort of hobby project I do on my spare time. Maybe I'll implement some logging playback function too.
Your logger looks very pro ! I very much like your idea that it runs as a standalone program. I guess in the end it's just a matter of sending and receiving serial data to/from ECU. You really should port your logger to linux too. Think about it running on Raspberry Pi with small LCD for example. Big potential I'd say. If I had the time and your knowledge maybe I'd give it a try![]()
E61 520d LCI
Check out TestO - free datalogger for BMW. Includes support for: AEM, PLX, 14point7, Innovate (through SDK)
Will consider Linux for sure.Android is also an option I may pursue as well as standalone LCD display units.
hi pheno,
I am getting error when trying program "testo-07-Jul-2012":
<<<<The Program can't start becuase MSVCR100.dll is missing from your computer....>>>>.
What versions/package/ Microsoft Visual C++ is needed for XP SP3 install ?
I don't want install all versions.
Thanks
Hi,
Thanks for pointing this out!
You need VC++ 10 redistributable package. You can dOwnload from here:
Microsoft Visual C++ 2010 Redistributable Package (x86)
http://www.microsoft.com/download/en...s.aspx?id=5555
Microsoft Visual C++ 2010 Redistributable Package (x64)
http://www.microsoft.com/download/en....aspx?id=14632
It might be a good idea for me to statically link that dll into the main exe to overcome this problem.
btw: newest version should be dated: 12-Jul-2012.zip the folder is actually 07-Jul-2012 which is wrong
What cars are you working on ? Has it worked ok ?
if you have any feature request just let me know![]()
Last edited by pheno; 08-09-2012 at 04:00 PM.
E61 520d LCI
Check out TestO - free datalogger for BMW. Includes support for: AEM, PLX, 14point7, Innovate (through SDK)
I'd love to try this out, but I get an error on start up that tells me api32.dll is missing.
I see some posts with that dll error when installing INPA. Do I need it to run your program?
Thanks for the interest. Yes, you need working INPA install. Api32.dll comes with EDIABAS/INPA install and it is located at c:\ediabas\bin. api32.dll needs to be in 'path' - it is a system variable and usually you have to manually add it to path after INPA install.
You can also copy api32.dll to the same directory that testo.exe is located.
E61 520d LCI
Check out TestO - free datalogger for BMW. Includes support for: AEM, PLX, 14point7, Innovate (through SDK)
All testing and working well on an '01 M5 trying to track down a lambda sensor error.
Top work!
Giftschrank Projekt
E61 520d LCI
Check out TestO - free datalogger for BMW. Includes support for: AEM, PLX, 14point7, Innovate (through SDK)
This is fantastic!
Will this allow me to dump all logged data of more than one item to a CSV file?
Also, what does your program's communication with the DME look like?
testo - Hi DME.
DME - hello.
testo - can you send data for lambda sensor # 1?
DME - data for lambda sensor # 1 as follows.
DME - 14.7AFR
testo - can you send data for MAF sensor?
DME - data for MAF sensor as follows.
DME - 12.5 kg/hr.
testo - can you send data for lambda sensor # 1?
DME - data for lambda sensor # 1 as follows.
DME - 14.7AFR
testo - can you send data for MAF sensor?
DME - data for MAF sensor as follows.
DME - 12.5 kg/hr.
The Subaru datalogging/tuning program, RomRaider, used to be like this. Until someone figured out that instead of requesting the data item every time, it would be faster to just give the ECU a list of data items to send back as fast as it could. So it would go something like this.
testo - can you send lambda sensor, MAF, injector pulsediwth, tps?
DME - 14.7AFR
DME - 12.5 kg/hr
DME - 3.5ms
DME - 56%
DME - 14.6AFR
DME - 14.4 kg/hr
DME - 4.1ms
DME - 76%
And so on and so forth. I wonder if a similar command exists for BMW DME's because this increased the logging speed by a factor of 4 on the Subaru ECU.
Also, do you have a script of commands you're sending out via the serial port to achieve this? I can play around with it from hyper terminal or something if I knew how to say 'hi' to the DME etc.
Last edited by mrf; 08-13-2012 at 03:10 PM.
Thanks! Sorry, that is not possible at the moment. I just have to find some time to implement that. My summer holiday just ended so I should have more time although my two sons are keeping me very busy. I'm thinking about putting the source code available for everyone - maybe someone has interest to develop this program further.
Copy from m3cutters forum (someone else asked for this feature also):
Although logging multiple values at once it's not fully supported at the moment you could try something like this
- Start the jobs you want to log (all windows should be visible and graphs running).
- In the main window select: File->reset all graphs. This will reset the timer for all three windows.
- Press ctrl+s to save CSV file in each window.
Ok, this is not exactly what you wanted... But this will produce three CSV files that are in sync with each other. The first value in the CSV is time elapsed in milliseconds from the beginning. If you want to look at these in one graph you could combine perhaps these three file contents into one with some program and then use this in excel or openoffice. You'll have to sort the column too. Haven't tried.
This is very interesting question. I'm using EDIABAS Api for communicating with DME and other ECU's. That's the same INPA is using. I'm not sending any raw commands using serial port.Also, what does your program's communication with the DME look like?
testo - Hi DME.
DME - hello.
testo - can you send data for lambda sensor # 1?
DME - data for lambda sensor # 1 as follows.
DME - 14.7AFR
testo - can you send data for MAF sensor?
DME - data for MAF sensor as follows.
DME - 12.5 kg/hr.
testo - can you send data for lambda sensor # 1?
DME - data for lambda sensor # 1 as follows.
DME - 14.7AFR
testo - can you send data for MAF sensor?
DME - data for MAF sensor as follows.
DME - 12.5 kg/hr.
The Subaru datalogging/tuning program, RomRaider, used to be like this. Until someone figured out that instead of requesting the data item every time, it would be faster to just give the ECU a list of data items to send back as fast as it could. So it would go something like this.
testo - can you send lambda sensor, MAF, injector pulsediwth, tps?
DME - 14.7AFR
DME - 12.5 kg/hr
DME - 3.5ms
DME - 56%
DME - 14.6AFR
DME - 14.4 kg/hr
DME - 4.1ms
DME - 76%
And so on and so forth. I wonder if a similar command exists for BMW DME's because this increased the logging speed by a factor of 4 on the Subaru ECU.
Also, do you have a script of commands you're sending out via the serial port to achieve this? I can play around with it from hyper terminal or something if I knew how to say 'hi' to the DME etc.
Can you say how fast roughly is refreshing speed with your DME ?
It would be so nice to have the values updating faster. But I haven't found a way to do that. And I'm not convinced there exists such a way. I guess in INPA they would have used fastest possible. This is the main reason I designed the program in this way that you can watch only one (job) value if you want.
Besides DME you can also communicate with other ECU you want. Just convert the proper .PRG file into .BIV using xtract.exe and add that under 'jobs' folder.
E61 520d LCI
Check out TestO - free datalogger for BMW. Includes support for: AEM, PLX, 14point7, Innovate (through SDK)
pheno,
I think your software is really great! Would you consider making it an open source project (i.e., on Sourceforge) so that it can be enhanced and maintained by the community?
I am currently trying to track down an intermittent problem on my E90 (error 0x2D2E, angle of throttle valve - intake pipe underpressure) and I think it could help but there are a number of issues that I encountered and improvements that I would like to see. I have some time available to help (as well as an interest in fixing my own engine problem), therefore I could personally offer my help to address certain items. For example:
*Software (testo) crashes randomly
*EDIBIAS error 95 randomly keeps popping up (comes and goes, leading to gaps in the data log)
*Need a load/save templates function, so that you can graph a predefined data set quickly and repeatably.
*Need a function similar to ctrl-s for saving all graphs at once
*Need to save all graphs at once to a single file, optionally using something like linear interpolation to estimate data values for a given time index (so that correlation study can be performed on the data).
*Would be nice to be able to plot multiple items on the same graph, including calulated values (i.e., arithmetic operations: x/y, x*10, etc.)
*Would be nice to be able to load previously saved graphs, or otherwise come up with recommended external tool(s) for data visualization/analysis.
Thanks,
derukey
If you guys can get it to export to csv there's MegaLog Viewer and a very advanced graphing program that I'm working on which will be available in the near future.
Thanks! Yes, I've thought about it. But not decided yet.
I appreciate your help. Thanks for the ideas.
Sorry to hear about crashes. Haven't crashed on my computer even once but that of course doesn't mean anything.
I've done some enhancements already and actually reworked the part accessing the ediabas api. Found and fixed a couple of bugs. GUI is now MDI style and it can save all individual graphs in one go. I'm going to release this one soon and then consider again about releasing sources.
The plot widget, QwtPlot, I'm using is quite smart already and can do easily various scaling stuff among multiple graphs, etc. You may want to take a peek at what it can do.
Logging to file is done but I need to decide on data format. I'd be glad to hear if you have any suggestions on that one. The same file could be used for displaying the data in another window.
Well, it can save as .csv already. Megalog viewer - looks nice but you have to pay for it ?
Last edited by pheno; 09-03-2012 at 02:12 AM. Reason: Automerged Doublepost
E61 520d LCI
Check out TestO - free datalogger for BMW. Includes support for: AEM, PLX, 14point7, Innovate (through SDK)
E61 520d LCI
Check out TestO - free datalogger for BMW. Includes support for: AEM, PLX, 14point7, Innovate (through SDK)
Bookmarks