MembersPage/JimW/ExampleConfig (2006-03-16 04:43:08)

<code>

  1. JimW's Setup
  2. 1.8 8v counterflow motor
  3. 36-1 crank wheel
  4. 11th tooth on trigger wheel is TDC
  5. Genboard v3.2 Assembled
  6. High-Z (14.5ohm) 31lb/hr injectors), 3.0bar fuel pressure
  7. Wideband Heater: WB1
  8. Wasted spark ignition
  9. v20050922
  1. CRANKING INFORMATION
  2. Fuel Pump Priming
  3. 0x01=0.1ms
  4. eg 0D=1.3ms
primep=20
  1. Hot start priming pulse scaling at 170F
  2. Measured as percentage
  3. 0x80=50%, 0xFF=100%
  4. eg A0=63%
primep_temp_scaling=A0
  1. Cranking while cold (low temp) pulsewidth
  2. Cranking pulsewidth at -40 F
  3. 0x01=0.1ms
  4. eg 1E=3.0ms
cwl=2c
  1. Cranking while hot pulsewidth
  2. Used when coolant temp >= 170 degF
  3. Typical cwh = about 20% of cwl
  4. 0x01=0.1ms
  5. eg 0A=1.0ms
cwh=0A
  1. Cranking Threshold
  2. Defines boundry between cranking and running;
  3. Cranking settings used up to cranking_thres rpm,
  4. then settings switch over to running values.
  5. Offset by +99 rpm
  6. 0x01=100 (+99) rpm
  7. eg 0x03=399 rpm
