############################################################ # Last Updated 08 Apr 2005 # # VW Jetta GTX, 2.0L 16v # 4 window hall sensor # target board v3.2 # HiZ injectors, INJB, INJF (2+2) # Wideband Heater: WB1 # IGNition Drivers: DR_00, DR_01, DR_02, DR_03, # VE Table being used in double resolution mode ############################################################ # # STARTUP INFORMATION # Get fuel pressure up and define what is running vs. cranking # Define Rev Limit # ===== Fuel Pump Priming primep=0F # 1.5s (0x0F * 100us) # --- Hot start Priming pulse scaling at 170F (80= half FF = same as cold) primep_temp_scaling=A0 # ===== Cranking Pulse Definition # typically cwh =~ 0.2 * cwl cwl=5B # Cranking pulsewidth [100 usec] at -40 F (7ms) cwh=1F # Cranking pulsewidth [100 usec] at 170 F (2ms) # Cranking threshold [100 rpm] cranking_thres=03 # Cranktigger period minimum [16 usec] crank_minper=80 # --- Rev limiter # Rev limit (hard) [x100 rpm] eg. 0x4B * 100rpm = 7500rpm # REV Limit at 7.5kRPM rev_limit=4B ############################################################# # # INJECTOR SETTINGS # # Fueling Parameters # # COMMENT: # For Req_fuel information # see: http://www.megasquirt.info/manual/mfuel.htm#reqfuel # see: new wiki page # 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 # ===== Req_fuel Setup ============== # req fuel is calculated to be 9.7ms via mega manual # 122 cid , 4cln, 4 injectors, 2 squirts, 33#/hr, staging: alternating # req_fuel variable is in hex and is multiplied # 0x00 * .1ms EXAMPLE: 3.2ms = 0x20 # 9.4ms ==> 0x5E # # Normal Req_fuel setting ( j[] table 0..100*256 ) # req_fuel = 82 # Fuel constant (req_fuel) (13.0ms Decimal) # # To double the VE table resolution divide req_fuel by two req_fuel=82 # ===== Physical setup =============== # 4 injectors -- 2 banks # Firing sequence: alternating, 2 squirts per 720degree rotation # Setting up a 4clyn with 2 banks of injectors # Wired up for 1 lowZ injector per driver # # COMMENT: Verify: The divider says how many times banks fire during # 720degree rotation # # ===== Alternate Injector bank setup ====== # Alternate injector drivers Works with h[0] # alternate = 00 means use only first (batch fire or TBI) # alternate = 01 means alternate between first and second # alternate = 03 to use indexes 3,2,1,0 # alternate = 07 to use indexes 7,6,5,4,3,2,1,0 # add 0x10 (bit4=1) to fire all at cranking simultaneously at cranking # so this is alternate=03, but bit4=1 enables squirting both banks at cranking alternate=11 # ===== Divider ============================ # COMMENT: Better notes here required # For a 4clyn you want divider * (alternate + 1) = 4 # divider * (alternate+1) should be 4 for a 4 cyl # divider=02 and alternate=01 for 2 banks # divider=01 and alternate=03 for 4 injector banks divider=01 # ===== Injector open&closing times ============== # for more detailed information look: # MembersPage/MarcellGal/EngineSwap/Feed # http://www.vems-group.org/wiki/index.php?page=MembersPage%2FMarcellGal%2FEngineSwap%2FFuelFeed # http://www.vems-group.org/wiki/index.php?page=GenBoard%2FManual%2FConfig%2FInjectorOpening # BATTFAC is the extra time it would take to open if only 6V would be present (low battery) # BATTFAC is also the decrease in time it would take to open if the applied voltage was 12V+6V # [ This comes from I = V/R, the current flowing varies with the voltage applied since # the resistance of the injectors remains constant ] # Other things that can effect opening and closing speeds: # The type of flyback chosen (high or low voltage) # The type of injector used (high or low Z ) # The pressure differential (Force solenoid required to overcome) # # MCELL suggests that INJOPEN not be set much higher than 512us = 32*16usec (0x20) # shows up in low kPa setting being lower than high KPa settings in VE table (j[]) # Injector opening time [16usec], 10*16 = 160us injopen=0A # Battery gamma factor +- 16 [*16 usec] depending on VBATT battfac=10 # injector opening effective rampup time [24 usec], 25*24=600us injocfuel=19 # min rampup time is injocfuel*77% # injector rampup slope battery dependence (FF) injrampup_battfac=FF # ======== High Z INJECTORS =============== MAY USE ONLY HIGHZ or LOWZ settings # 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" injpwmt=FF # Injector PWM time at which to activate pwm [100 usec] # FF=disabled (set to 1 mS per MegaManual for starting point) injpwm=FF # Injector PWM duty cycle (when current limiting is active) # set to ~100% [FF] no PWM injpwm6=00 # added Injector PWM duty cycle during low battery voltage (6V) # ======== Low Z INJECTORS & PWM variables =============== # The advantage of using LOW Z injectors is faster opening and closing times, # based on the simple physics of more current to open the injector and less stored energy # when closing the injectors # Low Z injectors are designed to work on a Peak and Hold manner # During the Peak stage the current is switched on allowing the maximum # current to flow to open the injector in a fast manner. This takes place # at the beginning of each injection event (squirt) for a specific period of time # This entered into INJPWMT ( injector PWM start timedelay ) # injpwmt=FF # Injector PWM time at which to activate pwm [100 usec] # FF=disabled (set to 1 mS per MegaManual for starting point) # Then the injector starts the hold mode where the PWM % becomes applicable. # to hold an injector (solenoid) open takes significantly less power # the injector no longer has to charge or overcome the fuel pressure to keep it open. # the current during the hold cycle is calculated by # I = V/R * % duty cycle # verify by measuring OC0 with DVM # [0.4%] unit, so FF is 100% (that measures OC0=0V; since this is before the inverting FETdriver) # 48/256 (=3/16), that measures OC0=5V * (256-48)/256 # injpwm=FF # 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 # 6volts = Vbatt/2; Iold = Inew; dutycycle should be equal to 2x 12volt percentage. # injpwm6=FF # # Constant to calculate RPM: # 12000 rpm/4clyn = 3000=11*256 + (11*16 +8) =0x0BB8 rpmk[0]=0B rpmk[1]=B8 ############################################################# # TPS related information # ===== TPS calibration ================= # read TPS from LCD (or serial connection Manmll) # in both endstates of throttle and configure these # Important for triggering idle mode and acceleration enrichment # --- TPS calibration means that the Analog(voltage) to Digital (count) is set # at zero throttle and Wide Open Throttle (WOT) # The standard: lowest voltage for closed throttle # highest voltage for open throttle # --- See Manual or wiki page for how to hook up. # --- Most Tuning software has this function in them # Megatune, Megatunix, etc. # # ===== TPS low and high settings from installation tps_low=29 tps_high=FE # ====== TPS information used during engine running # 0: TPSDOT, 1: MAPDOT acceleration enrichment tpsdot_kpadot_conf=00 # --- TPS dot bins # Rate of change bins for use with tps_thresh. # If 14 =< actual delta(throttle position) < 28 then tpsdotrate[1] # is the active bin. tpsdotrate[0]=05 tpsdotrate[1]=0E tpsdotrate[2]=20 tpsdotrate[3]=40 # --- TPS accelerator enrichement: set to 00 for inital VE tuning # TPS acceleration amount (fn TPSDOT) [100 usec]. This is the acceleration # enrichment pulsewidth, the active bin is determined by tpsdotrate[]. tpsaq[0]=00 tpsaq[1]=00 tpsaq[2]=00 tpsaq[3]=00 # Accel TPSDOT threshold (throttle sensitivity), this specifies # the minimum rate of change to enable any acceleration enrichment tps_thresh=05 # Acceleration duration [0.1 sec] eg. 0x0A * 0.1 = 1 second tpsasync=02 # Acceleration cold multiplication factor, biased at 0x64 eg. 0x64-bias = 0 acmult=64 # Cold acceleration added amount (at -40 F degrees) [x100 usec]. # eg. 0x14 * 100uS = 2000uS tpsacold=05 # Deacceleration fuel cut, 100(0x64) means no fuelcut because of sudden # tps-release. This can cause lean condition, misfire, kill-the-cat etc, # so take care. # 00 would be rough behaviour, other value under 96% (0x60) is dangerous, # I'd leave it at 100% tpsdq=64 # Decel fuelcut enabled above threshold [x100 rpm] eg. 0x0F * 100 = 1500rpm decel_fuelcut_thres=FF # --- Overrun fuelcut: # Injectors disabled above this [x100 rpm] eg. 16(0x10) x 100 = 1600rpm # when engine.tps <= config.iac_tps_thres (TPS fully released). # Care should be taken here with any automatic transmission car. There # should be at least 400RPM between overrun_fuelcut and overrun_fuelresume overrun_fuelcut=10 # --- Overrun fuelresume # Injectors reenabled below this [x100 rpm] eg. 15 (0x0F) x 100 = 1500rpm. # Must be lower than overrun_fuelcut. overrun_fuelresume=0F ############################################################# # Use to avoid enleaning of AFR when idling due to increased # intake air temperature. A value of 98 (decimal) will limit # the leaning of AFR at idle to 98% at 25C degress. # 0==disable airden_ignore=62 ############################################################# # # Barometer settings # # ===== Map Sensor =========================== # standard MPX4250AP 250kpa sensor that comes with V3.x # MAP range [2kPa] 0: use A/B lookup table kpafac=7F # MAP signal offset eg.0x52 [2.5mV] kpaofs=0 # ===== Mean Barometric Pressure -- TODO explain better baro=64 # ===== max allowed difference in barometric pressure # else use baro=0x64 (100 kPa) dbaro=0C ############################################################# # # these are important # These useful descriptions are left over from Megasquirt # # config11 # bit 0 0:mpx4115ap, 1:mpx4250ap # bit 2 0:4-stroke, 1:2-stroke # bit 3 0:port injection, 1:throttle body # bit 7-4 defines no of cylinders config11=31 # config12 # bit 1-0 coolant sensor type # bit 3-2 mat sensor type # bit 7-4 number of injectors config12=30 # bit 0 ODDFIRE 0:normal, 1:odd-fire # bit 1 O2_WB_SENSOR 0:narrowband, 1:diy-wb # bit 2 CONTROL_STRATEGY 0:speed-density, 1:alpha-N # bit 3 BARO_CORRECTION 0:off, 1:on # bit 7-4 unsused config13=02 mt_unused=FF ############################################################# # # Battery Calibration for starting and dwell # # Calibration of the voltage divider (VBatt) # the calibration is downscale only, if you use the v3.0 voltage divider # resitors (100k, 20k -> ADC0 = VBatt / 6 ), a good starting value would be FF, # if you have the new v3.1 voltage divider (75k, 22k -> ADC0 = VBatt / 4.409) # BB would be a good starting value (BB = FF / ( 6 / 4.409)) batt_cal=BC ############################################################# # # 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 degC eg. 0x55 = 85degC fan_temp=60 # --- Decrease in temperature required to turn fan off. # --- fun_temp-fan_hyst=temp when fun will turn off 0x55 - 0x09 = 0x4C (76degC) fan_hyst=05 # coolant fan, output selection (digitalout) fan_channel=DISABLED_F ############################################################# # # Fast Idle # # Fast idle temperature, open solenoid valve under (fastidle - 40 Fahrenheit): # if you want 88F, set 88+40 = 128 = 0x80 fastidle=C6 ############################################################# # # Idle air controller # # This is where the idle is setup lots of stuff here to screw up. # # --- iac_conf bits --- 0 1 # iac_power_off_stepper bit 0, Enabled / Disabled # iac_low_power_halt bit 1, Enabled / Disabled # iac_stepper bit 2, Stepper / PWM # iac_type bit 3, ON/OFF / PWM/Stepper # iac_advance bit 4, Enabled / Disabled iac_conf=0c # PWM type enabled iac_step_seq=C9 iac_max_steps=F0 iac_tps_thres=05 iac_cold_idle_temp=A0 # max temperature for cold idle speed iac_warm_idle_temp=D0 # min temperature for warm idle speed iac_cold_rpm=8c # idle rpm (cold) [10 rpm], 1400 iac_warm_rpm=64 # idle rpm (warm) [10 rpm], 1000 iac_cold_start_pos=E2 iac_warm_start_pos=B0 iac_afterstart_rpm=1F # afterstart rpm [10 rpm], added to idle rpm iac_afterstart_duration=20 # duration of afterstart rpm [0.1 sec] iac_afterstart_steps=04 iac_kp=25 iac_ki=10 iac_kd=30 iac_integral_speed=C0 iac_integral_limit_dec=05 iac_integral_limit_inc=E0 iac_integral_deadband=0A iac_deadband=05 iac_pid_conf=01 iac_overclose_interval=B8 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_sol_channel=INJFET_G # ====== Ingition based idle control ======================== # TODO: GRM has no Air control This section must be used for idle # TODO: idle control via ignition advance / retard works without idle air-control too iac_ign_advance_change=28 iac_ign_retard_change=20 iac_ign_advance_limit=10 iac_ign_retard_limit=1A iac_ign_threshold=08 ############################################################# # # Initial Start and Warmup # # ======== Afterstart # Afterstart warmup enrichment (percent, added value) awev=28 # Afterstart warmup scaling at 170F (80=half, FF=same as cold) awev_temp_scaling=98 # Afterstart number of engine cycles awc=80 # ======== 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 # 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]=9B warmup_clt[1]=9B warmup_clt[2]=99 warmup_clt[3]=93 warmup_clt[4]=8A warmup_clt[5]=7d warmup_clt[6]=78 warmup_clt[7]=6e warmup_clt[8]=6a warmup_clt[9]=64 # warmup enrichment can be decreased as a function of rpm. # this is a nice feature, eg. +16% ... +0% gives nice result # 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 ############################################################# # # EGO Exhaust Gas Oxygen -- very important. # ======= EGO configuration ================================ # Dave Brul's EGO setup # TODO: insert valid EGO setting for LSU4 setting into reference firmware # --- 07 Variable Air Fuel Ratio # bit5:NBO2_adc7 bit0:PID ego_conf=07 # --- Step size (percent) [0.4%] eg. 0x02 * 0.4% = 0.8% ego_delta=02 # timeconstant (engine cycles) for changing correction factor ego_lag=04 # --- Min coolant temperature for ego enabling[F] eg. 0xC2 = 194degF (108degC) # C = 5/9 * (F - 40) # F = (C+40) * 9/5 # Setting this requires you to know if F or Cel is your chosen measurement ego_coolant=94 # --- Max TPS position for ego correction, This setting allows for learning at WOT ego_maxtps=FF # --- Max MAP for O2 correction[kPa] ego_maxmap=FF # --- Min RPM for ego enabling [100rpm] eg. 0x0C * 100rpm = 1200rpm # Ignore all information below this RPM ego_minrpm=0C # --- Max rpm for O2 correction [100rpm] 0x32 * 100rpm = 7500rpm ego_maxrpm=FF # --- Warmup time [sec] eg. 0x3C (60 sec) [IS THIS FOR THE O2 sensor?] ego_warmup=3C # --- Max percent to lean afr[0.4%] eg. 0x30 * 0.4% = 19.2% ego_lean_limit=30 # --- Max percent to rich afr[0.4%] eg. 0x80 * 0.4% = 51.2% ego_rich_limit=30 # --- THIS NEEDS DEFINED ego_pid_kp=40 # --- ego_target = 51 * O2_sensor_voltage ego_target=19 # --- not used for the wbo2 incredible ego, only for NBO2_PID_EGO_EXPERIMENT # Does this need to be commented for WBO2 setup? ego_pid_window=FF # MCELL vs DaveB (X = same; - = diff) # - ego_coolant=00 DB:94 # X ego_maxtps=FF DB:FF # X ego_maxmap=FF DB:FF # - ego_minrpm=04 DB:0C # X ego_maxrpm=FF DB:FF # X ego_warmup=3C DB:3c # - ego_lean_limit=1D DB:30 # - ego_rich_limit=28 DB:30 # X ego_pid_kp=40 DB:40 # NA mt_unused=00 DB: NOT DEFINED # - ego_delta=01 DB:02 # X ego_target=19 DB:19 # X ego_pid_window=FF DB:FF ############################################################# # TODO: insert a valid LSU4 setting into reference firmware # Dave Brul's WBO2 setup # wbo2 config with softpwm_act; softpmw_act_var is broken!! # You must still calibrate your WBO2 see Manual or # wiki page: # # Warmup ramp speed [3f=0.2V/sec] 0.2 V/sec wbo2, warmup ramp speed [1.51 mV/sec] wbo2_warmup_ramp=A0 # Warmup target wbo2_warmup_target=FF # Heater absolute limit [2a=12V ff=30V] wbo2, heater absolute limit [?](DA) wbo2_abs_limit=E4 # Max time spent at abs_limit [262msec] wbo2_limit_maxt=A0 # Fallback V after maxt [1c=10V ff=30V] wbo2_fallback=60 # Retry control after [4sec] wbo2_retry_t=06 # Edgetime correction constant C/R wbo2_edgetime_corr=BA # Smaller edgetimes are neglected [0.5usec] wbo2_edgetime_min=50 # (2.55mA * 61.9 / 106.2 ) + 2.55 = 4.036299 mA # 4.036299 * 510 Ohm = 2.058512712 V # i measured +/- 2.06V -> Good! # 1% is eaten by the 10k pump+ to pump- resistor # O2 percentage of 'normal' air: 20.947%, calibrated to 20.95 # Breath test: Breath out to calibrated sensor O2 should go down # by 100-200 counts (1-2%) # # Suggested values to start from: # RCal (Ohm) = 30 50 70 90 110 130 200 300 # wbo2_calibration = 0 60 102 133 157 176 220 252 # A1 for the ETAS3 sensor with Rcal = 75.3 ohm wbo2_calibration=AE # to Calibrate 0V +/-0.2V across pump(+) and pump(-) # Pump zero dutycycle (default: 0x66) [5V/256] # The easiest way to measure this is to match OC3A (shotly after powerup) # to the 2V reference. Let's say I measure 1.96V instead of 2V (pin14 of # the OPA closest to AVR). If I measure 2.04 V on OC3A (as the result of # wbo2_pump_pw_zero=0x66 setting), I know that I must decrease # wbo2_pump_pw_zero by 4 (to 62) to decrease the 2.04V to the required # 1.96V (by 2.04-1.96V=80mV = 4*20mV since each step is 5V/256 = 20mV ) # Board #183, pump(-)=3.95V, pump(+)=3.83V (63), 4.11V(64) wbo2_pump_pw_zero=63 # WBO2, target Ri (pulse amplitude) [5V/8192] 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 [5V/256] wbo2_nernstdc_target=8D # --- I NEED A DESCRIPTION wbo2_heater_pid_kp=46 wbo2_heater_pid_ki=10 wbo2_heater_pid_kd=1A wbo2_heater_pid_ilimit=80 # --- I NEED A DESCRIPTION wbo2_pump_pid_kp=40 # 2E wbo2_pump_pid_ki=2E # 1D wbo2_pump_pid_kd=08 # 08 wbo2_pump_pid_ilimit=84 # 84 # --- I NEED A DESCRIPTION wbo2_ri_confidence_scale=80 ############################################################# # # Knock Detection and correction 2-channel Knock sensor control # # NOTE: GRM car NOT using Knock being used this go round # --- Dave Brul's notes PROBLEM his has more settings. # engine with bore 83mm and stroke 86mm # 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 SettingsKnock selection knock_conf=00 knock_sampling_window=FF # --- RPM range valid for FF, FF means no knock 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 VERY important # # TODO: Setup for learning. GRM coolant sensor is crap. # 218 is damn close to the thermotime switch reading # how about we make this much lower? # COMMENT: Insert comments on enabling/disable/howto use # Some basic comments: # VE Learning can adjusta 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) # # Turn on VE Learning # ve_learn_conf=01 / 00 is ON / OFF ve_learn_conf=01 ve_learn_coolant=D8 # 0x00 means -40 F # 0x255 means 215F # VE Learning speeds higher number means more agressive ve_learn_rpm_scale=1E ve_learn_kpa_scale=1E ve_learn_ego_scale=43 # TODO: comment ve_learn_speed=FF # comment ve_learn_max_power=FF ve_learn_min_weight=4D # comment ve_learn_limit=FF ############################################################# # # Triggers, HW determines VR or Hall # software defines how it reacts # # The ITB GRM car uses a 4 window hall sensor for a trigger # # ========== 4 WINDOW HALL SENSOR ==================== # # ======Primary_Trigger ==================== # bit0 0:falling / 1:rising # bit1 0:toothwheel / 1:coil # bit2 0:no filtering / 1:filtering # FE: Rising Edge trigger # FF: Falling Edge trigger # 01: Multi-tooth configuration primary_trigger=FE # Rising edge Hall sensor # tooth_wheel: Used for multi-tooth wheels (total # of teeth) # not used in a basic coil type trigger aka DummyIgnition tooth_wheel=00 # tooth wheel, angular width of tooth # for a 60 tooth wheel this is 360 / 60 = 6 degrees tooth_wheel_twidth1=06 # tooth wheel, angular width of missing tooth # 60 - 2 wheel, 3 times tooth_wheel_twidth1 = 18 degrees tooth_wheel_twidth2=12 # -- trigger_tooth:Used for multi-tooth wheels (Tooth that triggers event) trigger_tooth=00 # not used in basic coil type trigger aka DummyIgnition # -- trigger again on tooth 30 (dec) further than trigger_tooth another_trigger_tooth=00 # ============= NOTE: ALL TRIGGERS below here not used in coil type trigger # ======NOT USED [Suggested: Example 60-2 wheel & cam sync config?] ================ # ======Secondary_Trigger ==================== # FE: Rising Edge trigger # FF: Falling Edge trigger # 01: Multi-tooth configuration # ??: Cam Sync setup? # 02: if secondary trigger is not used! secondary_trigger=02 # Rising edge Hall sensor # --- this is for folks with a cam Sync cam_sync_r_edge_phase=FF cam_sync_f_edge_phase=FF reset_engphase_after=FF ############################################################# # # Ingition stuff # # IGN TDC Delay is in 0.5 crankdegree resolution. # The edge occurs at 60deg Before TDC so 60 *2 = 120 ==> 0x78 ign_tdcdelay=78 # Ignition dwell [64 usec] # good range for COP coils: 1.5-2.2mS. # 38 * 64 usec = 2.4 mS usec when VBatt >= 14V # 50 * 64 usec = 3.2 mS usec when VBatt >= 6V ign_dwell14=26 ign_dwell6=32 # ignition advance at cranking (8 deg) [0.25 crankdeg] ign_crank_advance=20 # TODO: double-check this. Measure that initialization is proper # (firmware change might be needed depending on i259 RC reset circuit) # Dummy ignition with inverted output ign_out=70 # at least 0..ignchmax index of h[2] must be filled in ignchmax=03 ############################################################# # # Fuel Pump Control # # minimum time to leave fuelpump on at startup [262msec] # (without start of engine) pump_on_mintime=08 # turn off fuelpump after inactivity time [262msec] engine_off_delay=08 # do you have a free injector driver to drive the fuelpump relay? # TODO: select another channel (eg. from P259 ) if no # or set last element of h[0] # or disable with FF (but always-ON pump is dangerous, don't do that) fuelpump_channel=P259_5 ############################################################# # # second stage of injectors # inj_stage2_rate=FF inj_stage2_start_tps=FF inj_stage2_start_map=FF ############################################################# # # Anti-lag system # als_lowrpm=FF als_maxtps=FF als_ignretard=FF als_rich=FF ############################################################# # # Exhaust Gas Temperature # # NOTE: GRM not using, A description of use would be nice # COMMENT: how does EGT effect running? egt1_cal=40 egt1_offs=00 ############################################################# # # Boost Controller # # bit7:4 PWM period [8msec] # bit0 0:boosttarget,1:MAPtarget # 00=disabled boost_conf=00 # boostcontrol target offset applied after b[RPM]*t[TPS] boost_targetoffs=00 # actuator OFF below this pressure boost_minpressure=FF # boostcontrol PID settings boost_pid_kp=20 boost_pid_ki=80 boost_pid_kd=01 # boostcontrol pid integral limit boost_pid_ilimit=FF boost_channel=FF ############################################################# # # Water pump Controller # # NOTE: GRM not using, described on AlphaN page water_pump_temp=00 water_pump_hyst=00 water_pump_channel=FF ############################################################# # # AlphaN - SpeedDensity hybrid settings # # speed density across the whole RPM range: # hybrid_rpm_a=00 # hybrid_rpm_m=00 # config13, bit2=0 (MAP scaling applied) # # Alpha-N across the whole RPM range: # hybrid_rpm_a=ff # hybrid_rpm_m=ff # config13, bit2=1 (without MAP scaling) # Alpha-N below 3200 RPM, Speed-density above 4800 RPM and hybrid between: # hybrid_rpm_a=20 (=32 for 3200 RPM) # hybrid_rpm_m=30 (=48 for 4800 RPM) # config13, bit2=0 (MAP scaling applied. Note: can be 1 to go without MAP scaling, but than j table will be much more steeper) # hybrid_rpm_a=00 hybrid_rpm_m=00 ############################################################# # # Misc outputs (WOT & RPM, WOT, RPM, channel definition) # # FF disables the outputs # GRM needs/wants: # WOT & RPM( 4000RPM < X <7200RPM ) switched ground for relay (nitrous activation) # RPM ( >7000 RPM) Switched ground for SuperBright LED (SHIFT LIGHT) # RPM ( >rev_limit(7500 RPM) )Switched ground for SuperBright LED (REV Limiter) # TODO: wiki page reference # # ============== Misc 1 output ================= # WOT & RPM( 4000RPM < X <7200RPM ) switched ground for relay (nitrous activation) misc1out_minrpm=FF misc1out_maxrpm=FF misc1out_mintps=FF misc1out_maxtps=FF misc1out_minmap=FF misc1out_maxmap=FF # P259 ouput 6: EC36 pin 31 misc1out_channel=P259_6 # Suggested Setup from # ============== Misc 2 output ================= # RPM ( >7000 RPM) Switched ground for SuperBright LED (SHIFT LIGHT) misc2out_minrpm=FF misc2out_maxrpm=FF misc2out_mintps=FF misc2out_maxtps=FF misc2out_minmap=FF misc2out_maxmap=FF # P259 ouput 0: EC36 pin 4 misc2out_channel=P259_0 # ============== Channel Select ================= # WOT output act_wot_rpm=FF act_wot_channel=DISABLED_F # RPM output act_rpm_rpm=FF act_rpm_channel=DISABLED_F # P259 ouput 1: EC36 pin 16 ############################################################# # # LCD layout # # LCD flags # bit 3: reinit # bit 2: if 0 (and PHASESIGNAL is defined) you are dead # bit 1: if 0, we force goto after each data # bit 0: if 1, the busy flag is polled lcd_c0=FE # LCD-cablelength delays Higherhalf:beforeENable LowerHalf:ENable lcd_delay=FF # Backlight, FF is fully on lcd_backlight=FF lcd_offs[0]=FF lcd_offs[1]=FF lcd_offs[2]=FF lcd_offs[3]=FF lcd_default_view=00