Waiting for 62500 patch! Why use 15625, while you can use 62500 baud
sql_dev wrote:dolphin wrote:sql_dev wrote:How can I tell if the new firmware was applied? Is there any pop-up window or message?
Just connect the cable to the car and press read or compare, in the ecuflash log will be written, what firmware you are using
So, it flashed something...But the multi-file issue is still here, not affected by the reflash at all. As soon as I add a parameter with long ID (like this: 0xFF6A00), OP2 starts making many-many files.
...
paramname=LoadMUT2Byte
paramid=0x00
scalingrpn=x,0.3125,*Tephra wrote:dont u need to say databits=16 to get 2bytes?
; uncomment the line below to minimize the information written to logcfg.out
; this will greatly decrease the startup time to begin logging if you already
; have a working logcfg.txt without any problems
;
; debug=noout
; sample logging configuration file for openport 2.0
; must be named logcfg.txt and be placed in the root directory of the
; microSD card inserted in the openport in order to work
; this sample logs using the SSM protocol over the K-line, which works
; for both CAN-based and older Subarus
;----------------ssm----------------
; log channel settings
; we are logging SSM via the K-line
type=ssmk
; each parameter gets a name you chose
paramname = RPM
; the paramid is used in the SSM request
paramid = 0x00000E
; how many bits in the returned value (defaults to 8, so you usually don't need to specify this)
databits = 16
; how to scale the results using a RPN (http://en.wikipedia.org/wiki/Reverse_Polish_notation) notation, with data and operators seperated by commas
; the operators are as following:
; + : add
; - : subtract
; * : multiply
; / : divide
;
; x : represents the raw (unscaled) parameter
; 123.456 : example of a constant
;
; if no scaling is specified, the raw value will be used
;
; the OP2 has no FPU - it must do floating point calculations in software which can
; create performance issues, so be efficient in your RPN expressions by doing the following:
;
; * minimize the number of operations; e.g. ((x * 2) + 1) * 2 => x * 4 + 2
; * don't divide by a constant when you can multiply instead; e.g. x / 4 => x * 0.25
; * don't make constant expressions that can instead be pre-calculated; e.g. x * 3 / 4 => x * 0.75
scalingrpn = x,0.25,*
; continue specifying other parameters
; paramname = load
; paramid = 0x07
; scalingrpn = x,0.3921569,*
; commented out here is an example for reading a direct RAM parameter, a 32-bit float in this case
; paramname = load
; paramid = 0xFF6578
; isfloat = 1 ; the raw data is a 32-bit floating point number (no need to set databits = 32)
; paramname = coolant_temp
; paramid = 0x08
; scalingrpn = x,0.40,-
; priority = 2
; paramname = battery_volts
; paramid = 0x1C
; scalingrpn = x,0.08,*
; priority = 2
; paramname = mrp
; paramid = 0x24
; scalingrpn = x,128,-,0.145098,*
; paramname = IAM
; paramid = 0xF9
; scalingrpn = x,0.0625,*
paramname = speed
paramid = 0x000010
scalingrpn = x
paramname = IAM4
paramid = 0xFF2AD4
; databits = 32
isfloat = 1
scalingrpn = x
paramname = ThrottleOpeningAngle
paramid = 0x000015
scalingrpn = x,0.3921569,*
paramname = CLOLStat
paramid = 0xFF8D69
scalingrpn = x,6,+
paramname = load4grev
paramid = 0xFF6678
; databits = 32
isfloat = 1
scalingrpn = x
paramname = est_afr4
paramid = 0xFF6C08
; databits = 32
isfloat = 1
scalingrpn = 14.7,1,x,+,/
; scaling = 14.7/(1+x)
paramname = AFR2
paramid = 0xFF699E
databits = 16
scalingrpn = 14.7,x,0.0001220703,*,*
; scaling = (x*.0001220703)*14.7
paramname = Pri_OL_Enrich
paramid = 0xFF6982
databits = 16
scalingrpn = 14.7,1,x,0.00003051758,*,+,/
; scaling = 14.7/(1+(x*.00003051758))
paramname = MassAirFlow
paramid = 0x000013
databits = 16
scalingrpn = x,0.01,*
paramname = MAFv
paramid = 0x00001D
scalingrpn = x,0.02,*
paramname = IAT
paramid = 0x000012
scalingrpn = x,40,-
; priority = 2
paramname = Ign_Tot_Timing
paramid = 0x000011
scalingrpn = x,128,-,0.5,*
paramname =kca4
paramid = 0xFF7398
; databits = 32
isfloat = 1
scalingrpn = x
paramname = FKC4
paramid = 0xFF739C
; databits = 32
isfloat = 1
scalingrpn = x
paramname = FLKC1
paramid = 0xFF69B3
scalingrpn = x,0.3515625,*,45,-
; scaling = (x*.3515625)-45
paramname = WGDC
paramid = 0x000030
scalingrpn = x,0.3921569,*
paramname = tgt_boost4
paramid = 0xFF641C
; databits = 32
isfloat = 1
scalingrpn = 0.001333224,x,760,-,*
; scaling = (x-760)*0.001333224
paramname = MAP
paramid = 0x00000D
scalingrpn = x, 0.01000416, *
; scaling = x*37/255/14.50377
paramname = ATM
paramid = 0x000023
scalingrpn = x, 0.01000416, *
; scaling = x*37/255/14.50377
paramname = IPW ; injector #1 pulse width
paramid = 0x000020
scalingrpn = x,0.256,*
; some samples of logging "bitfield" values that are not whole bytes
; if you want to log more that one of these efficently, group them by
; paramid and the OP2 will only issue a single request to get all of
; the bits within each paramid
; paramname = ignition_sw
; paramid = 0x62
; databits = 1
; offsetbits = 3
; to still acquire a parameter (perhaps for triggering or a calculation)
; but not record it in the log, set isvisible equal to zero (it is 1 by default)
; isvisible = 0
; paramname = AC_sw
; paramid = 0x62
; databits = 1
; offsetbits = 1
; isvisible = 0
; paramname = defogger_sw
; paramid = 0x64
; databits = 1
; offsetbits = 5
; isvisible = 0
; paramname = blower_sw
; paramid = 0x64
; databits = 1
; offsetbits = 4
; isvisible = 0
; paramname = clutch_sw
; paramid = 0x121
; databits = 1
; offsetbits = 7
; paramname = brake_sw
; paramid = 0x121
; databits = 1
; offsetbits = 3
;----------------inno----------------
type=inno
; log from an innovate bus via the 3/32" jack
; currently the LC-1 is the only supported device
; in the "inno" case the parameters are already pre-defined, you just
; need to reference them by name so that they are included in the log
; output. note that these parameters won't become valid until the LC-1
; has been calibrated and the sensor is warmed up.
paramname = inno.afr
; paramname = inno.lambda
;----------------adc----------------
; type=adc ; log from built in ADC channels
; paramname=battvolts
; paramid=16 ; paramid is pin number on OBD connector
; valid pins are 8 and 16
; values are pre-scaled to millivolts
; scalingrpn=x,0.001,* ; here we scale to volts
; paramname=ignvolts ; on newer subarus pin 8 is connected to the ignition voltage
; paramid=8 ; paramid is pin number on OBD connector
; valid pins are 8 and 16
; values are pre-scaled to millivolts
; scalingrpn=x,0.001,* ; here we scale to volts
;-------------calculated parameter---------------
;
; you can derive calculated parameters from other parameters
; using RPN expressions
;
type = calc
paramname = IDC
scalingrpn = RPM,IPW,*,0.0008333333,*
paramname = MRP_Corrected
scalingrpn = MAP,ATM,-
;-------------triggers---------------
;
; note that parameters must be previously defined
; before defining triggers using them
;
; triggers allow you to control when logging starts and stops
; this example sets up triggers such that logging only occurs
; when the engine is running (RPM > 0)
;
; triggers consist of a condition (a RPN expression using comparison operators)
; and an action. the RPN comparison operators match those in the C language:
;
; > < >= <= == != && ||
;
; if the condition evaluates to a non-zero value, that action is taken
conditionrpn = RPM,0,>
action = start
conditionrpn = RPM,0,==
action = stop
; here is a second triggering example using the rear defogger switch
; uncomment it and comment out the sample above to use it
;conditionrpn = defogger_sw,1,==
;action = start
;conditionrpn = defogger_sw,0,==
;action = stop
14: type=ssmk
: name[type,8] value[ssmk,0,0.000000]
15: ; each parameter gets a name you chose
16: paramname = RPM
: name[paramname,16] value[RPM,0,0.000000]
17: ; the paramid is used in the SSM request
18: paramid = 0x00000E
: name[paramid,17] value[0x00000E,14,0.000000]
19: ; how many bits in the returned value (defaults to 8, so you usually don't need to specify this)
20: databits = 16
: name[databits,22] value[16,16,16.000000]
21: ; how to scale the results using a RPN (http://en.wikipedia.org/wiki/Reverse_Polish_notation) notation, with data and operators seperated by commas
22: ; the operators are as following:
23: ; + : add
24: ; - : subtract
25: ; * : multiply
26: ; / : divide
27: ;
28: ; x : represents the raw (unscaled) parameter
29: ; 123.456 : example of a constant
30: ;
31: ; if no scaling is specified, the raw value will be used
32: ;
33: ; the OP2 has no FPU - it must do floating point calculations in software which can
34: ; create performance issues, so be efficient in your RPN expressions by doing the following:
35: ;
36: ; * minimize the number of operations; e.g. ((x * 2) + 1) * 2 => x * 4 + 2
37: ; * don't divide by a constant when you can multiply instead; e.g. x / 4 => x * 0.25
38: ; * don't make constant expressions that can instead be pre-calculated; e.g. x * 3 / 4 => x * 0.75
39: scalingrpn = x,0.25,*
: name[scalingrpn,18] value[x,0.25,*,0,0.000000]
40: ; continue specifying other parameters
41: ; paramname = load
42: ; paramid = 0x07
43: ; scalingrpn = x,0.3921569,*
44: ; commented out here is an example for reading a direct RAM parameter, a 32-bit float in this case
45: ; paramname = load
46: ; paramid = 0xFF6578
47: ; isfloat = 1 ; the raw data is a 32-bit floating point number (no need to set databits = 32)
48: ; paramname = coolant_temp
49: ; paramid = 0x08
50: ; scalingrpn = x,0.40,-
51: ; priority = 2
52: ; paramname = battery_volts
53: ; paramid = 0x1C
54: ; scalingrpn = x,0.08,*
55: ; priority = 2
56: ; paramname = mrp
57: ; paramid = 0x24
58: ; scalingrpn = x,128,-,0.145098,*
59: ; paramname = IAM
60: ; paramid = 0xF9
61: ; scalingrpn = x,0.0625,*
62: paramname = speed
: name[paramname,16] value[speed,0,0.000000]
63: paramid = 0x000010
: name[paramid,17] value[0x000010,16,0.000000]
64: scalingrpn = x
: name[scalingrpn,18] value[x,0,0.000000]
65: paramname = IAM4
: name[paramname,16] value[IAM4,0,0.000000]
66: paramid = 0xFF2AD4
: name[paramid,17] value[0xFF2AD4,16722644,0.000000]
67: ; databits = 32
68: isfloat = 1
: name[isfloat,24] value[1,1,1.000000]
69: scalingrpn = x
: name[scalingrpn,18] value[x,0,0.000000]
70: paramname = ThrottleOpeningAngle
: name[paramname,16] value[ThrottleOpeningAngle,0,0.000000]
71: paramid = 0x000015
: name[paramid,17] value[0x000015,21,0.000000]
72: scalingrpn = x,0.3921569,*
: name[scalingrpn,18] value[x,0.3921569,*,0,0.000000]
73: paramname = CLOLStat
: name[paramname,16] value[CLOLStat,0,0.000000]
74: paramid = 0xFF8D69
: name[paramid,17] value[0xFF8D69,16747881,0.000000]
75: scalingrpn = x,6,+
: name[scalingrpn,18] value[x,6,+,0,0.000000]
76: paramname = load4grev
: name[paramname,16] value[load4grev,0,0.000000]
77: paramid = 0xFF6678
: name[paramid,17] value[0xFF6678,16737912,0.000000]
78: ; databits = 32
79: isfloat = 1
: name[isfloat,24] value[1,1,1.000000]
80: scalingrpn = x
: name[scalingrpn,18] value[x,0,0.000000]
81: paramname = est_afr4
: name[paramname,16] value[est_afr4,0,0.000000]
82: paramid = 0xFF6C08
: name[paramid,17] value[0xFF6C08,16739336,0.000000]
83: ; databits = 32
84: isfloat = 1
: name[isfloat,24] value[1,1,1.000000]
85: scalingrpn = 14.7,1,x,+,/
: name[scalingrpn,18] value[14.7,1,x,+,/,14,14.700000]
86: ; scaling = 14.7/(1+x)
87: paramname = AFR2
: name[paramname,16] value[AFR2,0,0.000000]
88: paramid = 0xFF699E
: name[paramid,17] value[0xFF699E,16738718,0.000000]
89: databits = 16
: name[databits,22] value[16,16,16.000000]
90: scalingrpn = 14.7,x,0.0001220703,*,*
: name[scalingrpn,18] value[14.7,x,0.0001220703,*,*,14,14.700000]
91: ; scaling = (x*.0001220703)*14.7
92: paramname = Pri_OL_Enrich
: name[paramname,16] value[Pri_OL_Enrich,0,0.000000]
93: paramid = 0xFF6982
: name[paramid,17] value[0xFF6982,16738690,0.000000]
94: databits = 16
: name[databits,22] value[16,16,16.000000]
95: scalingrpn = 14.7,1,x,0.00003051758,*,+,/
: name[scalingrpn,18] value[14.7,1,x,0.00003051758,*,+,/,14,14.700000]
96: ; scaling = 14.7/(1+(x*.00003051758))
97: paramname = MassAirFlow
: name[paramname,16] value[MassAirFlow,0,0.000000]
98: paramid = 0x000013
: name[paramid,17] value[0x000013,19,0.000000]
99: databits = 16
: name[databits,22] value[16,16,16.000000]
100: scalingrpn = x,0.01,*
: name[scalingrpn,18] value[x,0.01,*,0,0.000000]
101: paramname = MAFv
: name[paramname,16] value[MAFv,0,0.000000]
102: paramid = 0x00001D
: name[paramid,17] value[0x00001D,29,0.000000]
103: scalingrpn = x,0.02,*
: name[scalingrpn,18] value[x,0.02,*,0,0.000000]
104: paramname = IAT
: name[paramname,16] value[IAT,0,0.000000]
105: paramid = 0x000012
: name[paramid,17] value[0x000012,18,0.000000]
106: scalingrpn = x,40,-
: name[scalingrpn,18] value[x,40,-,0,0.000000]
107: ; priority = 2
108: paramname = Ign_Tot_Timing
: name[paramname,16] value[Ign_Tot_Timing,0,0.000000]
109: paramid = 0x000011
: name[paramid,17] value[0x000011,17,0.000000]
110: scalingrpn = x,128,-,0.5,*
: name[scalingrpn,18] value[x,128,-,0.5,*,0,0.000000]
111: paramname =kca4
: name[paramname,16] value[kca4,0,0.000000]
112: paramid = 0xFF7398
: name[paramid,17] value[0xFF7398,16741272,0.000000]
113: ; databits = 32
114: isfloat = 1
: name[isfloat,24] value[1,1,1.000000]
115: scalingrpn = x
: name[scalingrpn,18] value[x,0,0.000000]
116: paramname = FKC4
: name[paramname,16] value[FKC4,0,0.000000]
117: paramid = 0xFF739C
: name[paramid,17] value[0xFF739C,16741276,0.000000]
118: ; databits = 32
119: isfloat = 1
: name[isfloat,24] value[1,1,1.000000]
120: scalingrpn = x
: name[scalingrpn,18] value[x,0,0.000000]
121: paramname = FLKC1
: name[paramname,16] value[FLKC1,0,0.000000]
122: paramid = 0xFF69B3
: name[paramid,17] value[0xFF69B3,16738739,0.000000]
123: scalingrpn = x,0.3515625,*,45,-
: name[scalingrpn,18] value[x,0.3515625,*,45,-,0,0.000000]
124: ; scaling = (x*.3515625)-45
125: paramname = WGDC
: name[paramname,16] value[WGDC,0,0.000000]
126: paramid = 0x000030
: name[paramid,17] value[0x000030,48,0.000000]
127: scalingrpn = x,0.3921569,*
: name[scalingrpn,18] value[x,0.3921569,*,0,0.000000]
128: paramname = tgt_boost4
: name[paramname,16] value[tgt_boost4,0,0.000000]
129: paramid = 0xFF641C
: name[paramid,17] value[0xFF641C,16737308,0.000000]
130: ; databits = 32
131: isfloat = 1
: name[isfloat,24] value[1,1,1.000000]
132: scalingrpn = 0.001333224,x,760,-,*
: name[scalingrpn,18] value[0.001333224,x,760,-,*,0,0.001333]
133: ; scaling = (x-760)*0.001333224
134: paramname = MAP
: name[paramname,16] value[MAP,0,0.000000]
135: paramid = 0x00000D
: name[paramid,17] value[0x00000D,13,0.000000]
136: scalingrpn = x, 0.01000416, *
: name[scalingrpn,18] value[x,,0,0.000000]
137: ; scaling = x*37/255/14.50377
138: paramname = ATM
: name[paramname,16] value[ATM,0,0.000000]
139: paramid = 0x000023
: name[paramid,17] value[0x000023,35,0.000000]
140: scalingrpn = x, 0.01000416, *
: name[scalingrpn,18] value[x,,0,0.000000]
141: ; scaling = x*37/255/14.50377
142: paramname = IPW ; injector #1 pulse width
: name[paramname,16] value[IPW,0,0.000000]
143: paramid = 0x000020
: name[paramid,17] value[0x000020,32,0.000000]
144: scalingrpn = x,0.256,*
: name[scalingrpn,18] value[x,0.256,*,0,0.000000]
145: ; some samples of logging "bitfield" values that are not whole bytes
146: ; if you want to log more that one of these efficently, group them by
147: ; paramid and the OP2 will only issue a single request to get all of
148: ; the bits within each paramid
149: ; paramname = ignition_sw
150: ; paramid = 0x62
151: ; databits = 1
152: ; offsetbits = 3
153: ; to still acquire a parameter (perhaps for triggering or a calculation)
154: ; but not record it in the log, set isvisible equal to zero (it is 1 by default)
155: ; isvisible = 0
156: ; paramname = AC_sw
157: ; paramid = 0x62
158: ; databits = 1
159: ; offsetbits = 1
160: ; isvisible = 0
161: ; paramname = defogger_sw
162: ; paramid = 0x64
163: ; databits = 1
164: ; offsetbits = 5
165: ; isvisible = 0
166: ; paramname = blower_sw
167: ; paramid = 0x64
168: ; databits = 1
169: ; offsetbits = 4
170: ; isvisible = 0
171: ; paramname = clutch_sw
172: ; paramid = 0x121
173: ; databits = 1
174: ; offsetbits = 7
175: ; paramname = brake_sw
176: ; paramid = 0x121
177: ; databits = 1
178: ; offsetbits = 3
179: ;----------------inno----------------
180: type=inno
: name[type,8] value[inno,0,0.000000]
181: ; log from an innovate bus via the 3/32" jack
182: ; currently the LC-1 is the only supported device
183: ; in the "inno" case the parameters are already pre-defined, you just
184: ; need to reference them by name so that they are included in the log
185: ; output. note that these parameters won't become valid until the LC-1
186: ; has been calibrated and the sensor is warmed up.
187: paramname = inno.afr
: name[paramname,16] value[inno.afr,0,0.000000]
188: ; paramname = inno.lambda
189: ;----------------adc----------------
190: ; type=adc ; log from built in ADC channels
191: ; paramname=battvolts
192: ; paramid=16 ; paramid is pin number on OBD connector
193: ; valid pins are 8 and 16
194: ; values are pre-scaled to millivolts
195: ; scalingrpn=x,0.001,* ; here we scale to volts
196: ; paramname=ignvolts ; on newer subarus pin 8 is connected to the ignition voltage
197: ; paramid=8 ; paramid is pin number on OBD connector
198: ; valid pins are 8 and 16
199: ; values are pre-scaled to millivolts
200: ; scalingrpn=x,0.001,* ; here we scale to volts
201: ;-------------calculated parameter---------------
202: ;
203: ; you can derive calculated parameters from other parameters
204: ; using RPN expressions
205: ;
206: type = calc
: name[type,8] value[calc,0,0.000000]
207: paramname = IDC
: name[paramname,16] value[IDC,0,0.000000]
208: scalingrpn = RPM,IPW,*,0.0008333333,*
: name[scalingrpn,18] value[RPM,IPW,*,0.0008333333,*,0,0.000000]
209: paramname = MRP_Corrected
: name[paramname,16] value[MRP_Corrected,0,0.000000]
210: scalingrpn = MAP,ATM,-
: name[scalingrpn,18] value[MAP,ATM,-,0,0.000000]
211: ;-------------triggers---------------
212: ;
213: ; note that parameters must be previously defined
214: ; before defining triggers using them
215: ;
216: ; triggers allow you to control when logging starts and stops
217: ; this example sets up triggers such that logging only occurs
218: ; when the engine is running (RPM > 0)
219: ;
220: ; triggers consist of a condition (a RPN expression using comparison operators)
221: ; and an action. the RPN comparison operators match those in the C language:
222: ;
223: ; > < >= <= == != && ||
224: ;
225: ; if the condition evaluates to a non-zero value, that action is taken
226: conditionrpn = RPM,0,>
: name[conditionrpn,48] value[RPM,0,>,0,0.000000]
227: action = start
: name[action,49] value[start,0,0.000000]
228: conditionrpn = RPM,0,==
: name[conditionrpn,48] value[RPM,0,==,0,0.000000]
229: action = stop
: name[action,49] value[stop,0,0.000000]
230: ; here is a second triggering example using the rear defogger switch
231: ; uncomment it and comment out the sample above to use it
232: ;conditionrpn = defogger_sw,1,==
233: ;action = start
234: ;conditionrpn = defogger_sw,0,==
235: ;action = stop
--- log config dump ---
channel type: ssmk
protocol id: 3
baud: 4800
param name: RPM
param id: 0x0000000E
read width: 2 bytes
data width: 16 bits
data offset: 0 bits
float: 0
low priority: 0
scaling: x,0.250000,*
param name: speed
param id: 0x00000010
read width: 1 bytes
data width: 8 bits
data offset: 0 bits
float: 0
low priority: 0
scaling: x
param name: IAM4
param id: 0x00FF2AD4
read width: 4 bytes
data width: 32 bits
data offset: 0 bits
float: 1
low priority: 0
scaling: x
param name: ThrottleOpeningAngle
param id: 0x00000015
read width: 1 bytes
data width: 8 bits
data offset: 0 bits
float: 0
low priority: 0
scaling: x,0.392157,*
param name: CLOLStat
param id: 0x00FF8D69
read width: 1 bytes
data width: 8 bits
data offset: 0 bits
float: 0
low priority: 0
scaling: x,6.000000,+
param name: load4grev
param id: 0x00FF6678
read width: 4 bytes
data width: 32 bits
data offset: 0 bits
float: 1
low priority: 0
scaling: x
param name: est_afr4
param id: 0x00FF6C08
read width: 4 bytes
data width: 32 bits
data offset: 0 bits
float: 1
low priority: 0
scaling: 14.700000,1.000000,x,+,/
param name: AFR2
param id: 0x00FF699E
read width: 2 bytes
data width: 16 bits
data offset: 0 bits
float: 0
low priority: 0
scaling: 14.700000,x,0.000122,*,*
param name: Pri_OL_Enrich
param id: 0x00FF6982
read width: 2 bytes
data width: 16 bits
data offset: 0 bits
float: 0
low priority: 0
scaling: 14.700000,1.000000,x,0.000031,*,+,/
param name: MassAirFlow
param id: 0x00000013
read width: 2 bytes
data width: 16 bits
data offset: 0 bits
float: 0
low priority: 0
scaling: x,0.010000,*
param name: MAFv
param id: 0x0000001D
read width: 1 bytes
data width: 8 bits
data offset: 0 bits
float: 0
low priority: 0
scaling: x,0.020000,*
param name: IAT
param id: 0x00000012
read width: 1 bytes
data width: 8 bits
data offset: 0 bits
float: 0
low priority: 0
scaling: x,40.000000,-
param name: Ign_Tot_Timing
param id: 0x00000011
read width: 1 bytes
data width: 8 bits
data offset: 0 bits
float: 0
low priority: 0
scaling: x,128.000000,-,0.500000,*
param name: kca4
param id: 0x00FF7398
read width: 4 bytes
data width: 32 bits
data offset: 0 bits
float: 1
low priority: 0
scaling: x
param name: FKC4
param id: 0x00FF739C
read width: 4 bytes
data width: 32 bits
data offset: 0 bits
float: 1
low priority: 0
scaling: x
param name: FLKC1
param id: 0x00FF69B3
read width: 1 bytes
data width: 8 bits
data offset: 0 bits
float: 0
low priority: 0
scaling: x,0.351563,*,45.000000,-
param name: WGDC
param id: 0x00000030
read width: 1 bytes
data width: 8 bits
data offset: 0 bits
float: 0
low priority: 0
scaling: x,0.392157,*
param name: tgt_boost4
param id: 0x00FF641C
read width: 4 bytes
data width: 32 bits
data offset: 0 bits
float: 1
low priority: 0
scaling: 0.001333,x,760.000000,-,*
param name: MAP
param id: 0x0000000D
read width: 1 bytes
data width: 8 bits
data offset: 0 bits
float: 0
low priority: 0
scaling: x
param name: ATM
param id: 0x00000023
read width: 1 bytes
data width: 8 bits
data offset: 0 bits
float: 0
low priority: 0
scaling: x
param name: IPW
param id: 0x00000020
read width: 1 bytes
data width: 8 bits
data offset: 0 bits
float: 0
low priority: 0
scaling: x,0.256000,*
channel type: inno
protocol id: 9
baud: 19200
param name: inno.afr
param id: 0x00000000
read width: 1 bytes
data width: 8 bits
data offset: 0 bits
float: 0
low priority: 0
scaling: x
channel type: calc
param name: IDC
scaling: RPM,IPW,*,0.000833,*
param name: MRP_Corrected
scaling: MAP,ATM,-
trigger action: start condition: RPM,0.000000,>
trigger action: stop condition: RPM,0.000000,==
--- storage info ---
log stringlist: 276 chars
log floatlist: 19 floats
worst case ssm request is 135 bytes long, response 48 bytes long and will be sent every 500000us (381189us is fastest possible)
logging interval will be 100000us
paramname = RPM
paramid = 0x00000E
databits = 16
scalingrpn = x,0.25,*
paramname = AF1
paramid = 0x000046
databits = 8
scalingrpn = x
paramname = MAP
paramid = 0x00000D
scalingrpn = x, 0.01000416, *
paramname = MassAirFlow
paramid = 0x000013
databits = 16
scalingrpn = x,0.01,*
paramname = ATM
paramid = 0x000023
scalingrpn = x, 0.01000416, *
paramname=AFC#1
paramid=0x009
scalingrpn = x,128,-,0.781,*
paramname=AFL#1
paramid=0x00A
scalingrpn = x,128,-,0.781,*
type = calc
paramname = MRP_Corrected
scalingrpn = MAP,ATM,-
conditionrpn = RPM,0,>,CT,76,>,&&
action = start
conditionrpn = RPM,0,==
action = stopcboles wrote:I hear you on the OSX library. My dev Mac kicked the bucket a couple of weeks back and I need to fix the power supply to get back to that machine. I should be set up for a pretty quick port of op20pt32.dll though. The only big issue on OSX at the moment is that there is some goofiness with USB composite devices that have communication device class (CDC) devices as one of the devices. This means that you can't have the SD card plugged in and have the OP2 work on a Mac right now. I have someone at Apple that has already made a fix to their CDC driver, but it never seems to make it into any of their releases.
...and yes, you can operate all physical buses on the OP2 simultaneously. You can even tee CAN and ISO15765 data and analyze it via both protocols as well.
debug=noout
; we are logging SSM via CAN
type = ssmcan
paramname = RPM
paramid = 0x0E
databits = 16
scalingrpn = x,0.25,*
; continue specifying other parameters
paramname = Load
paramid = 0x07
scalingrpn = x,0.3921569,*
paramname = Speed
paramid = 0x10
scalingrpn = x,0.621371192,*
paramname = Throttle
paramid = 0x15
scalingrpn = x,0.3921569,*
paramname = Timing
paramid = 0x11
scalingrpn = x,128,-,0.5,*
paramname = AF_Corr_#1
paramid = 0x09
scalingrpn = x,128,-,0.78125,*
paramname = AF_Learn_#1
paramid = 0x0A
scalingrpn = x,128,-,0.78125,*
paramname = AF_Sensor_#1_AFR
paramid = 0x46
scalingrpn = x,0.11484375,* ;AFR
;scalingrpn = x,128,/,14.7,* ;AFR
;scalingrpn = x,0.0078125,* ;Lambda
paramname = Fine_Learning_KC
paramid = 0x000199
scalingrpn = x,0.25,*,32,-
paramname = Manifold_abs_Pressure_PSI
paramid = 0x0D
scalingrpn = x,0.14509804,*
;; any param below causes the issue. OP2 will create multiple small files, two rows in each
;paramname = Engine_Load_1b
;paramid = 0xFF6A06
;scalingrpn = x,0.015625,*
;paramname = Feedback_KC
;paramid = 0xFF6A10
;scalingrpn = x,0.3515625,*,45,-
;paramname = Target_Boost_psi_abs
;paramid = 0xFF6A00
;databits = 16
;scalingrpn = x,0.01933677,*
;paramname = Turbo_Dynamics_Integral
;paramid = 0xFF5E8C
;isfloat=1
;scalingrpn = x
;paramname = Turbo_Dynamics_Prop
;paramid = 0xFF5E88
;isfloat=1
;scalingrpn = x
;; any param above causes the issue. OP2 will create multiple small files, two rows in each
paramname = IAT
paramid = 0x12
scalingrpn = x,0.40,-
priority = 2
;paramname = coolant_temp
;paramid = 0x08
;scalingrpn = x,0.40,-
;priority = 2
;paramname = battery_volts
;paramid = 0x1C
;scalingrpn = x,0.08,*
;priority = 2
;paramname = mrp
;paramid = 0x24
;scalingrpn = x,128,-,0.145098,*
paramname = MAF
paramid = 0x13
databits = 16
scalingrpn = x,0.01,*
paramname = WGDC
paramid = 0x30
scalingrpn = x,0.3921569,*
paramname = IPW ; injector #1 pulse width
paramid = 0x11
scalingrpn = x,0.256,*
paramname = IAM
paramid = 0xF9
scalingrpn = x,0.0625,*
; some samples of logging "bitfield" values that are not whole bytes
; if you want to log more that one of these efficently, group them by
; paramid and the OP2 will only issue a single request to get all of
; the bits within each paramid
paramname = ignition_sw
paramid = 0x62
databits = 1
offsetbits = 3
isvisible = 0
; to still acquire a parameter (perhaps for triggering or a calculation)
; but not record it in the log, set isvisible equal to zero (it is 1 by default)
isvisible = 0
paramname = AC_sw
paramid = 0x62
databits = 1
offsetbits = 1
isvisible = 0
paramname = defogger_sw
paramid = 0x64
databits = 1
offsetbits = 5
isvisible = 0
paramname = blower_sw
paramid = 0x64
databits = 1
offsetbits = 4
isvisible = 0
paramname = clutch_sw
paramid = 0x121
databits = 1
offsetbits = 7
isvisible = 0
paramname = brake_sw
paramid = 0x121
databits = 1
offsetbits = 3
isvisible = 0
paramname = coast_sw
paramid = 0x121
databits = 1
offsetbits = 5
isvisible = 0
;-------------calculated parameter---------------
;
;type = calc
;paramname = IDC
;scalingrpn = RPM,IPW,*,0.0008333333,*
;-------------triggers---------------
;
conditionrpn = RPM,0,>
action = start
conditionrpn = RPM,0,==
action = stop
sql_dev wrote:Sorry to repost, but I still have no solution for this.
OP2 creates many-many files as soon as I try to add a param with long ID (like this: 0xFF6A00).
Please help!
Alex.
sql_dev wrote:Hi Colby,
I just tried again and I still have the same issue. Please see my cfg file below. My car is 2009 WRX. I verified I have the latest OP2 firmware version 1.10.2702.
- Code: Select all
debug=noout
; we are logging SSM via CAN
type = ssmcan
paramname = RPM
paramid = 0x0E
databits = 16
scalingrpn = x,0.25,*
; continue specifying other parameters
paramname = Load
paramid = 0x07
scalingrpn = x,0.3921569,*
paramname = Speed
paramid = 0x10
scalingrpn = x,0.621371192,*
paramname = Throttle
paramid = 0x15
scalingrpn = x,0.3921569,*
paramname = Timing
paramid = 0x11
scalingrpn = x,128,-,0.5,*
paramname = AF_Corr_#1
paramid = 0x09
scalingrpn = x,128,-,0.78125,*
paramname = AF_Learn_#1
paramid = 0x0A
scalingrpn = x,128,-,0.78125,*
paramname = AF_Sensor_#1_AFR
paramid = 0x46
scalingrpn = x,0.11484375,* ;AFR
;scalingrpn = x,128,/,14.7,* ;AFR
;scalingrpn = x,0.0078125,* ;Lambda
paramname = Fine_Learning_KC
paramid = 0x000199
scalingrpn = x,0.25,*,32,-
paramname = Manifold_abs_Pressure_PSI
paramid = 0x0D
scalingrpn = x,0.14509804,*
;; any param below causes the issue. OP2 will create multiple small files, two rows in each
;paramname = Engine_Load_1b
;paramid = 0xFF6A06
;scalingrpn = x,0.015625,*
;paramname = Feedback_KC
;paramid = 0xFF6A10
;scalingrpn = x,0.3515625,*,45,-
;paramname = Target_Boost_psi_abs
;paramid = 0xFF6A00
;databits = 16
;scalingrpn = x,0.01933677,*
;paramname = Turbo_Dynamics_Integral
;paramid = 0xFF5E8C
;isfloat=1
;scalingrpn = x
;paramname = Turbo_Dynamics_Prop
;paramid = 0xFF5E88
;isfloat=1
;scalingrpn = x
;; any param above causes the issue. OP2 will create multiple small files, two rows in each
paramname = IAT
paramid = 0x12
scalingrpn = x,0.40,-
priority = 2
;paramname = coolant_temp
;paramid = 0x08
;scalingrpn = x,0.40,-
;priority = 2
;paramname = battery_volts
;paramid = 0x1C
;scalingrpn = x,0.08,*
;priority = 2
;paramname = mrp
;paramid = 0x24
;scalingrpn = x,128,-,0.145098,*
paramname = MAF
paramid = 0x13
databits = 16
scalingrpn = x,0.01,*
paramname = WGDC
paramid = 0x30
scalingrpn = x,0.3921569,*
paramname = IPW ; injector #1 pulse width
paramid = 0x11
scalingrpn = x,0.256,*
paramname = IAM
paramid = 0xF9
scalingrpn = x,0.0625,*
; some samples of logging "bitfield" values that are not whole bytes
; if you want to log more that one of these efficently, group them by
; paramid and the OP2 will only issue a single request to get all of
; the bits within each paramid
paramname = ignition_sw
paramid = 0x62
databits = 1
offsetbits = 3
isvisible = 0
; to still acquire a parameter (perhaps for triggering or a calculation)
; but not record it in the log, set isvisible equal to zero (it is 1 by default)
isvisible = 0
paramname = AC_sw
paramid = 0x62
databits = 1
offsetbits = 1
isvisible = 0
paramname = defogger_sw
paramid = 0x64
databits = 1
offsetbits = 5
isvisible = 0
paramname = blower_sw
paramid = 0x64
databits = 1
offsetbits = 4
isvisible = 0
paramname = clutch_sw
paramid = 0x121
databits = 1
offsetbits = 7
isvisible = 0
paramname = brake_sw
paramid = 0x121
databits = 1
offsetbits = 3
isvisible = 0
paramname = coast_sw
paramid = 0x121
databits = 1
offsetbits = 5
isvisible = 0
;-------------calculated parameter---------------
;
;type = calc
;paramname = IDC
;scalingrpn = RPM,IPW,*,0.0008333333,*
;-------------triggers---------------
;
conditionrpn = RPM,0,>
action = start
conditionrpn = RPM,0,==
action = stopsql_dev wrote:Sorry to repost, but I still have no solution for this.
OP2 creates many-many files as soon as I try to add a param with long ID (like this: 0xFF6A00).
Please help!
Alex.
Tephra wrote:dont u need to say databits=16 to get 2bytes?
ECULoad
63.75
63.75
22767
22767
61875
22767
61.25
61875
60625
60625
60
59375
RPM
2531.25
2531.25
2531.25
241913
2593.75
2593.75
2593.75
2625
2656.25
2656.25
2656.25
01: type = ssmcan
: name[type,8] value[ssmcan,0,0.000000]
02: paramname = rpm
: name[paramname,16] value[rpm,0,0.000000]
03: paramid = 0x00000E
: name[paramid,17] value[0x00000E,14,0.000000]
04: databits = 16
: name[databits,22] value[16,16,16.000000]
05: scalingrpn = x,4,/
: name[scalingrpn,18] value[x,4,/,0,0.000000]
06: paramname = Front_O2_Sensor_#1(V)
: name[paramname,16] value[Front_O2_Sensor_#1(V),0,0.000000]
07: paramid = 0x000016
: name[paramid,17] value[0x000016,22,0.000000]
08: databits = 16
: name[databits,22] value[16,16,16.000000]
09: scalingrpn = x,200,/
: name[scalingrpn,18] value[x,200,/,0,0.000000]
10: paramname = A/F_Sensor_#1(AFR)
: name[paramname,16] value[A/F_Sensor_#1(AFR),0,0.000000]
11: paramid = 0x000046
: name[paramid,17] value[0x000046,70,0.000000]
12: databits = 8
: name[databits,22] value[8,8,8.000000]
13: scalingrpn = x,128,/,14.7,*
: name[scalingrpn,18] value[x,128,/,14.7,*,0,0.000000]
14: paramname = Engine_Load_(4-Byte)*(g/rev)
: name[paramname,16] value[Engine_Load_(4-Byte)*(g/rev),0,0.000000]
15: paramid = 0xFF6C40
: name[paramid,17] value[0xFF6C40,16739392,0.000000]
16: isfloat = 1
: name[isfloat,24] value[1,1,1.000000]
17: scalingrpn = x
: name[scalingrpn,18] value[x,0,0.000000]
18: paramname = A/F_Learning_#1_(4-byte)*(%)
: name[paramname,16] value[A/F_Learning_#1_(4-byte)*(%),0,0.000000]
19: paramid = 0xFF793D
: name[paramid,17] value[0xFF793D,16742717,0.000000]
20: isfloat = 1
: name[isfloat,24] value[1,1,1.000000]
21: scalingrpn = x,100,*
: name[scalingrpn,18] value[x,100,*,0,0.000000]
22: paramname = A/F_Correction_#1_(4-byte)*(%)
: name[paramname,16] value[A/F_Correction_#1_(4-byte)*(%),0,0.000000]
23: paramid = 0xFF764C
: name[paramid,17] value[0xFF764C,16741964,0.000000]
24: isfloat = 1
: name[isfloat,24] value[1,1,1.000000]
25: scalingrpn = x,100,*,100,-
: name[scalingrpn,18] value[x,100,*,100,-,0,0.000000]
26: paramname = Manifold_Relative_Pressure_(4-byte)*(psi_relative)
: name[paramname,16] value[Manifold_Relative_Pressure_(4-byte)*(psi_relative),0,0.000000]
27: paramid = 0xFF6A78
: name[paramid,17] value[0xFF6A78,16738936,0.000000]
28: isfloat = 1
: name[isfloat,24] value[1,1,1.000000]
29: scalingrpn = x,0.01933677,*
: name[scalingrpn,18] value[x,0.01933677,*,0,0.000000]
30: paramname = Knock_Sum*(count)
: name[paramname,16] value[Knock_Sum*(count),0,0.000000]
31: paramid = 0xFF7FEC
: name[paramid,17] value[0xFF7FEC,16744428,0.000000]
32: databits = 8
: name[databits,22] value[8,8,8.000000]
33: scalingrpn = x
: name[scalingrpn,18] value[x,0,0.000000]
34: conditionrpn = rpm,0,>
: name[conditionrpn,48] value[rpm,0,>,0,0.000000]
35: action = start
: name[action,49] value[start,0,0.000000]
36: conditionrpn = rpm,0,==
: name[conditionrpn,48] value[rpm,0,==,0,0.000000]
37: action = stop
: name[action,49] value[stop,0,0.000000]
--- log config dump ---
channel type: ssmcan
protocol id: 6
baud: 500000
param name: rpm
param id: 0x0000000E
read width: 2 bytes
data width: 16 bits
data offset: 0 bits
float: 0
low priority: 0
scaling: x,4.000000,/
param name: Front_O2_Sensor_#1(V)
param id: 0x00000016
read width: 2 bytes
data width: 16 bits
data offset: 0 bits
float: 0
low priority: 0
scaling: x,200.000000,/
param name: A/F_Sensor_#1(AFR)
param id: 0x00000046
read width: 1 bytes
data width: 8 bits
data offset: 0 bits
float: 0
low priority: 0
scaling: x,128.000000,/,14.700000,*
param name: Engine_Load_(4-Byte)*(g/rev)
param id: 0x00FF6C40
read width: 4 bytes
data width: 32 bits
data offset: 0 bits
float: 1
low priority: 0
scaling: x
param name: A/F_Learning_#1_(4-byte)*(%)
param id: 0x00FF793D
read width: 4 bytes
data width: 32 bits
data offset: 0 bits
float: 1
low priority: 0
scaling: x,100.000000,*
param name: A/F_Correction_#1_(4-byte)*(%)
param id: 0x00FF764C
read width: 4 bytes
data width: 32 bits
data offset: 0 bits
float: 1
low priority: 0
scaling: x,100.000000,*,100.000000,-
param name: Manifold_Relative_Pressure_(4-byte)*(psi_relative)
param id: 0x00FF6A78
read width: 4 bytes
data width: 32 bits
data offset: 0 bits
float: 1
low priority: 0
scaling: x,0.019337,*
param name: Knock_Sum*(count)
param id: 0x00FF7FEC
read width: 1 bytes
data width: 8 bits
data offset: 0 bits
float: 0
low priority: 0
scaling: x
trigger action: start condition: rpm,0.000000,>
trigger action: stop condition: rpm,0.000000,==
--- storage info ---
log stringlist: 241 chars
log floatlist: 7 floats
worst case ssm request is 72 bytes long, response 27 bytes long and will be sent every 50000us (30000us is fastest possible)
logging interval will be 50000us
Return to Openport Stand-Alone Logging Beta
Users browsing this forum: No registered users and 0 guests