cranking_thres=03
  1. Operating environment
  2. Battery voltage calibration (affects dwell and pwm'ing)
  3. Adjust so that VBatt reading in Megatune matches actual supply voltage.
  4. 0x01=???
  5. default=BC
batt_cal=A8
  1. Mean Barometric Pressure
  2. MAP sensor failure value (limp home value)
  3. 0x01=2kPa
baro=64
  1. Max allowed difference in barometric pressure
  2. If barometric pressure less than baro-dbaro or
  3. barometric pressure greater than baro+dbaro, use
  4. baro as barometric pressure.
  5. 0x01=1kPa?
dbaro=0C
  1. INJECTOR SETTINGS
  2. JimW: 109 cid (1776cc), 4 cylinder, 4 injectors, 31lb/hr
  3. COMMENT:
  4. For Req_fuel information
  5. see: http://www.megasquirt.info/manual/mfuel.htm#reqfuel
  6. Scaling the VE and and req_fuel effectively increases the resolution
  7. of the fueling parameters.
  8. EXAMPLE:
  9. scaling is accomplished by making:
  10. req_fuel = calculated req_value / 2
  11. VE_TABLE==> j[] = j[] .*2 (matlab notation)
  12. This changes the range of values in the j[] table
  13. from 1..100 to 2..200
  14. 6E
req_fuel=8F
  1. Injector bank setup
  2. Number of injections per 720 degrees of crank revolution
  3. alternate works with h[0]
  4. alternate=00 means use only first (batch fire; all injectors in one batch)
  5. alternate=01 means alternate between first and second batch
  6. alternate=03 to use indexes 3,2,1,0
  7. alternate=07 to use indexes 7,6,5,4,3,2,1,0
  8. ex: 4 cyl, 4 injectors, 1 batch, all injectors attached to individual pins InjA...D
  9. alternate=00
  10. divider=04
  11. h[0]=0F 00 00 00 00 00 00 00
  12. ex: 4 cyl, 4 injectors, 4 batches, all injectors attached to individual pins InjA...D
  13. Injectors are fired in this order: A-C-D-B
  14. alternate=03
  15. divider=01
  16. h[0]=02 08 04 01 00 00 00 00
  17. add 0x10 to fire in 1-batch mode at cranking
alternate=07
  1. divider = (number of cylinders)/(alternate + 1)
  2. examples: (x=don't care)
  3. divider=04 and alternate=x0 for 1 bank
  4. divider=02 and alternate=x1 for 2 banks
  5. divider=01 and alternate=x3 for 4 banks
divider=01
  1. Injector open and closing times
  2. for more detailed information look:
  3. MembersPage/MarcellGal/EngineSwap/Feed
  4. http://www.vems.hu/wiki/index.php?page=MembersPage%2FMarcellGal%2FEngineSwap%2FFuelFeed
  5. http://www.vems.hu/wiki/index.php?page=GenBoard%2FManual%2FConfig%2FInjectorOpening
  6. [ This comes from I = V/R, the current flowing varies with the voltage applied since
  7. the resistance of the injectors remains constant ]
  8. injopen should not be set higher than 0x20 (512us);
  9. If injopen is too high, VE table at low kPa (j[0]) will have very small, untunable values
  10. There is a bad rumour that injopen is the time needed for the injector to open.
  11. It is not the case, and it has never been the case.
  12. The misconception comes from the fact that if an injector opens slower
  13. than another injector with all other parameters the same,
  14. injopen value will be higher. Even with simpler injector opening models,
  15. injector closing is also heavily involved.
  16. In very short and simplified form: injopen=injector_opening_time - injector_closing_time.
  17. But read more:
  18. http://www.vems.hu/wiki/index.php?page=GenBoard%2FManual%2FConfig%2FInjectorOpening
  19. 0x01=0.16ms
  20. eg 0x10=2.56ms
injopen=10
  1. Slope of line representing time added to
  2. injopen to compensate for high/low battery voltage.
  3. Only used when 7V>=VBATT>=19V
  4. 0x01=xxxx
battfac=10
  1. Time added to injection to compensate for reduction in fuel flow
  2. during injector opening and closing.
  3. 0x01=0.24ms
  4. eg 0x20=7.68ms
injocfuel=2C
  1. Slope of line representing time added to
  2. injocfuel to comepensate for high/low battery voltage.
  3. Only used when 7V>=VBATT>=19V
  4. eg 0xFF=77% of injocfuel @ 14V
injrampup_battfac=FF
  1. High Z INJECTORS
  2. For non-PWM settings INJPWMT=FF, INJPWM=FF, INJPWM6=00 sets up HIGH Z injection
  3. COMMENT why wouldnt INJPWMT be set to 00, then it doesnt need to get "disabled"
  4. delta t=(t=0 to time initial resistance is overcome in injector)
  5. Injector PWM time at which to activate pwm
  6. FF=disabled (set to 1 mS per MegaManual for starting point)
  7. 0x01=0.1ms
injpwmt=FF
  1. Injector PWM duty cycle
  2. Measured in percent (50%=0x80, 100%=0xFF)
  3. 100% when using HighZ
injpwm=FF
  1. Added Injector PWM duty cycle during low battery voltage (6V)
  2. Measured in percent (50%=0x80, 100%=0xFF)
  3. 0% when using HighZ (we're already always at 100%)
injpwm6=00

  1. Low Z INJECTORS
  2. delta t=(t=0 to time initial resistance is overcome in injector)
  3. Injector PWM time at which to activate pwm
  4. FF=disabled (set to 1 mS for starting point)
  5. 0x01=0.1ms
  6. injpwmt=0A
  7. Current during the hold cycle
  8. injpwm= (I= (V/R) * (% duty cycle))
  9. verify by measuring OC0 with DVM
  10. 0x01=0.4%
  11. eg 0xFF=100% (that measures OC0=0V; since this is before the inverting FET driver)
  12. 48/256 (=3/16), that measures OC0=5V * (256-48)/256
  13. Injector PWM duty cycle (when current limiting is active)
  14. injpwm=30
  15. In the case of low battery to keep the same I(current); the duty cycle must be increased.
  16. COMMENT: this is straight forward and should be built into the firmware
  17. Also, shouldn't this be taken care of by battfac? Seems redundant.
  18. 6volts = Vbatt/2; Iold = Inew; dutycycle should be equal to 2x 12volt percentage.
  19. added Injector PWM duty cycle during low battery voltage (6V)
  20. injpwm6=40

  1. TPS related information
  2. TPS calibration
  3. TPS closed (low) and open (high) settings
tps_low=30

tps_high=AC

  1. Acceleration Enrichment basis
  2. 00 = Use TPS DOT for acceleration enrichment
  3. 01 = Use both MAP DOT and TPS DOT for acceleration enrichment
tpsdot_kpadot_conf=00
  1. TPSDOT bins
  2. Amount of change in throttle position over 0.1 sec
tpsdotrate[0]=05

tpsdotrate[1]=14

tpsdotrate[2]=28

tpsdotrate[3]=4D

  1. TPS accelerator enrichement
  2. Set to 00 for inital VE tuning
  3. Amount of enrichment for amount of change in throttle position
tpsaq[0]=00

tpsaq[1]=00

tpsaq[2]=00

tpsaq[3]=00

  1. Acceleration TPSDOT threshold (throttle sensitivity)
  2. Minimum rate of change to enable any acceleration enrichment.
  3. This should be set to at least tpsdotrate[0].
  4. Setting lower than tpsdotrate[0] effectively disables
  5. TPS/MAP based acceleration enrichment.
tps_thresh=05
  1. Acceleration duration
  2. Amount of time to apply the enrichments specified in tpsaq[] bins.
  3. 0x01=0.1s
  4. eg 0x0A=1 second
tpsasync=02
  1. Cold acceleration multiplication factor
  2. Biased at 0x64
  3. eg 0x64 - bias = 0
acmult=64
  1. Cold acceleration added amount (at -40 F degrees)
  2. 0x01=0.1ms
  3. eg 0x14 = 2.0ms
tpsacold=05
  1. Deceleration fuel cut
  2. 100% (0x64) means no fuelcut on sudden tps-release
  3. Values under 96% (0x60) are dangerous (can cause lean condition)
  4. 0x00 would be rough behaviour
  5. Recommended value: 64
tpsdq=64
  1. Decel fuelcut enabled above threshold
  2. 0x01=100rpm
  3. eg 0x0F=1500rpm
decel_fuelcut_thres=0F
  1. Overrun fuelcut:
  2. injectors disabled above this
  3. 0x01=100rpm
  4. eg 0x10=1600rpm
overrun_fuelcut=1F
  1. Overrun fuel resume
  2. Injectors re-enabled below this value
  3. 0x01=100rpm
  4. eg 0x0F=1500 RPM
overrun_fuelresume=1E
  1. MAP Sensor settings
  2. MAP Sensor
  3. MPX4250AP 250kpa sensor (standard for v3.x)
kpafac=7F

kpaoffs=52

  1. Coolant fan output
  2. This ouput is generally used to trigger a relay to turn on
  3. the electric radiator fan, or engage the electric clutch for
  4. engine cooling fan.
  5. Temperature when fan will turn on (in degC)
  6. 0x01=1 degree C
  7. eg 0x55 = 85degC
fan_temp=EA
  1. Decrease in temperature required to turn fan off
  2. fan_temp - fan_hyst=temp when fan will turn off
  3. 0x01=1 degree C
  4. eg 0x55 - 0x09 = 0x4C (76degC)
fan_hyst=05
  1. Coolant fan
  2. Output channel selection (digitalout)
fan_channel=FF
  1. Idle
  2. Below this coolant temperature, fast idle is enable
  3. 40 degF offset: 0=-40 degF, 200=160 degF
  4. 0x01=1 degF
  5. eg 0xAA=130 degF
fastidle=AA
  1. Idle enleaning limit
  2. Use to avoid enleaning of AFR when idling due to IAT
  3. sensor heat soak (above 25C (77F) degrees).
  4. 0x01=1%
  5. eg 0x62=98%
airden_ignore=62
  1. Idle air controller based idle control
  2. Idle air controller stepping sequence for
  3. 4-pin bipolar stepper motors.
  4. iac_step_seq=C9: Sequence is 3-1-2-0
  5. iac_step_seq=D8: Sequence is 3-0-2-1
iac_step_seq=C9
  1. Idle Air Controller Type
  2. Use iac_conf=7E for stepper style
  3. Use iac_conf=18 for PWM style
iac_conf=18
  1. Max commanded output for solenoid
  2. eg 0xFF=5V
iac_max_steps=F0
  1. Enable IAC when TPS is less than iac_tps_thres
  2. 0x01=0.64% open
  3. eg 0x10=1/16 open throttle
iac_tps_thres=05
  1. Below this temp, idle is set to iac_cold_rpm
  2. In Fahrenheit degrees + 40
  3. 0x01=1 degF
  4. eg 0xA0=200degF
iac_cold_idle_temp=A0
  1. Above this temp, idle is set to iac_warm_rpm
  2. In Fahrenheit degrees + 40
  3. 0x01=1 degF
  4. eg 0xD0=248degF
iac_warm_idle_temp=D0
  1. At iac_cold_idle_temp, set idle to iac_cold_rpm
  2. 0x01=10rpm
  3. eg 0x74=1160rpm
iac_cold_rpm=74
  1. At iac_warm_idle_temp, set idle to iac_warm_rpm
  2. 0x01=10rpm
  3. eg 0x67=1000rpm
iac_warm_rpm=64
  1. Actual IAC (stepper or PWM) position that is
  2. applied during cranking is calculated
  3. from engine coolant temp:
  4. interpolation between iac_cold_start_pos and iac_warm_start_pos
  5. open these significantly so lots of air can enter the engine
  6. during cranking without TPS applied.
  7. We want MAP values between 85..100kPa.
  1. Valve position on cold start (-40F)
iac_cold_start_pos=E2
  1. Valve position on warm start (170F)
iac_warm_start_pos=B0
  1. Intentional rpm overshoot after startup
  2. Add this amount of rpm to idle rpm at startup
  3. 0x01=10rpm
  4. eg 0x1F=310rpm
iac_afterstart_rpm=1F
  1. Duration to hold iac_afterstart_rpm
  2. 0x01=0.1sec
  3. eg 0x20=3.2 seconds
iac_afterstart_duration=20
  1. During the afterstart duration,
  2. iac_afterstart_steps * actual_afterstart_added_rpm
  3. is added to the iac reference position.
  4. Since PID control is active, sufficiently high
  5. iac_integral_limit_inc will make sure the valve
  6. is opened, even if iac_afterstart_steps is very small (0..1)
  7. Steps per 160rpm
iac_afterstart_steps=04
  1. PID parameters for idle air controller
iac_kp=25

iac_ki=17

iac_kd=A0

iac_integral_speed=40

iac_integral_limit_dec=10

iac_integral_limit_inc=20

iac_integral_deadband=14

iac_deadband=0A

iac_pid_conf=01

iac_overclose_interval=0A

  1. Reference position hint as function of coolant temp
iac_ref_pos[0]=35

iac_ref_pos[1]=34

iac_ref_pos[2]=33

iac_ref_pos[3]=32

iac_ref_pos[4]=31

iac_ref_pos[5]=30

iac_ref_pos[6]=2F

iac_ref_pos[7]=2E

iac_ref_pos[8]=2D

iac_ref_pos[9]=2C

  1. IAC Solenoid output channel
  2. 0xFF=Disable/Stepper type IAC
iac_sol_channel=FF
  1. Ignition based idle control
  2. This section should be used for idle
  3. if you have no idle air control device.
  4. Idle control via ignition advance/retard.
  5. Ignition advance based fine-adjust
  6. 0x01=0.25 crank degrees per 256rpm
iac_ign_advance_change=28
  1. Ignition advance based fine-adjust
  2. 0x01=0.25 crank degrees per 256rpm
iac_ign_retard_change=20
  1. Ignition advance limit when trying to increase RPM
  2. 0x01=0.25 crank degrees
  3. eg 0x10=4 degree limit
iac_ign_advance_limit=10
  1. Ignition retard limit when trying to decrease RPM
  2. 0x01=0x25 crank degrees
  3. eg 0x1A=6.5 degree limit
iac_ign_retard_limit=1A
  1. Minimum distance (in degrees) before change in advance/retard.
  2. If less than n degrees of ignition advance/retard is sufficient
  3. to reach the idle RPM target, don't change current advance/retard
  4. 0x01=0.25 crank degrees
  5. eg 0x08=2 crank degrees
iac_ign_threshold=08
  1. Engine Warmup
  2. 15..40% (0x0F .. 0x28) are common (and sometimes even higher).
  3. Since originally warmup enrichment is not tuned, we often
  4. adjust awev (besides cwl,cwh) to start the engine, but after
  5. warmup enrichments tuning is done, awev must retuned
  6. to get back the desired pulsewidth. Take notes of
  7. working cwl,cwh, awev settings and actual CLT and
  8. the warmup enrichments, so when warmup values are changed
  9. awev can be changed with simple calculation instead of guessing
  1. Afterstart warmup enrichment
  2. awev is the percentage of added fuel added at startup that fades away
  3. to zero in (awc) revolutions.
  4. 0x01=1%
  5. eg 0x1D
awev=1E
  1. Afterstart number of cycles
  2. Afterstart enrichment will be scaled from awev to zero
  3. through this many cycles after startup
  4. 0x01=1 cycle
  5. eg 0x64=100 engine cycles
awc=96
  1. Afterstart warmup scaling at 170F
  2. Use this percentage of awev when coolant temp >= 170F
  3. 0x01=0.4%
  4. eg 0x80=50%, 0xFF=100%
awev_temp_scaling=A0
  1. Warmup Coolant
  2. warmup_clt_range defines the temperature bins used for interpolation
  3. the values in warmup_clt_range is degrees Fahrenheit + 40
  4. C = 5/9 * F - 40 Looks messed up!
  5. F = 9/5 * C + 72 Looks messed up!
  6. use these:
  7. C= 5/9 * (F - 32)
  8. F= 9/5 * C + 32

warmup_clt_range[0]=00 # -40.0 C

warmup_clt_range[1]=14 # -28.8 C

warmup_clt_range[2]=28 # -17.7 C

warmup_clt_range[3]=3C # -6.6 C

warmup_clt_range[4]=50 # 4.4 C

warmup_clt_range[5]=64 # 15.5 C

warmup_clt_range[6]=78 # 26.6 C

warmup_clt_range[7]=8C # 37.7 C

warmup_clt_range[8]=AA # 54.4 C

warmup_clt_range[9]=C8 # 71.1 C

  1. warmup_clt is the value of each bin defined in warmup_clt_range
  2. this is the actual warmup enrichment.
  3. Values biased at 100; these are additions to current enrichments.
warmup_clt[0]=A0

warmup_clt[1]=A0

warmup_clt[2]=A0

warmup_clt[3]=A0

warmup_clt[4]=A0

warmup_clt[5]=96

warmup_clt[6]=8C

warmup_clt[7]=87

warmup_clt[8]=7D

warmup_clt[9]=64

  1. Warmup enrichment as function of RPM
  2. At the last RPM bin r[], apply this percentage
  3. of warmup_clt[x]-100.
  4. Just above cranking RPM, 100% is applied.
  5. Linear interpolation is used between just
  6. above cranking and highest rpm.
  7. Use 0xFF for full warmup enrichment at all RPM.
  8. Recommended: E0 .. F0
  9. F0=240/256=94%
  10. below C0 (75%) is not recommended
warmup_rpm_scale=F0
  1. EGO (Exhaust Gas Oxygen) Setup
  2. Need valid values for this variable
  3. Use ego_conf=20 for narrow band O2 sensor control?
  4. Use ego_conf=01 for PID control?
  5. Every one else using ego_conf=07
ego_conf=07
  1. EGO Resolution
  2. Minimum recognized change in EGO value
  3. 0x01=0.4%
  4. eg 0x02=0.8%
ego_delta=02
  1. Minimum time between correction factor changes
  2. Measured in engine cycles
  3. 0x01=1 engine cycle
ego_lag=03
  1. Minimum coolant temperature for EGO enabling [F]
  2. eg. 0xC2 = 194 degF (108degC)
ego_coolant=92
  1. Maximum TPS position for EGO correction
  2. 0xFF=100% open (WOT)
ego_maxtps=FF
  1. Maximum MAP for O2 correction
  2. 0x01=2kPa
ego_maxmap=FF
  1. Minimum rpm for ego enabling
  2. Ignore all EGO information below this RPM
  3. 0x01=100rpm
  4. eg 0x0C=1200rpm
ego_minrpm=08
  1. Maximum rpm for EGO correction
  2. 0x01=100rpm
  3. eg 0x4B=7500rpm
ego_maxrpm=FF
  1. Warmup time
  2. 0x01=1 sec
  3. eg 0x3C=60 sec
ego_warmup=3C
  1. Maximum allowed enleanment of AFR
  2. 0x01=0.4%
  3. eg 0x30=19.2%
ego_lean_limit=30
  1. Maximum allowed enrichment of AFR
  2. 0x01=0.4%
  3. eg 0x80=51.2%
ego_rich_limit=30
  1. WBO2
  2. Wideband O2 heater warm-up ramp speed
  3. 0x01=0.0032V/sec
  4. eg 0x3F=0.2V/sec
wbo2_warmup_ramp=E8
  1. Heater absolute voltage limit
  2. eg 0x2A=12V
  3. eg 0xFF=30V
wbo2_abs_limit=E4
  1. Max time allowed at absolute voltage limit
  2. in milliseconds
  3. 0x01=1ms
  4. eg A0=160ms
wbo2_limit_maxt=A0
  1. Fall back voltage after max time spent at absolute limit
  2. 1C=10V, 2A=12V, FF=30V
wbo2_fallback=60
  1. Time before retrying control:
  2. 0x01=4 sec
  3. eg 0x3B=59 seconds
wbo2_retry_t=03
  1. Edgetime correction constant C/R
  2. EVERYONE HAS wbo2_edgetime_corr=BA, SHOULD THIS BE ADJUSTABLE?
wbo2_edgetime_corr=BA
  1. Gate for small edgetimes
  2. Any reading less than this is ignored
  3. 0x01=0.5usec
  4. 0x50=40.0usec
wbo2_edgetime_min=50
  1. O2 percentage of 'normal' air: 20.947%, calibrated to 20.95
  2. WARNING: Sensor dependent. Every single sensor is different!
  3. For verification, also measure (and write here) sensor RCal (DVM Ohmmeter mode)
  4. between red wire and connector pin that has no wire towards the sensor (pins 2 and 6).
  5. The RCal lives in sensor connector housing.
  6. Typical reading is between 80 and 180 ohms.
  7. Rcal(ohms) wbo2_calibration starting point
  8. 30 0x00
  9. 50 0x3C
  10. 70 0x66
  11. 90 0x85
  12. 110 0x9D
  13. 130 0xB0
  14. 200 0xDC
  15. 300 0xFC
  16. Rcal=127 ohm, wbo2_calibration=B0
  17. 0xB0 gives free air reading of 1850
  18. 0xD0 gives free air reading of 2000-2020
  19. 0xD2 = 2010-2030
wbo2_calibration=E0
  1. wbo2_pump_pw_zero:
  2. Pump zero duty cycle.
  3. Adjust to get pump+ close (within 0.1V if pump+ connection open) to pump-.
  4. Pump- is appr. 3.98V
  5. 5V/256 (?)
  6. default: wbo2_pump_pw_zero=0x66
  7. 0x65=0.71V
  8. 0x64=0.24V
  9. 0x63=-0.064V
  10. 0x62=-0.335V
wbo2_pump_pw_zero=63
  1. WBO2 target Ri (pulse amplitude)
  2. 0x01=5V/4096
wbo2_ri_target=96
  1. OPA amplification, g = 270/75 + 1 = 4.6
  2. Vadc = g * (5 - Vnernst)
  3. Vnernst DC at sensor wire = 4.45V
  4. Vnernst DC at adc = 4.6 * (5 - 4.45) = 2.53
  5. nernstdc_target = Vadc / g * 256 = 141 = 0x8D
  6. WBO2 target nernstDC
  7. 0x01=5V/256
  8. 0x01=20mV
  9. eg
  10. 0x66=2.04V
  11. 0x66=102 decimal
  12. 102*20mV=2.04V
wbo2_nernstdc_target=8D
  1. wbo2_ri_confidence_scale:
  2. Ri confidence scaling factor.
  3. s^2 < 255/scale
wbo2_ri_confidence_scale=80

wbo2_warmup_target=FF

wbo2_heater_pid_kp=46

wbo2_heater_pid_ki=10

wbo2_heater_pid_kd=1A

wbo2_heater_pid_ilimit=80

wbo2_pump_pid_kp=30

wbo2_pump_pid_ki=80

wbo2_pump_pid_kd=00

wbo2_pump_pid_ilimit=80

  1. Knock Detection and correction
  2. 2-channel knock sensor control
  3. Not currently used, mechanical lifter head makes too much noise
  4. f_knock = 900 / (pi*r) = 900 / (pi * 0.5 * 0.083) = 6.903 kHz
  5. from datasheet tpic801.pdf page 10 table#1
  6. bandpass frequency selection 6.94 kHz is closest to 6.903 kHz
  7. filter setting = 29 hex (41 dec)
  1. Overall System Settings
  2. Knock selection
knock_conf=00

knock_sampling_window=FF

  1. Use knock sensing in this RPM range
  2. FF for both means no knock sensing/control
knock_minrpm=FF

knock_maxrpm=FF

  1. Channel #1 setup
knock1_frequency=29

knock1_gain=FF

knock1_integrator=FF

  1. Channel #2 setup
knock2_frequency=29

knock2_gain=FF

knock2_integrator=FF

  1. Trigger level
knock_threshold=FF

knock_noise_scale=FF

  1. Ignition effects
  2. Knock getting louder
knock_max_retard=FF

knock_default_retard=00

knock_retard_step=FF

knock_retard_delay=FF

  1. Knock getting softer
knock_advance_step=FF

knock_advance_delay=FF

  1. VE learning
  2. Some basic comments:
  3. VE Learning can adjust a loadsite that is visited
  4. but not a neighboring loadsite that is rarely visited causing
  5. peaks and valleys in the VE (j[]) map that will need smoothed
  6. EGO correction is transferred across loadsites for fast loadsite-changes
  7. (that happens, especially in kPa direction)
  8. VE Learning Enable/Disable
  9. Use ve_learn_conf=00 to Disable
  10. Use ve_learn_conf=01 to Enable
ve_learn_conf=01
  1. Minimum coolant temp for learning to be enabled.
  2. This should be set to a temperature above where
  3. warmup enrichments are used.
  4. 0x00=-40F
  5. 0xFF=215F
ve_learn_coolant=D8
  1. VE Learning speeds
  2. Higher number means more agressive changes
ve_learn_rpm_scale=1E

ve_learn_kpa_scale=1E

ve_learn_ego_scale=43

ve_learn_speed=FF

ve_learn_max_power=FF

  1. ve_learn_min_weight:
  2. Minimum weight for modifying VE entry
ve_learn_min_weight=4D
  1. ve_learn_limit:
  2. Max deviation from reference VE bin
  3. 0x01=0.4%
ve_learn_limit=FF
  1. Triggers
  2. Primary_Trigger
  3. NEED LIST OF VALID VALUES AND APPLICATIONS HERE
  4. FE: Rising Edge trigger
  5. FF: Falling Edge trigger
  6. 01: Multi-tooth wheel configuration
primary_trigger=01
  1. tooth_wheel:
  2. Used for multi-tooth wheels
  3. Total number of teeth on wheel
  4. eg For 60-2 wheel, 58 teeth = 3A
  5. eg For 36-1 wheel, 35 teeth = 23
tooth_wheel=23
  1. tooth_wheel_twidth1:
  2. width (in degrees) of each tooth
  3. eg For 36-1 wheel, each tooth is 10 degrees = 0A
  4. eg For Rising edge coil type, angular width of 'window'
tooth_wheel_twidth1=0A
  1. trigger_tooth:
  2. Tooth that triggers event (Used for multi-tooth wheels)
  3. Usually first tooth after missing tooth is selected.
  4. Counting from missing tooth, where missing tooth=00.
  5. If using wheel (eg 60-2) with >1 missing tooth, 1st missing
  6. tooth is 00, second is 01; first tooth after missing teeth=02.
trigger_tooth=07
  1. Secondary_Trigger
  2. FE: Rising Edge trigger
  3. FF: Falling Edge trigger
  4. 01: Multi-tooth configuration
  5. 1D: Rising edge, enable, enable filtering, coil type, cam sync, single edge
secondary_trigger=02
  1. another_trigger_tooth:
  2. Trigger tooth for secondary trigger device.
  3. 06 (decimal 06) halves the 12-1 (2 events per crankrot for 4 cyl) - JoseLCortes
  4. 1E (decimal 30) halves the 60-2 (2 events per crankrot for 4 cyl)
  5. 14 (decimal 20) 1/3-ds the 60-2 (3 events per crankrot for 6 cyl)
another_trigger_tooth=12
  1. width (in degrees) of each tooth
  2. eg For 36-1 wheel, each tooth is 10 degrees = 0A
  3. eg For Rising edge coil type, angular width of 'window'
  4. JoseLCortes: F0 #angular width of missing tooth
tooth_wheel_twidth2=06

toothrel_missing=FF

toothrel_normal=FF

  1. Minimum crank period
  2. Triggers before this amount of time are
  3. considered errors.
  4. Be sure to consider your max rpm (rev_limit) when
  5. calculating crank_minper.
  6. 0x01=0.16ms
  7. eg 0x50=12.8ms
crank_minper=50
  1. cam_sync settings:
  2. JoseLCortes:
  3. Cam trigger goes high 90 degrees BTDC on cylinder 1 compression stroke
  4. This results in the 0->1 trigger 20 crank degrees before the trigger_tooth (70 BTDC)
  5. Cylinder 1 start of intake stroke is defined as phase==0
  6. A) cyl 1 start of intake: 0 degrees, phase=0
  7. B) cyl 1 start of compression: 180 degrees, phase=60
  8. C) cyl 1 start of combustion: 360 degrees, phase=120 , trigger at 104
  9. D) cyl 1 start of exhaust: 540 degrees, phase=180
  10. 0->1 cam trigger arrives between B and C, thus cam_sync_r_edge_phase = 104 (dec)
  11. cam_sync_r_edge_phase=68
