##### ## ## ## ## ##### ## ##
_ _ | | | | | |_| | | _ | |_| |_|
###### ## ## ## ## ##### ## ####
## ## #### ## #### ## ##
IMPORTANT: enter the case-INsensitive alphabetic (no numbers) code AND WRITE SOME SHORT summary of changes (below) if you are saving changes. (not required for previewing changes). Wiki-spamming is not tolerated, will be removed, so it does NOT even show up in history. Spammers go away now. Visit Preferences to set your user name Summary of change: '''Questions must be denoted with text "TODO:" ''' config.txt <code> ############################################################ # JimW's Setup # 1.8 8v counterflow motor # 36-1 crank wheel # 11th tooth on trigger wheel is TDC # Genboard v3.2 Assembled # High-Z (14.5ohm) 31lb/hr injectors), 3.0bar fuel pressure # Wideband Heater: WB1 # Wasted spark ignition # v20050922 ############################################################ # # CRANKING INFORMATION # # Fuel Pump Priming # 0x01=0.1ms # eg 0D=1.3ms primep=20 # Hot start priming pulse scaling at 170F # Measured as percentage # 0x80=50%, 0xFF=100% # eg A0=63% primep_temp_scaling=A0 # Cranking while cold (low temp) pulsewidth # Cranking pulsewidth at -40 F # 0x01=0.1ms # eg 1E=3.0ms cwl=2c # Cranking while hot pulsewidth # Used when coolant temp >= 170 degF # Typical cwh = about 20% of cwl # 0x01=0.1ms # eg 0A=1.0ms cwh=0A # Cranking Threshold # Defines boundry between cranking and running; # Cranking settings used up to cranking_thres rpm, # then settings switch over to running values. # Offset by +99 rpm # 0x01=100 (+99) rpm # eg 0x03=399 rpm cranking_thres=03 ############################################################# # # Operating environment # # Battery voltage calibration (affects dwell and pwm'ing) # Adjust so that VBatt reading in Megatune matches actual supply voltage. # 0x01=??? # # default=BC batt_cal=A8 # Mean Barometric Pressure # MAP sensor failure value (limp home value) # 0x01=2kPa baro=64 # Max allowed difference in barometric pressure # If barometric pressure less than baro-dbaro or # barometric pressure greater than baro+dbaro, use # baro as barometric pressure. # 0x01=1kPa? dbaro=0C # ############################################################# ############################################################# # # INJECTOR SETTINGS # # JimW: 109 cid (1776cc), 4 cylinder, 4 injectors, 31lb/hr # # COMMENT: # For Req_fuel information # see: http://www.megasquirt.info/manual/mfuel.htm#reqfuel # Scaling the VE and and req_fuel effectively increases the resolution # of the fueling parameters. # EXAMPLE: # scaling is accomplished by making: # req_fuel = calculated req_value / 2 # VE_TABLE==> j[] = j[] .*2 (matlab notation) # This changes the range of values in the j[] table # from 1..100 to 2..200 #6E req_fuel=8F # Injector bank setup # Number of injections per 720 degrees of crank revolution # # alternate works with h[0] # alternate=00 means use only first (batch fire; all injectors in one batch) # alternate=01 means alternate between first and second batch # alternate=03 to use indexes 3,2,1,0 # alternate=07 to use indexes 7,6,5,4,3,2,1,0 # # ex: 4 cyl, 4 injectors, 1 batch, all injectors attached to individual pins InjA...D # alternate=00 # divider=04 # h[0]=0F 00 00 00 00 00 00 00 # # ex: 4 cyl, 4 injectors, 4 batches, all injectors attached to individual pins InjA...D # Injectors are fired in this order: A-C-D-B # alternate=03 # divider=01 # h[0]=02 08 04 01 00 00 00 00 # # add 0x10 to fire in 1-batch mode at cranking alternate=11 # divider = (number of cylinders)/(alternate + 1) # examples: (x=don't care) # divider=04 and alternate=x0 for 1 bank # divider=02 and alternate=x1 for 2 banks # divider=01 and alternate=x3 for 4 banks divider=02 # Injector open and closing times # for more detailed information look: # MembersPage/MarcellGal/EngineSwap/Feed # http://www.vems.hu/wiki/index.php?page=MembersPage%2FMarcellGal%2FEngineSwap%2FFuelFeed # http://www.vems.hu/wiki/index.php?page=GenBoard%2FManual%2FConfig%2FInjectorOpening # [ This comes from I = V/R, the current flowing varies with the voltage applied since # the resistance of the injectors remains constant ] # # injopen should not be set higher than 0x20 (512us); # If injopen is too high, VE table at low kPa (j[0]) will have very small, untunable values # There is a bad rumour that injopen is the time needed for the injector to open. # It is not the case, and it has never been the case. # The misconception comes from the fact that if an injector opens slower # than another injector with all other parameters the same, # injopen value will be higher. Even with simpler injector opening models, # injector closing is also heavily involved. # In very short and simplified form: injopen=injector_opening_time - injector_closing_time. # But read more: # http://www.vems.hu/wiki/index.php?page=GenBoard%2FManual%2FConfig%2FInjectorOpening # 0x01=0.16ms # eg 0x10=2.56ms injopen=10 # Slope of line representing time added to # injopen to compensate for high/low battery voltage. # Only used when 7V>=VBATT>=19V # 0x01=xxxx battfac=10 # Time added to injection to compensate for reduction in fuel flow # during injector opening and closing. # 0x01=0.24ms # eg 0x20=7.68ms injocfuel=2C # Slope of line representing time added to # injocfuel to comepensate for high/low battery voltage. # Only used when 7V>=VBATT>=19V # eg 0xFF=77% of injocfuel @ 14V injrampup_battfac=FF ############################################################# # # High Z INJECTORS # # For non-PWM settings INJPWMT=FF, INJPWM=FF, INJPWM6=00 sets up HIGH Z injection # COMMENT why wouldnt INJPWMT be set to 00, then it doesnt need to get "disabled" # # delta t=(t=0 to time initial resistance is overcome in injector) # Injector PWM time at which to activate pwm # FF=disabled (set to 1 mS per MegaManual for starting point) # 0x01=0.1ms injpwmt=FF # Injector PWM duty cycle # Measured in percent (50%=0x80, 100%=0xFF) # 100% when using HighZ injpwm=FF # Added Injector PWM duty cycle during low battery voltage (6V) # Measured in percent (50%=0x80, 100%=0xFF) # 0% when using HighZ (we're already always at 100%) injpwm6=00 #-------------------------------------------------------------- # # Low Z INJECTORS # # delta t=(t=0 to time initial resistance is overcome in injector) # Injector PWM time at which to activate pwm # FF=disabled (set to 1 mS for starting point) # 0x01=0.1ms #injpwmt=0A # # Current during the hold cycle # injpwm= (I= (V/R) * (% duty cycle)) # verify by measuring OC0 with DVM # 0x01=0.4% # eg 0xFF=100% (that measures OC0=0V; since this is before the inverting FET driver) # 48/256 (=3/16), that measures OC0=5V * (256-48)/256 # Injector PWM duty cycle (when current limiting is active) #injpwm=30 # # In the case of low battery to keep the same I(current); the duty cycle must be increased. # COMMENT: this is straight forward and should be built into the firmware # Also, shouldn't this be taken care of by battfac? Seems redundant. # 6volts = Vbatt/2; Iold = Inew; dutycycle should be equal to 2x 12volt percentage. # added Injector PWM duty cycle during low battery voltage (6V) #injpwm6=40 #--------------------------------------------------------------- ############################################################# # # TPS related information # # TPS calibration # TPS closed (low) and open (high) settings tps_low=30 tps_high=AC # Acceleration Enrichment basis # 00 = Use TPS DOT for acceleration enrichment # 01 = Use both MAP DOT and TPS DOT for acceleration enrichment tpsdot_kpadot_conf=00 # TPSDOT bins # Amount of change in throttle position over 0.1 sec tpsdotrate[0]=05 tpsdotrate[1]=14 tpsdotrate[2]=28 tpsdotrate[3]=4D # TPS accelerator enrichement # Set to 00 for inital VE tuning # Amount of enrichment for amount of change in throttle position tpsaq[0]=00 tpsaq[1]=00 tpsaq[2]=00 tpsaq[3]=00 # Acceleration TPSDOT threshold (throttle sensitivity) # Minimum rate of change to enable any acceleration enrichment. # This should be set to at least tpsdotrate[0]. # Setting lower than tpsdotrate[0] effectively disables # TPS/MAP based acceleration enrichment. tps_thresh=05 # Acceleration duration # Amount of time to apply the enrichments specified in tpsaq[] bins. # 0x01=0.1s # eg 0x0A=1 second tpsasync=02 # Cold acceleration multiplication factor # Biased at 0x64 # eg 0x64 - bias = 0 acmult=64 # Cold acceleration added amount (at -40 F degrees) # 0x01=0.1ms # eg 0x14 = 2.0ms tpsacold=05 # Deceleration fuel cut # 100% (0x64) means no fuelcut on sudden tps-release # Values under 96% (0x60) are dangerous (can cause lean condition) # 0x00 would be rough behaviour # Recommended value: 64 tpsdq=64 # Decel fuelcut enabled above threshold # 0x01=100rpm # eg 0x0F=1500rpm decel_fuelcut_thres=0F # Overrun fuelcut: # injectors disabled above this # 0x01=100rpm # eg 0x10=1600rpm overrun_fuelcut=1F # Overrun fuel resume # Injectors re-enabled below this value # 0x01=100rpm # eg 0x0F=1500 RPM overrun_fuelresume=1E ############################################################# # # MAP Sensor settings # # MAP Sensor # MPX4250AP 250kpa sensor (standard for v3.x) kpafac=7F kpaoffs=52 ############################################################## # # Coolant fan output # # This ouput is generally used to trigger a relay to turn on # the electric radiator fan, or engage the electric clutch for # engine cooling fan. # # Temperature when fan will turn on (in degC) # 0x01=1 degree C # eg 0x55 = 85degC fan_temp=EA # Decrease in temperature required to turn fan off # fan_temp - fan_hyst=temp when fan will turn off # 0x01=1 degree C # eg 0x55 - 0x09 = 0x4C (76degC) fan_hyst=05 # Coolant fan # Output channel selection (digitalout) fan_channel=FF ################################################################### # # Idle # # Below this coolant temperature, fast idle is enable # 40 degF offset: 0=-40 degF, 200=160 degF # 0x01=1 degF # eg 0xAA=130 degF fastidle=AA # Idle enleaning limit # # Use to avoid enleaning of AFR when idling due to IAT # sensor heat soak (above 25C (77F) degrees). # 0x01=1% # eg 0x62=98% airden_ignore=62 ################################################### # # Idle air controller based idle control # # Idle air controller stepping sequence for # 4-pin bipolar stepper motors. # iac_step_seq=C9: Sequence is 3-1-2-0 # iac_step_seq=D8: Sequence is 3-0-2-1 iac_step_seq=C9 # Idle Air Controller Type # Use iac_conf=7E for stepper style # Use iac_conf=18 for PWM style iac_conf=18 # Max commanded output for solenoid # eg 0xFF=5V iac_max_steps=F0 # Enable IAC when TPS is less than iac_tps_thres # 0x01=0.64% open # eg 0x10=1/16 open throttle iac_tps_thres=05 # Below this temp, idle is set to iac_cold_rpm # In Fahrenheit degrees + 40 # 0x01=1 degF # eg 0xA0=200degF iac_cold_idle_temp=A0 # Above this temp, idle is set to iac_warm_rpm # In Fahrenheit degrees + 40 # 0x01=1 degF # eg 0xD0=248degF iac_warm_idle_temp=D0 # At iac_cold_idle_temp, set idle to iac_cold_rpm # 0x01=10rpm # eg 0x74=1160rpm iac_cold_rpm=74 # At iac_warm_idle_temp, set idle to iac_warm_rpm # 0x01=10rpm # eg 0x67=1000rpm iac_warm_rpm=64 # Actual IAC (stepper or PWM) position that is # applied during cranking is calculated # from engine coolant temp: # interpolation between iac_cold_start_pos and iac_warm_start_pos # open these significantly so lots of air can enter the engine # during cranking without TPS applied. # We want MAP values between 85..100kPa. # Valve position on cold start (-40F) iac_cold_start_pos=E2 # Valve position on warm start (170F) iac_warm_start_pos=B0 # Intentional rpm overshoot after startup # Add this amount of rpm to idle rpm at startup # 0x01=10rpm # eg 0x1F=310rpm iac_afterstart_rpm=1F # Duration to hold iac_afterstart_rpm # 0x01=0.1sec # eg 0x20=3.2 seconds iac_afterstart_duration=20 # During the afterstart duration, # iac_afterstart_steps * actual_afterstart_added_rpm # is added to the iac reference position. # Since PID control is active, sufficiently high # iac_integral_limit_inc will make sure the valve # is opened, even if iac_afterstart_steps is very small (0..1) # # Steps per 160rpm iac_afterstart_steps=04 # 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 # 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 # IAC Solenoid output channel # 0xFF=Disable/Stepper type IAC # iac_sol_channel=FF # ############################################################# ############################################################# # # Ignition based idle control # # This section should be used for idle # if you have no idle air control device. # Idle control via ignition advance/retard. # # Ignition advance based fine-adjust # 0x01=0.25 crank degrees per 256rpm iac_ign_advance_change=28 # Ignition advance based fine-adjust # 0x01=0.25 crank degrees per 256rpm iac_ign_retard_change=20 # Ignition advance limit when trying to increase RPM # 0x01=0.25 crank degrees # eg 0x10=4 degree limit iac_ign_advance_limit=10 # Ignition retard limit when trying to decrease RPM # 0x01=0x25 crank degrees # eg 0x1A=6.5 degree limit iac_ign_retard_limit=1A # Minimum distance (in degrees) before change in advance/retard. # If less than n degrees of ignition advance/retard is sufficient # to reach the idle RPM target, don't change current advance/retard # 0x01=0.25 crank degrees # eg 0x08=2 crank degrees iac_ign_threshold=08 # ############################################################# ############################################################# # # Engine Warmup # # 15..40% (0x0F .. 0x28) are common (and sometimes even higher). # Since originally warmup enrichment is not tuned, we often # adjust awev (besides cwl,cwh) to start the engine, but after # warmup enrichments tuning is done, awev must retuned # to get back the desired pulsewidth. Take notes of # working cwl,cwh, awev settings and actual CLT and # the warmup enrichments, so when warmup values are changed # awev can be changed with simple calculation instead of guessing # Afterstart warmup enrichment # awev is the percentage of added fuel added at startup that fades away # to zero in (awc) revolutions. # 0x01=1% # eg 0x1D awev=1E # Afterstart number of cycles # Afterstart enrichment will be scaled from awev to zero # through this many cycles after startup # 0x01=1 cycle # eg 0x64=100 engine cycles awc=96 # Afterstart warmup scaling at 170F # Use this percentage of awev when coolant temp >= 170F # 0x01=0.4% # eg 0x80=50%, 0xFF=100% awev_temp_scaling=A0 # Warmup Coolant # 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 Looks messed up! # F = 9/5 * C + 72 Looks messed up! # use these: # C= 5/9 * (F - 32) # 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 # warmup_clt is the value of each bin defined in warmup_clt_range # this is the actual warmup enrichment. # 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 # Warmup enrichment as function of RPM # At the last RPM bin r[], apply this percentage # of warmup_clt[x]-100. # Just above cranking RPM, 100% is applied. # Linear interpolation is used between just # above cranking and highest rpm. # Use 0xFF for full warmup enrichment at all RPM. # Recommended: E0 .. F0 # F0=240/256=94% # below C0 (75%) is not recommended warmup_rpm_scale=F0 ############################################################# # # EGO (Exhaust Gas Oxygen) Setup # # # Need valid values for this variable # Use ego_conf=20 for narrow band O2 sensor control? # Use ego_conf=01 for PID control? # Every one else using ego_conf=07 ego_conf=07 # EGO Resolution # Minimum recognized change in EGO value # 0x01=0.4% # eg 0x02=0.8% ego_delta=02 # Minimum time between correction factor changes # Measured in engine cycles # 0x01=1 engine cycle ego_lag=03 # Minimum coolant temperature for EGO enabling [F] # eg. 0xC2 = 194 degF (108degC) ego_coolant=92 # Maximum TPS position for EGO correction # 0xFF=100% open (WOT) ego_maxtps=FF # Maximum MAP for O2 correction # 0x01=2kPa ego_maxmap=FF # Minimum rpm for ego enabling # Ignore all EGO information below this RPM # 0x01=100rpm # eg 0x0C=1200rpm ego_minrpm=08 # Maximum rpm for EGO correction # 0x01=100rpm # eg 0x4B=7500rpm ego_maxrpm=FF # Warmup time # 0x01=1 sec # eg 0x3C=60 sec ego_warmup=3C # Maximum allowed enleanment of AFR # 0x01=0.4% # eg 0x30=19.2% ego_lean_limit=30 # Maximum allowed enrichment of AFR # 0x01=0.4% # eg 0x80=51.2% ego_rich_limit=30 ############################################################# # # WBO2 # # # Wideband O2 heater warm-up ramp speed # 0x01=0.0032V/sec # eg 0x3F=0.2V/sec wbo2_warmup_ramp=E8 # Heater absolute voltage limit # eg 0x2A=12V # eg 0xFF=30V wbo2_abs_limit=E4 # Max time allowed at absolute voltage limit # in milliseconds # 0x01=1ms # eg A0=160ms wbo2_limit_maxt=A0 # Fall back voltage after max time spent at absolute limit # 1C=10V, 2A=12V, FF=30V wbo2_fallback=60 # Time before retrying control: # 0x01=4 sec # eg 0x3B=59 seconds wbo2_retry_t=03 # Edgetime correction constant C/R # EVERYONE HAS wbo2_edgetime_corr=BA, SHOULD THIS BE ADJUSTABLE? wbo2_edgetime_corr=BA # Gate for small edgetimes # Any reading less than this is ignored # 0x01=0.5usec # 0x50=40.0usec wbo2_edgetime_min=50 # O2 percentage of 'normal' air: 20.947%, calibrated to 20.95 # WARNING: Sensor dependent. Every single sensor is different! # For verification, also measure (and write here) sensor RCal (DVM Ohmmeter mode) # between red wire and connector pin that has no wire towards the sensor (pins 2 and 6). # The RCal lives in sensor connector housing. # Typical reading is between 80 and 180 ohms. # # Rcal(ohms) wbo2_calibration starting point # 30 0x00 # 50 0x3C # 70 0x66 # 90 0x85 # 110 0x9D # 130 0xB0 # 200 0xDC # 300 0xFC # # Rcal=127 ohm, wbo2_calibration=B0 # 0xB0 gives free air reading of 1850 # 0xD0 gives free air reading of 2000-2020 # 0xD2 = 2010-2030 wbo2_calibration=E0 # wbo2_pump_pw_zero: # Pump zero duty cycle. # Adjust to get pump+ close (within 0.1V if pump+ connection open) to pump-. # Pump- is appr. 3.98V # 5V/256 (?) # # default: wbo2_pump_pw_zero=0x66 # #0x65=0.71V #0x64=0.24V #0x63=-0.064V #0x62=-0.335V wbo2_pump_pw_zero=63 # WBO2 target Ri (pulse amplitude) # 0x01=5V/4096 wbo2_ri_target=96 # OPA amplification, g = 270/75 + 1 = 4.6 # Vadc = g * (5 - Vnernst) # # Vnernst DC at sensor wire = 4.45V # Vnernst DC at adc = 4.6 * (5 - 4.45) = 2.53 # nernstdc_target = Vadc / g * 256 = 141 = 0x8D # WBO2 target nernstDC # 0x01=5V/256 # 0x01=20mV # eg # 0x66=2.04V # 0x66=102 decimal # 102*20mV=2.04V wbo2_nernstdc_target=8D # wbo2_ri_confidence_scale: # Ri confidence scaling factor. # 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 ############################################################# # # Knock Detection and correction # 2-channel knock sensor control # # Not currently used, mechanical lifter head makes too much noise # f_knock = 900 / (pi*r) = 900 / (pi * 0.5 * 0.083) = 6.903 kHz # from datasheet tpic801.pdf page 10 table#1 # bandpass frequency selection 6.94 kHz is closest to 6.903 kHz # filter setting = 29 hex (41 dec) # Overall System Settings # Knock selection knock_conf=00 knock_sampling_window=FF # Use knock sensing in this RPM range # FF for both means no knock sensing/control knock_minrpm=FF knock_maxrpm=FF # Channel #1 setup knock1_frequency=29 knock1_gain=FF knock1_integrator=FF # Channel #2 setup knock2_frequency=29 knock2_gain=FF knock2_integrator=FF # Trigger level knock_threshold=FF knock_noise_scale=FF # Ignition effects # # Knock getting louder knock_max_retard=FF knock_default_retard=00 knock_retard_step=FF knock_retard_delay=FF # Knock getting softer knock_advance_step=FF knock_advance_delay=FF ############################################################# # # VE learning # # Some basic comments: # VE Learning can adjust a loadsite that is visited # but not a neighboring loadsite that is rarely visited causing # peaks and valleys in the VE (j[]) map that will need smoothed # # EGO correction is transferred across loadsites for fast loadsite-changes # (that happens, especially in kPa direction) # # VE Learning Enable/Disable # Use ve_learn_conf=00 to Disable # Use ve_learn_conf=01 to Enable ve_learn_conf=01 # Minimum coolant temp for learning to be enabled. # This should be set to a temperature above where # warmup enrichments are used. # 0x00=-40F # 0xFF=215F ve_learn_coolant=D8 # VE Learning speeds # 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 # ve_learn_min_weight: # Minimum weight for modifying VE entry ve_learn_min_weight=4D # ve_learn_limit: # Max deviation from reference VE bin # 0x01=0.4% ve_learn_limit=FF # ############################################################# ############################################################# # # Triggers # # Primary_Trigger # # NEED LIST OF VALID VALUES AND APPLICATIONS HERE # FE: Rising Edge trigger # FF: Falling Edge trigger # 01: Multi-tooth wheel configuration primary_trigger=01 # tooth_wheel: # Used for multi-tooth wheels # Total number of teeth on wheel # eg For 60-2 wheel, 58 teeth = 3A # eg For 36-1 wheel, 35 teeth = 23 tooth_wheel=23 # tooth_wheel_twidth1: # width (in degrees) of each tooth # eg For 36-1 wheel, each tooth is 10 degrees = 0A # eg For Rising edge coil type, angular width of 'window' tooth_wheel_twidth1=0A # trigger_tooth: # Tooth that triggers event (Used for multi-tooth wheels) # Usually first tooth after missing tooth is selected. # Counting from missing tooth, where missing tooth=00. # If using wheel (eg 60-2) with >1 missing tooth, 1st missing # tooth is 00, second is 01; first tooth after missing teeth=02. trigger_tooth=07 # Secondary_Trigger # FE: Rising Edge trigger # FF: Falling Edge trigger # 01: Multi-tooth configuration # 1D: Rising edge, enable, enable filtering, coil type, cam sync, single edge secondary_trigger=02 # another_trigger_tooth: # Trigger tooth for secondary trigger device. # 06 (decimal 06) halves the 12-1 (2 events per crankrot for 4 cyl) - JoseLCortes # 1E (decimal 30) halves the 60-2 (2 events per crankrot for 4 cyl) # 14 (decimal 20) 1/3-ds the 60-2 (3 events per crankrot for 6 cyl) another_trigger_tooth=12 # width (in degrees) of each tooth # eg For 36-1 wheel, each tooth is 10 degrees = 0A # eg For Rising edge coil type, angular width of 'window' # JoseLCortes: F0 #angular width of missing tooth tooth_wheel_twidth2=06 toothrel_missing=FF toothrel_normal=FF # Minimum crank period # Triggers before this amount of time are # considered errors. # Be sure to consider your max rpm (rev_limit) when # calculating crank_minper. # 0x01=0.16ms # eg 0x50=12.8ms crank_minper=50 # cam_sync settings: ################################### # JoseLCortes: # 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 # B) cyl 1 start of compression: 180 degrees, phase=60 # C) cyl 1 start of combustion: 360 degrees, phase=120 , trigger at 104 # D) cyl 1 start of exhaust: 540 degrees, phase=180 # 0->1 cam trigger arrives between B and C, thus cam_sync_r_edge_phase = 104 (dec) # cam_sync_r_edge_phase=68 # cam_sync_r_edge_phase=FF ################################# # 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=FF ################################## # reset_engphase_after == 2 [revolutions] * ( (12-2) * tooth_wheel_twidth1 + 2 * tooth_wheel_twidth2 ) # 240 = 2 * ( 10*10 + 2*10 ) # reset_engphase_after=D8 # ############################################################# #************************************************************ # mcell's Trigger setup, 60-1 vr # Triggers, HW determines VR or Hall # # Primary Trigger #primary_trigger=01 #tooth_wheel=3A #trigger_tooth=10 # Secondary Trigger #secondary_trigger=FF #another_trigger_tooth=1E #crank_minper=50 #tooth_wheel_twidth1=06 #tooth_wheel_twidth2=12 #cam_sync_r_edge_phase=FF #cam_sync_f_edge_phase=FF #reset_engphase_after=FF # #************************************************************ ############################################################# # # Ignition # # Rev limiter # Fuel and spark are cut above rev_limit rpm # 0x01=100 rpm # eg 0x4B=7500 rpm rev_limit=4B # Distance (in degrees) from first tooth after missing tooth to cylinder #1 TDC # 0x01=0.5 degrees # eg 0xF0=120 degrees # 62 degrees = 120 (from missing tooth) - 48 (trigger tooth * 6) ign_tdcdelay=78 # Dwell # Dwell settings for 14V and 6V # 0x01=0.64ms # eg 0x14= ign_dwell14=14 # 0x01=0.27ms ign_dwell6=1E # Ignition advance at cranking # 0x01=0.25 degrees (at crank) # eg 0x20=8 degrees ign_crank_advance=20 # Dummy ignition with inverted output # 0x01=??? # eg 0x70=??? # 0xFF=Disable ignition output ign_out=70 # Highest indexed ignition coil to trigger # At least 0..ignchmax index of h[2] must be filled in # eg1 h[2] = 05 07 05 07 00 00 00 00 # eg1 ignchmax = 03 ignchmax=07 # Cease ignition after engine_off_delay # TIMEUNITS? # 0x01=??? # eg 0x08=? engine_off_delay=08 # ############################################################# ############################################################# # # Fuel Pump Control # # TURN OFF PUMP AFTER pump_on_mintime TIME UNITS # 0x01=??? # eg 0x0F=???s pump_on_mintime=0F # Free injector driver drives the fuelpump relay? # If no free injector driver, select another channel (eg. from P259) or set last element of h[0] # FF=Auto-shutoff disable (not recommended, dangerous) fuelpump_channel=00 ############################################################# # # Second stage of injectors # Not used # inj_stage2_rate=FF inj_stage2_start_tps=FF inj_stage2_start_map=FF # ############################################################# ############################################################# # # Anti-lag system # Not used # als_lowrpm=FF als_maxtps=FF als_ignretard=FF als_rich=FF als_rev_limit=FF # ############################################################# ############################################################# # # Exhaust Gas Temperature # 48..4B are typical values for Celsius output, # calibrate with DVM so that: # EGT reading is around: Tchip + 25C/mV * UinputmV # Tchip=25C # 25C/mV is the same as 40uV/C that is characteristic of K-thermocouple # UinputmV is the mV signal measured between green(+) and white(-) signals ( K-thermocouple wires during operation) egt1_cal=4A egt1_offs=00 # ############################################################# ############################################################# # # Boost Controller # 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 # ############################################################# ############################################################# # # Water pump Controller # Not used water_pump_temp=00 water_pump_hyst=00 water_pump_channel=00 # ############################################################# ############################################################# # # Auxillary outputs (WOT and RPM, WOT, RPM, channel definition) # # Use 0xFF to disable outputs # # Aux 1 output misc1out_minrpm=28 misc1out_maxrpm=48 misc1out_mintps=FF misc1out_maxtps=FF misc1out_minmap=00 misc1out_maxmap=FF misc1out_channel=00 ################### # # Aux 2 output # misc2out_minrpm=46 misc2out_maxrpm=FF misc2out_mintps=00 misc2out_maxtps=FF misc2out_minmap=00 misc2out_maxmap=FF misc2out_channel=00 ################### # # Aux 3 output # act_wot_rpm=FF act_wot_channel=00 ################### # # Aux 4 output # act_rpm_rpm=4B act_rpm_channel=00 # ############################################################# ############################################################# # # LCD layout # # A better description would definately be helpful # 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 # ############################################################# ############################################################# # # RPM Calculation # # eg 0x0BB8 = 3000 = 12000 rpm/4 cyl # 4 cylinder: rpmk[0]=0B, rpmk[1]=B8 # 5 cylinder: rpmk[0]=09, rpmk[1]=60 # 6 cylinder: rpmk[0]=07, rpmk[1]=D0 # 8 cylinder: rpmk[0]=05, rpmk[1]=DC rpmk[0]=0B rpmk[1]=B8 # ############################################################# ############################################################# # # DO NOT CHANGE for a 4cyl # These will be different for 5,6,8 or 12 cyl # (useful descriptions are left over from Megasquirt) config11=30 # old config 31 config12=30 # 4 cylinders config13=02 # old config 00 mt_unused=FF # ############################################################# ############################################################## # # Air mass calculation method # # Use 0x00 for speed density control at all RPM (recommended) hybrid_rpm_a=00 hybrid_rpm_m=00 # ############################################################# ################################################################################################## # # Don't touch stuff below here # ego_pid_kp=40 # not used for the wbo2 incredible ego, only for NBO2_PID_EGO_EXPERIMENT ego_pid_window=FF # Narrow band O2 sensor target voltage # ego_target = 51 * O2_sensor_voltage ego_target=19 # wbo2_warmup_target: # UNUSED # max authority of I term is: wbo2_pump_pid_ki * wbo2_pump_pid_ilimit # note that lower wbo2_pump_pid_ilimit means faster operation </code> tables.txt: <code> ############################################## # 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]=0A 05 00 00 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 </code> Optional: Add document to category: Wiki formatting: * is Bullet list ** Bullet list subentry ... '''Bold''', ---- is horizontal ruler, <code> preformatted text... </code> See wiki editing HELP for tables and other formatting tips and tricks.