Underdog Posted March 29, 2010 Share Posted March 29, 2010 I'm starting this post to get some help from the guys who are really into datalogging and the whole open-source thing. With my twinscroll project at the point where it is running pretty smooth, and all the little gremlins taken care of, I can finally focus on getting my datalogging setup to monitor the engine at all times. My plan is to utilize the MicroSD logging that is now supported on the OPv2.0 and with my 8GB MicroSDHC card that I bought for $20 at Radioshack yesterday, I can get about ~20yrs worth of data before needing to dump it to my computer. I have a couple basic issues that I need to sort out: 1. What data to log for general health of the engine and for my own curiosity? Here's what I have been monitoring and what I would like to add: A/F Correction #1 (%)A/F Learning #1 (%)A/F Sensor #1 (AFR)CL/OL Fueling* (status)Engine Load (2-byte)** (g/rev)Engine Speed (RPM)Ignition Total Timing (degrees)Knock Sum* (count)Manifold Relative Pressure (PSI)Throttle Opening Angle (%) Adding: LC1 OutputMass Airflow (g/s) - Unless this can be derived from Engine Load.Closed Loop Fueling Target (2-byte) - @ NSFW's recommendation. 2. I don't know how to parse all this information that I am collecting. I realize this is specific to my goals, so when it comes to plotting how my turbo is working on it's compressor map this is very straight-forward. However for monitoring general health, I don't really know what to do. 3. Finally, I don't know how to setup the logcfg.txt file for standalone logging. It seems like there are a lot of options for setting up parameters, scaling them, and grouping them, and I don't know the most efficient way to do it. I think I would like to log any time the car is 1) running and 2) coolant temperature is >= 160 (or something). Also, I would like to start a new log any time I go WOT. Any insight would be appreciated... In the meantime I am going to take a stab at the logcfg.txt file and post it up for review. The Crimson Dynamo Link to comment Share on other sites More sharing options...
fishbone Posted March 29, 2010 Share Posted March 29, 2010 Pardon the newbie question but ... what hardware are you using to datalog? Link to comment Share on other sites More sharing options...
Underdog Posted March 29, 2010 Author Share Posted March 29, 2010 Right now I use my laptop with RomRaider connected via Tactrix Open Port v2.0 (OPv2.0). The OPv2.0 has a built in microSD card slot so you can datalog without hooking up a computer, but you need to specify what parameters to log with a logcfg.txt file in the root directory of the microSD card. Here is the thread on OpenECU.org: http://forums.openecu.org/viewtopic.php?f=57&t=4319&hilit=microsd+logging The Crimson Dynamo Link to comment Share on other sites More sharing options...
fishbone Posted March 29, 2010 Share Posted March 29, 2010 Well, apologies for threadjacking with such a noob question, I was not aware of the existence of said OPV2.0. That is indeed a neat thing. I assume the same trigger to start/stop logging (rear defroster)? I have a list of parameters I was told to datalog but I am hesitant because I am a newbie at logging and don't want to potentially post the wrong thing. Link to comment Share on other sites More sharing options...
fishbone Posted March 29, 2010 Share Posted March 29, 2010 Ah, the heck with it. Others can correct me if I am wrong Engine Load (2-byte)** (g/rev) Engine Speed (rpm) IAM (4-byte)* (multiplier) Ignition Total Timing (degrees) Knock Sum* (count) Manifold Relative Pressure (4-byte)* (psi relative) Mass Airflow (g/s) Mass Airflow Sensor Voltage (V) Primary Wastegate Duty Cycle Angle (%) Throttle Opening Angle (%) Link to comment Share on other sites More sharing options...
Underdog Posted March 29, 2010 Author Share Posted March 29, 2010 It's no problem man... I'm a newbie to this stuff too. There are a wide variety of triggers you can use. From what I have seen you can use any switch in the OBD2 data chain, or you can use logic functions with engine parameters. For example, you can make it so that it only logs when RPM>0, coolant temp >=160, and the cruise control button is "on". What's more, you can have it start a new log any time there is some additional criteria... like every time you go WOT it starts a new log. Cool huh? The Crimson Dynamo Link to comment Share on other sites More sharing options...
Underdog Posted March 29, 2010 Author Share Posted March 29, 2010 The problem is the logcfg.txt file needs to be formatted in programming language. The parameter ID, the RPN scaling, the groups, bits, etc... all things I'm not sure what to do with. Also, I don't know which type of ECU I have... CAN or K-line? For example: type = ssmcan paramname = Engine_Speed(rpm) paramid = 0x00000E databits = 16 scalingrpn = x,4,/ paramname = Ignition_Total_Timing(degrees) paramid = 0x000011 databits = 8 scalingrpn = x,128,-,2,/ paramname = Intake_Air_Temperature© paramid = 0x000012 databits = 8 scalingrpn = x,40,- paramname = Coolant_Temperature© paramid = 0x000008 databits = 8 scalingrpn = x,40,- paramname = Mass_Airflow(g/s) paramid = 0x000013 databits = 16 scalingrpn = x,100,/ paramname = Throttle_Opening_Angle(%) paramid = 0x000015 databits = 8 scalingrpn = x,100,*,255,/ paramname = Mass_Airflow_Sensor_Voltage(V) paramid = 0x00001D databits = 8 scalingrpn = x,50,/ paramname = Primary_Wastegate_Duty_Cycle(%) paramid = 0x000030 databits = 8 scalingrpn = x,100,*,255,/ paramname = Fine_Learning_Knock_Correction(degrees) paramid = 0x000199 databits = 8 scalingrpn = x,0.25,*,32,- paramname = A/F_Learning_#1_A_(Stored)*(%) paramid = 0xFF2C90 isfloat = 1 scalingrpn = x,100,* paramname = A/F_Learning_#1_B_(Stored)*(%) paramid = 0xFF2C98 isfloat = 1 scalingrpn = x,100,* paramname = A/F_Learning_#1_C_(Stored)*(%) paramid = 0xFF2CA0 isfloat = 1 scalingrpn = x,100,* paramname = Engine_Load_(1-byte)**(g/rev) paramid = 0xFF6A5F databits = 8 scalingrpn = x,.015625,* paramname = Feedback_Knock_Correction_(1-byte)**(degrees) paramid = 0xFF6A69 databits = 8 scalingrpn = x,.3515625,*,45,- paramname = IAM_(1-byte)**(multiplier) paramid = 0xFF6A6B databits = 8 scalingrpn = x,.0625,* paramname = Manifold_Relative_Pressure_(4-byte)*(psi_relative) paramid = 0xFF643C isfloat = 1 scalingrpn = x,0.01933677,* paramname = mylc1.afr paramid = 0x0102 ; get lambda from first LC-1 scalingrpn = x,14.7,* ; scale to an AFR paramname = defogger_sw paramid = 0x64 databits = 1 offsetbits = 5 isvisible = 0 conditionrpn = defogger_sw,1,== action = start conditionrpn = defogger_sw,0,== action = stop The Crimson Dynamo Link to comment Share on other sites More sharing options...
Ridgeracer Posted March 29, 2010 Share Posted March 29, 2010 Ah, the heck with it. Others can correct me if I am wrong Engine Load (2-byte)** (g/rev) Engine Speed (rpm) IAM (4-byte)* (multiplier) Ignition Total Timing (degrees) Knock Sum* (count) Manifold Relative Pressure (4-byte)* (psi relative) Mass Airflow (g/s) Mass Airflow Sensor Voltage (V) Primary Wastegate Duty Cycle Angle (%) Throttle Opening Angle (%) Log either mass airflow g/s or sensor volts. You don't need both. Also just check the IAM prior to logging. FWIW...seems easier to just log with the laptop. "Gimme mines Balboa...Gimme mines".....Clubber Lang - Mr. T Link to comment Share on other sites More sharing options...
LGTspecB1657615261 Posted March 29, 2010 Share Posted March 29, 2010 Once I get home I can share my logcofg.txt that I use. I have it automatically come on with coolant temperature as well. You will love microSD datalogging. Its so easy. You get boatloads of data and pretty good sampling rates. I never did get LC-1 working but I did not dive that deep into it either. Link to comment Share on other sites More sharing options...
LGTspecB1657615261 Posted March 29, 2010 Share Posted March 29, 2010 FWIW...seems easier to just log with the laptop. Debatable. You can also setup to log with one of the car's switches... so if you just keep the Tactrix plugged in all the time, if you are ever in the mood to log, just trigger it. You can log whenever you want w/o the need for a laptop or any setup. Its great for logging on the fly. Its also great for logging in CL to scale the maf. I logged all my CL driving for weeks and summarized it... you can really fine-tune the maf for daily driving. I just got in the car and drove, it did the logging automatically for me. Link to comment Share on other sites More sharing options...
Underdog Posted March 29, 2010 Author Share Posted March 29, 2010 Debatable. You can also setup to log with one of the car's switches... so if you just keep the Tactrix plugged in all the time, if you are ever in the mood to log, just trigger it. You can log whenever you want w/o the need for a laptop or any setup. Its great for logging on the fly. Its also great for logging in CL to scale the maf. I logged all my CL driving for weeks and summarized it... you can really fine-tune the maf for daily driving. I just got in the car and drove, it did the logging automatically for me. Exactly... I hate having the cable draped over my steering column and I find myself constantly looking at the computer to check the knock sum, and then alter my driving based on it. It's uncomfortable and unsafe. If I could figure out how to properly set it up for normal CL logging and occasional conditional logging (like if I want to do a WOT run to plot on my compressor map) then it will be perfect. The Crimson Dynamo Link to comment Share on other sites More sharing options...
enthusiast Posted March 29, 2010 Share Posted March 29, 2010 Checkout this post on RomRaider http://www.romraider.com/forum/post58238.html My mod list Link to comment Share on other sites More sharing options...
Underdog Posted March 30, 2010 Author Share Posted March 30, 2010 That is awesome enthusiast. Thanks! I will play with it at lunch and try to make something to start from. The Crimson Dynamo Link to comment Share on other sites More sharing options...
Underdog Posted March 30, 2010 Author Share Posted March 30, 2010 So with my '06 (ECUID A2WF200N) do I have the K-line or CAN ECU type? The Crimson Dynamo Link to comment Share on other sites More sharing options...
enthusiast Posted March 30, 2010 Share Posted March 30, 2010 So with my '06 (ECUID A2WF200N) do I have the K-line or CAN ECU type? K-Line My mod list Link to comment Share on other sites More sharing options...
Underdog Posted March 30, 2010 Author Share Posted March 30, 2010 Thanks again! Here is what I got using your GUI. Next step will be adding a line for creating a new file any time I go WOT, and finally adding my LC1 when I get it wired in. type=ssmk paramname = A/F_Correction_#1 paramid = 0x000009 databits = 8 scalingrpn = x,128,-,100,*,128,/ paramname = A/F_Learning_#1 paramid = 0x00000A databits = 8 scalingrpn = x,128,-,100,*,128,/ paramname = Engine_Speed paramid = 0x00000E databits = 16 scalingrpn = x,4,/ paramname = Ignition_Total_Timing paramid = 0x000011 databits = 8 scalingrpn = x,128,-,2,/ paramname = Mass_Airflow paramid = 0x000013 databits = 16 scalingrpn = x,100,/ paramname = Throttle_Opening_Angle paramid = 0x000015 databits = 8 scalingrpn = x,100,*,255,/ paramname = Manifold_Relative_Pressure paramid = 0x000024 databits = 8 scalingrpn = x,128,-,37,*,255,/ paramname = A/F_Sensor_#1 paramid = 0x000046 databits = 8 scalingrpn = x,128,/,14.7,* paramname = CL/OL_Fueling* paramid = 0xFF6FA5 databits = 8 scalingrpn = x,6,+ paramname = Engine_Load_(2-byte)** paramid = 0xFF5328 databits = 16 scalingrpn = x,.00006103516,* paramname = Knock_Sum* paramid = 0xFF5D08 databits = 8 scalingrpn = x paramname = Closed_Loop_Fueling_Target_(2-byte)* paramid = 0xFF5344 databits = 16 scalingrpn = x,.001794433,* ;-------------triggers--------------- ; Change xxx and yyyy to your desired ; RPM settings conditionrpn = Engine_Speed,xxx,> action = start conditionrpn = Engine_Speed,yyyy,== action = stop The Crimson Dynamo Link to comment Share on other sites More sharing options...
Underdog Posted March 30, 2010 Author Share Posted March 30, 2010 I modified the code so that it will only log when the car is on and warm. Also, it will start a new log any time I go above 75% throttle. What do you think? type=ssmk paramname = A/F_Correction_#1 paramid = 0x000009 databits = 8 scalingrpn = x,128,-,100,*,128,/ paramname = A/F_Learning_#1 paramid = 0x00000A databits = 8 scalingrpn = x,128,-,100,*,128,/ paramname = Engine_Speed paramid = 0x00000E databits = 16 scalingrpn = x,4,/ paramname = Ignition_Total_Timing paramid = 0x000011 databits = 8 scalingrpn = x,128,-,2,/ paramname = Mass_Airflow paramid = 0x000013 databits = 16 scalingrpn = x,100,/ paramname = Throttle_Opening_Angle paramid = 0x000015 databits = 8 scalingrpn = x,100,*,255,/ paramname = Manifold_Relative_Pressure paramid = 0x000024 databits = 8 scalingrpn = x,128,-,37,*,255,/ paramname = A/F_Sensor_#1 paramid = 0x000046 databits = 8 scalingrpn = x,128,/,14.7,* paramname = CL/OL_Fueling* paramid = 0xFF6FA5 databits = 8 scalingrpn = x,6,+ paramname = Engine_Load_(2-byte)** paramid = 0xFF5328 databits = 16 scalingrpn = x,.00006103516,* paramname = Knock_Sum* paramid = 0xFF5D08 databits = 8 scalingrpn = x paramname = Closed_Loop_Fueling_Target_(2-byte)* paramid = 0xFF5344 databits = 16 scalingrpn = x,.001794433,* paramname = Coolant_Temperature paramid = 0x000008 databits = 8 scalingrpn = 32,9,x,40,-,*,5,/,+ ;isvisible = 0 ; Will track coolant temperature for first log to prove it works, then make it invisible ;-------------triggers--------------- ; Engine speed must be greater than zero AND coolant temperature > 150 for log to start conditionrpn = Engine_Speed,0,>,Coolant_Temperature,150,>=,&& action = start ; Log stops when engine is shut off conditionrpn = Engine_Speed,0,== action = stop ; New log is created when throttle angle goes above 75% conditionrpn = Throttle_Opening_Angle,75,>,#Throttle_Opening_Angle,75,<=,&& action = newfile The Crimson Dynamo Link to comment Share on other sites More sharing options...
Underdog Posted March 31, 2010 Author Share Posted March 31, 2010 Worked like a charm enthusiast! I upped the coolant temp threshold to 175C (90% of steady-state operating temp) so it starts logging within ~5mins of starting the car. I also made coolant temp invisible so it doesn't increase my file size. The next thing I want to learn is the "groups" so you can improve the capture rate of some parameters at the expense of the less important parameters. It seems like it's only sampling every .25 seconds though. Is that normal? The Crimson Dynamo Link to comment Share on other sites More sharing options...
enthusiast Posted March 31, 2010 Share Posted March 31, 2010 It seems like it's only sampling every .25 seconds though. Is that normal? There are a couple of posts by Colby where he states that the size of the card can affect the capture speed (FAT32). I think that the class of the card can hurt as well. What class is the card in your OP2? There should be a number on the face of your card with a C or O around it (cannot remember). My mod list Link to comment Share on other sites More sharing options...
Underdog Posted March 31, 2010 Author Share Posted March 31, 2010 Dang. It is an 8GB MicroSDHC card and it is stamped with a small C with a "2" in it. I was looking at a 4GB card but this was only a couple bucks more. Looks like I made the wrong choice. I wonder if I partition it, if it would help? The Crimson Dynamo Link to comment Share on other sites More sharing options...
enthusiast Posted April 2, 2010 Share Posted April 2, 2010 Dang. It is an 8GB MicroSDHC card and it is stamped with a small C with a "2" in it. I was looking at a 4GB card but this was only a couple bucks more. Looks like I made the wrong choice. I wonder if I partition it, if it would help? I have been meaning to experiment with this. I am going to create 4 ~2GB partitions and format them in FAT16 (much faster than FAT32). I will see if OP2 can can FAT16 and report back (should since it is small writes). Although my microSD is a class 6 so it will be interesting to see what gains I can make. My mod list Link to comment Share on other sites More sharing options...
enthusiast Posted April 2, 2010 Share Posted April 2, 2010 The next thing I want to learn is the "groups" so you can improve the capture rate of some parameters at the expense of the less important parameters. Be careful not to update to the latest firmware as there is some problems with RR and the new ECUFlash. My mod list Link to comment Share on other sites More sharing options...
Underdog Posted April 2, 2010 Author Share Posted April 2, 2010 Yeah, unfortunately I already did that on day one! I haven't needed to use RR since getting the mSD logging going and LV still works, so I'm not worried about it. Do you think they'll fix the bugs in a subsequent rev.? Or is it an inherent problem going forward? I wonder what would happen if you did the four 2GB partitions and put a logcfg.txt in each one? How would the OP2 handle that? In the grand scheme of things I still have no idea how to make use of all this data, so it is all academic for me. The Crimson Dynamo Link to comment Share on other sites More sharing options...
dschultz Posted April 2, 2010 Share Posted April 2, 2010 It seems like it's only sampling every .25 seconds though. Is that normal? Sample times are not microSD dependent here. If you use K-line, which you do then yes this is normal. K-line is half-duplex and operates at 4800bps. The more parameters you log the longer the query interval. Two parameters: RPM, Throttle = 0.08 secs per sample Nine parameters like for a WOT run = 0.15 secs per sample Basically each parameter adds about 0.012 secs to the query interval. As for the updated firmware in the OP2, you should still be able to use the older version 1.42 of ECUFlash without a problem. If you installed 1.43 just uninstall it and the drivers and go back to 1.42. I saw a post about that but can't find it ATM. Dale Link to comment Share on other sites More sharing options...
keithk831 Posted April 2, 2010 Share Posted April 2, 2010 So I just tried using the standalone logging feature but it didn't record anything Here's my logcfg.txt file: type=ssmk paramname = Engine_Speed paramid = 0x00000E databits = 16 scalingrpn = x,4,/ paramname = Ignition_Total_Timing paramid = 0x000011 databits = 8 scalingrpn = x,128,-,2,/ paramname = Mass_Airflow paramid = 0x000013 databits = 16 scalingrpn = x,100,/ paramname = Throttle_Opening_Angle paramid = 0x000015 databits = 8 scalingrpn = x,100,*,255,/ paramname = Mass_Airflow_Sensor_Voltage paramid = 0x00001D databits = 8 scalingrpn = x,50,/ paramname = Primary_Wastegate_Duty_Cycle paramid = 0x000030 databits = 8 scalingrpn = x,100,*,255,/ paramname = Engine_Load_(2-byte)** paramid = 0xFF530C databits = 16 scalingrpn = x,.00006103516,* paramname = IAM_(1-byte)** paramid = 0xFF5339 databits = 8 scalingrpn = x,.0625,* paramname = Manifold_Relative_Pressure_(4-byte)* paramid = 0xFF4F34 databits = 32 scalingrpn = x,0.01933677,* paramname = Knock_Sum* paramid = 0xFF5CEC databits = 8 scalingrpn = x ;-------------triggers--------------- paramname = defogger_sw paramid = 0x64 databits = 1 offsetbits = 5 isvisible = 0 conditionrpn = defogger_sw,1,== action = start conditionrpn = defogger_sw,0,== action = stop Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.