cam_sync_r_edge_phase=FF
  1. The 1->0 trigger arrives 180 cam degrees apart,
  2. thus cam_sync_f_edge_phase = (87+216/2)%216 = 33 (dec)
cam_sync_f_edge_phase=FF
  1. reset_engphase_after == 2 [revolutions] * ( (12-2) * tooth_wheel_twidth1 + 2 * tooth_wheel_twidth2 )
  2. 240 = 2 * ( 10*10 + 2*10 )
reset_engphase_after=D8
  1. mcell's Trigger setup, 60-1 vr
  2. Triggers, HW determines VR or Hall
  3. Primary Trigger
  4. primary_trigger=01
  5. tooth_wheel=3A
  6. trigger_tooth=10
  7. Secondary Trigger
  8. secondary_trigger=FF
  9. another_trigger_tooth=1E
  10. crank_minper=50
  11. tooth_wheel_twidth1=06
  12. tooth_wheel_twidth2=12
  13. cam_sync_r_edge_phase=FF
  14. cam_sync_f_edge_phase=FF
  15. reset_engphase_after=FF
  1. Ignition
  2. Rev limiter
  3. Fuel and spark are cut above rev_limit rpm
  4. 0x01=100 rpm
  5. eg 0x4B=7500 rpm
rev_limit=4B
  1. Distance (in degrees) from first tooth after missing tooth to cylinder #1 TDC
  2. 0x01=0.5 degrees
  3. eg 0xF0=120 degrees
  4. 62 degrees = 120 (from missing tooth) - 48 (trigger tooth * 6)
