# Michael's config 2004-11-22, MGB 4cyl, [mik at caffrey.dk] # this configuration uses a 36-1 teeth wheel as primary trigger # NA # port injection (power output ~115bhp, 4x 170cc tiny toy injectors) # wasted spark ignition (Ford edis coil pack) # stepper IAC # WBO2 ##### CRANKING & STARTING PARAMETERS ##### # priming pulse, all injectors fired once upon power on primep=1E primep_temp_scaling=B0 # cranking pulsewidths, see also 'alternate' cwl=C0 cwh=17 # maximum rpm allowed in order to be in cranking mode cranking_thres=04 # ignition advance when cranking ign_crank_advance=28 # Afterstart enrichments awev=32 #26 awev_temp_scaling=A0 awc=3C # warmup_clt_range defines the temperature bins used for interpolation # the values in warmup_clt_range is degrees Fahrenheit + 40 # C = 5/9 * F - 40 # F = 9/5 * C + 72 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 # warmup_clt is the value of each bin defined in warmup_clt_range # this is the actual warmup enrichment. Values biased at 100 warmup_clt[0]=9a warmup_clt[1]=9a warmup_clt[2]=9a warmup_clt[3]=99 warmup_clt[4]=96 warmup_clt[5]=8a warmup_clt[6]=7D #81 warmup_clt[7]=73 #75 warmup_clt[8]=70 #6c warmup_clt[9]=64 # warmup enrichment can be decreased as a function of rpm. # set all to 0x64 to disable warmup_rpm[0]=64 # 100% warmup_rpm[1]=64 warmup_rpm[2]=64 warmup_rpm[3]=64 warmup_rpm[4]=64 warmup_rpm[5]=64 warmup_rpm[6]=64 warmup_rpm[7]=64 ##### injector related parameters ##### req_fuel=60 divider=02 alternate=11 # fire all injectors during cranking injopen=35 # [16usec] based, (mutiply MS standard value by 6.25 to get [16usec]) battfac=24 # [16usec] based, (mutiply MS standard value by 6.25 to get [16usec]) injocfuel=00 injrampup_battfac=00 injpwm=64 injpwmt=FF injpwm6=1C ##### acceleration & fuelcut ##### # define the tps-dot bins: d(tps)/[0.1 sec] tpsdotrate[0]=05 tpsdotrate[1]=14 tpsdotrate[2]=28 tpsdotrate[3]=4D # the tps acc enrichment tpsaq[0]=0e tpsaq[1]=32 tpsaq[2]=5A #50 tpsaq[3]=96 #82 tpsdot_kpadot_conf=00 tps_thresh=04 #03 tpsasync=05 acmult=85 tpsacold=20 tpsdq=64 decel_fuelcut_thres=0F overrun_fuelcut=ff #10 overrun_fuelresume=ff #0D ##### misc configuration ##### rpmk[0]=0B rpmk[1]=B8 rev_limit=3C # 6000 rpm airden_ignore=00 #62 fastidle=C6 config11=31 config12=30 # 4 cylinders config13=02 # WBO2 batt_cal=ff mt_unused=00 kpafac=7F kpaofs=52 baro=64 dbaro=10 tps_low=00 tps_high=FF fan_temp=F2 fan_hyst=05 fan_channel=P259_0 engine_off_delay=08 # 2 seconds # seconds [*0.262 sec] before fuelpump is turned off at poweron (without start of engine) pump_on_mintime=0F # 4 seconds fuelpump_channel=P259_4 ##### IAC configuration ##### iac_step_seq=d8 iac_conf=7E #62 iac_max_steps=46 iac_tps_thres=11 iac_cold_idle_temp=ca #bf iac_warm_idle_temp=d0 #c7 iac_cold_rpm=5F iac_warm_rpm=50 iac_cold_start_pos=40 iac_warm_start_pos=0A iac_afterstart_rpm=05 iac_afterstart_duration=1E iac_afterstart_steps=0A iac_kp=0A iac_ki=14 #05 iac_kd=2e #13 iac_integral_speed=36 iac_integral_limit_dec=40 #20 iac_integral_limit_inc=70 #40 #20 iac_integral_deadband=0A #14 iac_deadband=05 #0a iac_pid_conf=01 iac_overclose_interval=18 iac_ref_pos[0]=30 iac_ref_pos[1]=30 iac_ref_pos[2]=30 iac_ref_pos[3]=2f iac_ref_pos[4]=2b iac_ref_pos[5]=26 iac_ref_pos[6]=20 iac_ref_pos[7]=1b iac_ref_pos[8]=11 iac_ref_pos[9]=00 iac_sol_channel=FF iac_ign_advance_change=30 #50 iac_ign_retard_change=30 #50 iac_ign_advance_limit=20 iac_ign_retard_limit=20 iac_ign_threshold=08 ##### EGO configuration ##### ego_conf=00 # this isn't used ego_lag=0A #15 ego_coolant=40 ego_maxtps=ff # not configured yet ego_maxmap=ff # not configured yet ego_minrpm=04 ego_maxrpm=ff # not configured yet ego_warmup=3C ego_lean_limit=40 ego_rich_limit=80 ego_pid_kp=40 #60 # wbo2 speed ego_delta=02 ego_target=19 # ego_target = 51 * O2_sensor_voltage (NBO2 sensor) ego_pid_window=00 ##### WBO2 #### wbo2_warmup_ramp=A0 # 0.2 V/sec wbo2, warmup ramp speed [1.51 mV/sec] wbo2_warmup_target=FF wbo2_abs_limit=E4 # wbo2, heater absolute limit [?] (DA) wbo2_limit_maxt=A0 # wbo2, max time spent at abs_limit [262msec] (50) wbo2_fallback=60 # wbo2, fallback V after maxt [?] wbo2_retry_t=06 # wbo2, retry control after [4sec] wbo2_edgetime_corr=BA wbo2_edgetime_min=50 wbo2_ri_target=96 #wbo2, target Ri (pulse amplitude) [5V/8192] wbo2_nernstdc_target=8D wbo2_pump_pw_zero=66 ## Calibrate yourself for controller wbo2_calibration=BE ## Calibrate yourself for sensor wbo2_heater_pid_kp=46 wbo2_heater_pid_ki=10 wbo2_heater_pid_kd=1A wbo2_heater_pid_ilimit=80 wbo2_pump_pid_kp=40 #2E wbo2_pump_pid_ki=2E #1D wbo2_pump_pid_kd=08 wbo2_pump_pid_ilimit=84 wbo2_ri_confidence_scale=80 ##### VE auto-learning ##### ve_learn_coolant=D8 # 80 degress ve_learn_max_power=ff ve_learn_rpm_scale=28 ve_learn_kpa_scale=28 ve_learn_ego_scale=50 ve_learn_speed=E0 #80 ve_learn_limit=ff #30 ve_learn_min_weight=50 ve_learn_conf=00 ##### lcd display ##### lcd_c0=06 #fe lcd_delay=22 lcd_backlight=70 lcd_offs[0]=ff lcd_offs[1]=ff lcd_offs[2]=ff lcd_offs[3]=ff lcd_default_view=01 ##### Trigger configuration ##### primary_trigger=01 # rising edge, **tooth wheel**, no filtering # for alien advance measurement: #secondary_trigger=08 # falling edge, enable, no filtering, coil, alien advance # for cam trigger: #secondary_trigger=3D # rising edge, enable, filtering, coil, cam sync, both edges # disable it: secondary_trigger=ff # with 36-1 teeth, each tooth==10 degrees tooth_wheel=23 # 35 teeth between the missing tooth # move trigger to 70 degrees BTDC # /remember that it is the tooth right after the missing tooth that is the trigger/ trigger_tooth=0A # 170 - 70 = 100 = 10 teeth another_trigger_tooth=12 ign_tdcdelay=8C # 70 degrees BTDC # for a 36-1 wheel: tooth_wheel_twidth1=03 # 10 degrees, angular width of regular tooth tooth_wheel_twidth2=06 # 10 degrees, angular width of missing tooth # reset_engphase_after == 2 [revolutions] * ( (36-2) * tooth_wheel_twidth1 + 2 * tooth_wheel_twidth2 ) # 216 = 2 * ( 34*3 + 2*3 ) reset_engphase_after=D8 # 216 # Cam trigger goes high 90 degrees BTDC on cylinder 1 compression stroke # This results in the 0->1 trigger 20 crank degrees before the trigger_tooth (70 BTDC) # Cylinder 1 start of intake stroke is defined as phase==0 # A) cyl 1 start of intake: 0 degrees, phase=0 | upcoming primary trigger phase: 54-7*3 = 33 # B) cyl 1 start of compression: 180 degrees, phase=54 | upcoming primary trigger phase: 87 # C) cyl 1 start of combustion: 360 degrees, phase=108 | upcoming primary trigger phase: 141 # D) cyl 1 start of exhaust: 540 degrees, phase=162 | upcoming primary trigger phase: 195 # 0->1 cam trigger arrives between B and C, thus cam_sync_r_edge_phase = 141 (dec) cam_sync_r_edge_phase=8D # The 1->0 trigger arrives 180 cam degrees apart, thus cam_sync_f_edge_phase = (87+216/2)%216 = 33 (dec) cam_sync_f_edge_phase=21 crank_minper=ff # for std. coil tach signal #crank_minper=12 # 36-2 tooth wheel @ 6000 rpm : 18 (currently not used) ign_dwell14=3E ign_dwell6=A0 ign_out=70 ignchmax=01 ##### Knock setup ##### knock1_frequency=29 #2A # 7.27 kHz knock1_gain=14 knock1_integrator=11 knock2_frequency=00 knock2_gain=00 knock2_integrator=00 knock_conf=01 knock_sampling_window=e2 knock_threshold=50 knock_noise_scale=10 knock_max_retard=30 knock_default_retard=10 knock_retard_step=04 knock_retard_delay=10 knock_advance_step=02 knock_advance_delay=10 knock_minrpm=05 knock_maxrpm=ff ##### the rest ##### # which isn't used in this configuration... inj_stage2_rate=00 inj_stage2_start_tps=00 inj_stage2_start_map=00 als_ignretard=00 als_lowrpm=00 als_maxtps=00 als_rich=00 misc1out_minrpm=00 misc1out_maxrpm=00 misc1out_mintps=00 misc1out_maxtps=00 misc1out_minmap=00 misc1out_maxmap=00 misc1out_channel=FF misc2out_minrpm=00 misc2out_maxrpm=00 misc2out_mintps=00 misc2out_maxtps=00 misc2out_minmap=00 misc2out_maxmap=00 misc2out_channel=FF act_wot_rpm=FF # WOT switch RPM threshold (FF=disable) act_wot_channel=FF # WOT switch output channel selector (P259_0) act_rpm_rpm=FF # RPM switch RPM threshold (FF=disable) act_rpm_channel=FF # RPM switch output channel selector egt1_cal=ff egt1_offs=ff boost_channel=ff boost_conf=00 boost_minpressure=00 boost_pid_ilimit=00 boost_pid_kd=00 boost_pid_ki=00 boost_pid_kp=00 boost_targetoffs=00 water_pump_channel=ff water_pump_hyst=00 water_pump_temp=00