ign_tdcdelay=78
  1. Dwell
  2. Dwell settings for 14V and 6V
  3. 0x01=0.64ms
  4. eg 0x14=
ign_dwell14=14
  1. 0x01=0.27ms
ign_dwell6=1E
  1. Ignition advance at cranking
  2. 0x01=0.25 degrees (at crank)
  3. eg 0x20=8 degrees
ign_crank_advance=20
  1. Dummy ignition with inverted output
  2. 0x01=???
  3. eg 0x70=???
  4. 0xFF=Disable ignition output
ign_out=70
  1. Highest indexed ignition coil to trigger
  2. At least 0..ignchmax index of h[2] must be filled in
  3. eg1 h[2] = 05 07 05 07 00 00 00 00
  4. eg1 ignchmax = 03
ignchmax=07
  1. Cease ignition after engine_off_delay
  2. TIMEUNITS?
  3. 0x01=???
  4. eg 0x08=?
engine_off_delay=08
  1. Fuel Pump Control
  1. TURN OFF PUMP AFTER pump_on_mintime TIME UNITS
  2. 0x01=???
  3. eg 0x0F=???s
pump_on_mintime=0F
  1. Free injector driver drives the fuelpump relay?
  2. If no free injector driver, select another channel (eg. from P259) or set last element of h[0]
  3. FF=Auto-shutoff disable (not recommended, dangerous)
fuelpump_channel=00
  1. Second stage of injectors
  2. Not used
inj_stage2_rate=FF

inj_stage2_start_tps=FF

inj_stage2_start_map=FF

  1. Anti-lag system
  2. Not used
als_lowrpm=FF

als_maxtps=FF

als_ignretard=FF

als_rich=FF

als_rev_limit=FF

  1. Exhaust Gas Temperature
  2. 48..4B are typical values for Celsius output,
  3. calibrate with DVM so that:
  4. EGT reading is around: Tchip + 25C/mV * UinputmV
  5. Tchip=25C
  6. 25C/mV is the same as 40uV/C that is characteristic of K-thermocouple
  7. UinputmV is the mV signal measured between green(+) and white(-) signals ( K-thermocouple wires during operation)
egt1_cal=4A

egt1_offs=00

  1. Boost Controller
  2. Not used

boost_conf=00

boost_targetoffs=00

boost_minpressure=FF

boost_pid_kp=20

boost_pid_ki=80

boost_pid_kd=01

boost_pid_ilimit=FF

boost_channel=00

  1. Water pump Controller
  2. Not used

water_pump_temp=00

water_pump_hyst=00

water_pump_channel=00

  1. Auxillary outputs (WOT and RPM, WOT, RPM, channel definition)
  2. Use 0xFF to disable outputs
  3. Aux 1 output
misc1out_minrpm=28

misc1out_maxrpm=48

misc1out_mintps=FF

misc1out_maxtps=FF

misc1out_minmap=00

misc1out_maxmap=FF

misc1out_channel=00

  1. Aux 2 output
misc2out_minrpm=46

misc2out_maxrpm=FF

misc2out_mintps=00

misc2out_maxtps=FF

misc2out_minmap=00

misc2out_maxmap=FF

misc2out_channel=00

  1. Aux 3 output
act_wot_rpm=FF

act_wot_channel=00

  1. Aux 4 output
act_rpm_rpm=4B

act_rpm_channel=00

  1. LCD layout
  2. A better description would definately be helpful
  3. TODO: wiki page reference
lcd_c0=FE

lcd_delay=FF

lcd_backlight=FF

lcd_offs[0]=FF

lcd_offs[1]=FF

lcd_offs[2]=FF

lcd_offs[3]=FF

lcd_default_view=00

  1. RPM Calculation
  2. eg 0x0BB8 = 3000 = 12000 rpm/4 cyl
  3. 4 cylinder: rpmk[0]=0B, rpmk[1]=B8
  4. 5 cylinder: rpmk[0]=09, rpmk[1]=60
  5. 6 cylinder: rpmk[0]=07, rpmk[1]=D0
  6. 8 cylinder: rpmk[0]=05, rpmk[1]=DC
rpmk[0]=0B

rpmk[1]=B8

  1. DO NOT CHANGE for a 4cyl
  2. These will be different for 5,6,8 or 12 cyl
  3. (useful descriptions are left over from Megasquirt)
config11=30 # old config 31

config12=30 # 4 cylinders

config13=02 # old config 00

mt_unused=FF

  1. Air mass calculation method
  2. Use 0x00 for speed density control at all RPM (recommended)
hybrid_rpm_a=00

hybrid_rpm_m=00

  1. Don't touch stuff below here
ego_pid_kp=40
  1. not used for the wbo2 incredible ego, only for NBO2_PID_EGO_EXPERIMENT
ego_pid_window=FF
  1. Narrow band O2 sensor target voltage
  2. ego_target = 51 * O2_sensor_voltage
ego_target=19
  1. wbo2_warmup_target:
  2. UNUSED
  1. max authority of I term is: wbo2_pump_pid_ki * wbo2_pump_pid_ilimit
  2. note that lower wbo2_pump_pid_ilimit means faster operation
</code>
\n
##############################################

# VE table values

# j[0]->j[9] = low kPa values->high kPa values

# j[]=low rpm->high rpm

#
#############################################
#

j[0]=42 47 4E 51 50 4C 48 44

j[1]=43 49 50 53 52 4E 4A 46

j[2]=47 4D 54 58 57 53 4F 4B

j[3]=49 4F 57 5A 59 55 51 4D

j[4]=4D 53 5B 5F 5E 59 55 51

j[5]=4F 55 5D 61 60 60 56 52

j[6]=53 59 62 66 65 60 5B 56

j[7]=55 5B 64 68 67 68 5D 58





##############################################

# Lambda table values

# Matches VE table w/respect to rpm/kPa values

#
#############################################
l[0]=63 59 45 43 41 43 45 45

l[1]=63 4F 45 43 41 43 45 45

l[2]=63 4F 43 43 41 41 43 45

l[3]=65 4F 43 43 41 41 43 45

l[4]=65 4F 43 41 3F 3F 41 45

l[5]=65 51 43 41 41 41 43 45

l[6]=65 53 45 43 43 43 43 45

l[7]=67 55 45 45 43 45 49 4B





##############################################

# kPa map points, low->high

#
##############################################

k[0]=32 37 41 46 50 55 5F 64





##############################################

# RPM map points, low->high

#
#############################################
#

r[0]=08 0D 17 22 2C 36 41 4B





##############################################

# Ignition table

# Matches VE table w/respect to rpm/kPa values

# 0x01=0.25 crank degrees after top dead center

#
#############################################
#

n[0]=3C 3C 50 77 A0 B4 B4 B4

n[1]=3C 3C 50 78 A0 B1 B2 B1

n[2]=3C 3C 50 77 99 AA AB A9

n[3]=3C 3C 50 76 95 A1 A2 A1

n[4]=3C 3C 50 75 8D 99 9B 9A

n[5]=3C 3C 50 6F 83 8E 8F 8F

n[6]=3C 3C 50 67 7A 81 83 84

n[7]=3C 3C 50 5F 6F 78 78 78





##############################################

# Injector firing sequence

# Read from right to left

#
#############################################
#

h[0]= 01 02 08 10 00 00 00 00





##############################################

# Coil firing sequence

# Read from right to left

#
#############################################
#

# DR_00[h[2] = 00, EC36p35]

# DR_01[h[2] = 01, EC36p33]

# DR_02[h[2] = 02, EC36p34]

# DR_03[h[2] = 03, EC36p36]

#

# EC36p35 is 0 (mdh02/mdh82)

# EC36p33 is 1 (mdh12/mdh92)

#

# Firing order=1-3-4-2

#
#############################################

h[2]=00 01 00 01 00 01 00 01








#############################################
#

# Boost control points

# MAP pressure target based on RPM map points

# Low rpm->high rpm

#
#############################################
#

b[0]=00 00 00 00 00 00 00 00




##############################################

# Boost reduction as a function of
# TPS position.

# Values are percentages of normal boost at

# RPM map points.

#
#############################################
#

t[0]=00 00 00 00 00 00 00 00


h[1]=00 00 00 00 00 00 00 00