MembersPage/Jimw/Config (2006-03-16 04:43:08)

Questions are denoted with CAPS.\n

############################################################
# 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) 20lb/hr injectors), 3.0bar fuel pressure
# Wideband Heater:  WB1
# Wasted spark ignition
# 
#
# Copied Derek-Scirocco config

############################################################
#
# STARTUP INFORMATION
# Get fuel pressure up and define what is running vs. cranking
# Define Rev Limit

# Fuel Pump Priming
# 0x01=0.1ms
# eg 0D=1.3ms 
primep=0D

# Hot start priming pulse scaling at 170F
# Measured as percentage (80=50%, FF=100%)
# eg A0=63%
primep_temp_scaling=A0

# Cranking Pulse Definition
# Cranking pulsewidth at -40 F
# 0x01=0.1ms
# eg 1E=3.0ms
cwl=1E

# Cranking pulsewidth at 170 F
# Typical cwh = about 20% of cwl
# 0x01=0.1ms
# eg 0A=1.0ms
cwh=0A

# Cranking Threshold:
# Defines boundry between cranking and running
# 0x01=100rpm
# eg 0x03=300 rpm
cranking_thres=03

# what is this?
# for std. coil tach signal (?)
# Minimum crank period
# Measured in ms
# 0x01=???ms
# eg 0x50=???
crank_minper=50

# Rev limiter 
# 0x01=100rpm
# eg 0x4B=7500rpm
rev_limit=4B


#############################################################
# 
# INJECTOR SETTINGS
#
# 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 X.Xms via mega manual
# 109 cid , 4 cylinder, 4 injectors, 2 squirts, 20lb/hr, alternating 
# 
# To double the VE table resolution divide req_fuel by two
# and multiply the values in the VE table by two
req_fuel=6E

# Injector firing sequence: alternating, X squirts per 720degree rotation
# COMMENT: Verify: The divider says how many times banks fire during 
#                  720degree rotation
#                  
# Injector bank setup
# Alternate injector drivers 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 
#
# Secondary (cam position) trigger required for one injector per batch or more than two batches?
#
# add 0x10 to fire all at cranking
alternate=11

# divider:
# For a 4 cylinder you want [divider * (alternate + 1)] = 4 
# divider=02 and alternate=01 for 2 banks
# divider=01 and alternate=03 for 4 injector 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  
# 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 (required force to overcome solenoid)
#
#   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[])  

# injopen:
# Time required to open injector nozzle
# Elapsed time t=0 to begin fuel spray
# 0x01=0.16ms
injopen=20

# battfac:
# Injection time scaling based on supply voltage
# Add this amount of time for what amount of change in voltage???
# 0x01=0.16ms
battfac=10

# injocfuel:
# Maximum rampup time at VBATT=7V
# TIME IT TAKES TO REACH FULL FUEL FLOW THROUGH INJECTOR
# WHEN BATTERY VOLTAGE IS LOW?
# 0x01=0.24ms
injocfuel=08

# injrampup_battfac:
# Minimum rampup time
# MINIMUM TIME IT TAKES TO REACH FULL FUEL FLOW THROUGH INJECTOR
# WHY ARE WE CONCERNED WITH MINIMUM TIME?
# "min rampup time is injocfuel*77%"
# ^ DOES THIS MEAN injrampup_battfac MUST BE GREATER THAN 77% of injocfuel?
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)
# ISN'T THIS THE SAME AS injopen???
# 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
# 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 ) 

# 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)
# ISN'T THIS THE SAME AS injopen???
# 0x01=0.1ms
#injpwmt=0A

# Current during the hold cycle is calculated by
# 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


#############################################################
#
# 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


#############################################################
#
# TPS related information
#
# TPS calibration
# read TPS from LCD (or serial connection Manmll)
# 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. 
# DOES CALIBRATING IN MEGATUNXX TAKE CARE OF THIS?
# TPSDOT=> TPS Delta Over Time, where t=tps_async????????????

# TPS low and high settings
tps_low=00
tps_high=FF

# TPS information used during engine running
# TPS Acceleration calculation base
# 00 = Use TPSDOT for acceleration enrichment
# 01 = Use MAPDOT for acceleration enrichment
tpsdot_kpadot_conf=00

# TPSDOT  bins
# Amount of change in throttle position
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 CANNOT BE LESS THAN tpsdotrate[0]?
tps_thresh=05

# Acceleration duration
# 0x01=0.1s
# eg 0x0A=1 second
# IS THIS THE 't' IN DELTA OVER TIME?
tpsasync=02

# Acceleration cold multiplication factor
# Biased at 0x64
# eg 0x64 - bias = 0
# SHOULDN'T WARMUP ENRICHMENT TAKE CARE OF THIS?
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=10

# Overrun fuel resume
# Injectors re-enabled below this value
# 0x01=100rpm
# eg 0x0F=1500 RPM
overrun_fuelresume=0F


#############################################################
#
# Idle enleaning limit
#
# Use to avoid enleaning of AFR when idling due to increased
# intake air temperature at 25C (77F) degrees.
# WHY ONLY AT 25C?
# 0x01=1%
# eg 0x62=98%
airden_ignore=62

#############################################################
#
# Barometer settings
#
# MAP Sensor
# standard MPX4250AP 250kpa sensor that comes with V3.x
kpafac=7F
kpaofs=52

# Mean Barometric Pressure
# MAP sensor failure value (limp home value)
# 0x01=1kPa?
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 


#############################################################
# IF THESE ARE CONSTANTS, WHY AREN'T THEY HARD CODED?
# 
# These are important DO NOT CHANGE
# (useful descriptions are left over from Megasquirt)
config11=30   # old config 31
config12=30   # 4 cylinders
config13=02   # old config 00
mt_unused=FF


# Battery voltage calibration for dwell and pwm'ing
# Adjust so that VBatt reading in Megatun.x matches actual supply voltage
# 0x01=???
# IS THIS ONLY FOR READING CORRECT VALUES IN MEGATUNXX?
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 (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
#

# fastidle:
# Should be set to same as idle when not using IAC?
# 0x01=100rpm???
# eg 0x09=900rpm
fastidle=C6

# Idle air controller based idle control
# This is where the idle control devices are setup

# THIS VARIABLE NOT DOCUMENTED IN WIKI
# WHAT IS IT?
iac_step_seq=C9

# NEED COMMENTS FOR ALL OF THESE!

# stepper is enabled with 7E (iac_conf=7E?), you probably want iac_conf=18
iac_conf=18

iac_max_steps=F0
iac_tps_thres=05
iac_cold_idle_temp=A0
iac_warm_idle_temp=D0
iac_cold_rpm=74
iac_warm_rpm=67
iac_cold_start_pos=E2
iac_warm_start_pos=B0
iac_afterstart_rpm=1F
iac_afterstart_duration=20
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=FF

# Ignition based idle control
# This section must be used for idle if you have no idle air control device
# Idle control via ignition advance/retard
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
# COMMENT:
# awev is the percentage added at startup that fades away
# to 0 in awc engine cycles.

# DEFINE ENGINE CYCLES
# 360 DEGREE CRANK ROTATION = 2 CYCLES?
# WHY DO WE USE ENGINE CYCLES IF WE ALREADY USE ENGINE TEMP?

# 15..40% (0F .. 28 hexa) 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 (percent, added value)
awev=0F

# Afterstart warmup scaling at 170F (80=50%, FF=100%)
awev_temp_scaling=A0

# Afterstart number of engine cycles
# awec=80
awc=FF

# 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]=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 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 

# Variable Air Fuel Ratio
# 07=Variable AFR
# VARIABLE AS OPPOSED TO FIXED? EVERYONE WANTS VARIABLE, NO?
ego_conf=07

# EGO Resolution
# Minimum recognized change in EGO value
# 0x01=0.4%
# eg 0x02=0.8%
ego_delta=02 

# TIME IT TAKES TO THE O2 SENSOR TO REACT?
# 0x01=???
# 
ego_lag=04

# Min coolant temperature for EGO enabling [F]
# WHY IS THIS IN FAHRENHEIT WHEN EVERYTHING ELSE IS IN CELCIUS?
# EVERYTHING SHOULD BE IN DEGREES C, TUNING SOFTWARE SHOULD DO CONVERSION IF REQUIRED
# eg. 0xC2 = 194degF (108degC)
#     C = 5/9 * F - 40
#     Setting this requires you to know if F or Cel is your chosen measurement
# IF C OR F IS CHOSEN MEASUREMENT IN TUNING SOFTWARE?
ego_coolant=94

# Max TPS position for EGO correction
# 0xFF=100% open (WOT)
ego_maxtps=FF

# Max MAP for O2 correction
# IN KPA OR PERCENT, AND WHAT UNITS OF INCREMENT? 0x01=?
ego_maxmap=FF

# Min rpm for ego enabling
# Ignore all EGO information below this RPM
# 0x01=100rpm
# eg 0x0C=1200rpm
ego_minrpm=0C

# Max rpm for EGO correction
# 0x01=100rpm
# eg 0x4B=7500rpm
ego_maxrpm=FF

# Warmup time
# 0x01=1 sec
# eg 0x3C=60 sec
# IS THIS THE AMOUNT OF TIME WE TURN ON THE HEATER TO WARM UP THE O2 SENSOR?
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

# WHAT IS THIS?
# NOT DESCRIBED IN WIKI
ego_pid_kp=40

# WHAT IS THIS?
# NOT DESCRIBED IN WIKI
# 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


#############################################################
# 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: 

# Warm-up ramp speed
# WHAT IS MAX VALUE HERE?
# 0x01=???
# eg 0x01=0.2V/sec ?
wbo2_warmup_ramp=A0

# Warm-up target:
# 0xFF = ? (ALL THE VOLTAGE WE CAN GIVE IT? OR IS IT 100%?)
# EVERYONE HAS THIS SET TO 0xFF.
# WHY WOULDN'T WE WANT TO HEAT THE O2 ALL THE WAY?
wbo2_warmup_target=FF

# Heater absolute voltage limit
# 0x01=?V
# eg 0x80=???V
# eg 0xFF=???V
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
# FROM THE WIKI: 1C=10V, 2A=12V, FF=30V
# 0x01=???
# Measured in percent?
wbo2_fallback=60

# Time before retrying control:
# IN SECONDS?
# 0x01=???
# eg 0x3B=???
wbo2_retry_t=06

# Edgetime correction constant C/R
# IF THIS IS A CONSTANT, WHY IS IT HERE?
# EVERYONE HAS wbo2_edgetime_corr=BA, SHOULD THIS BE ADJUSTABLE?
# 0x01=???
# eg 0xBA=???
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
# 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
# The RCal lives in sensor connector housing.
# Typical reading is between 80 and 180 ohm
wbo2_calibration=AE # A1 for the ETAS3 sensor with Rcal = 75.3 ohm

# board serial number=...
# DESCRIPTION in WBO2 controller testing, calibration
# Adjust to get pump+ close (within 0.1V if pump+ connection open) to pump-.
# Pump- is appr. 3.98V
wbo2_pump_pw_zero=64

# WBO2 target Ri (pulse amplitude)
# 0x01=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
# 0x01=5V/256
# 0x01=20mV
# eg
# 0x66=2.04V
# 0x66=102 decimal
# 102*20mV=2.04V
wbo2_nernstdc_target=8D 

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=00     # the D term is not needed IMHO. I didn't fine-tune the pump PID controlelr, but brief experiments suggests so. Was 08 earlier, dunno how it was made (I think originally came from Dave Brul)
wbo2_pump_pid_ilimit=84 # 84 

# EVERYONE HAS wbo2_ri_confidence_scale=80
# SHOULD THIS BE CHANGED TO SUIT SENSOR, OR SAME FOR EVERY SENSOR?
wbo2_ri_confidence_scale=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 VERY important
#
# COMMENT: Insert comments on enabling/disable/howto use
# 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
# ve_learn_conf=01 / 00 is ON / OFF
ve_learn_conf=01

# Minimum coolant temp for learning to be enabled
# WHY IS THIS IN FAHRENHEIT???
# 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

# HOW FAST IS 0xFF COMPARED TO 0x80?
ve_learn_speed=FF

ve_learn_max_power=FF

ve_learn_min_weight=4D

ve_learn_limit=FF


#############################################################
#
# Triggers, HW determines VR or Hall
# software defines how it reacts
# 

# 36-1 Trigger Configration
#
# Primary_Trigger 
#
# 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
# eg For 60-2 wheel, 58 teeth between the missing tooth = 3A
# eg For 36-1 wheel, 35 teeth between the missing tooth = 23
tooth_wheel=23

# tooth_wheel_twidth1:
# width (in degrees) of each tooth 
# eg For 36-1 wheel, each tooth is 10 degrees = A
tooth_wheel_twidth1=A

# trigger_tooth:
# Used for multi-tooth wheels (Tooth that triggers event)
# so that trigger tooth is ~60 degrees BTDC
trigger_tooth=01


# Secondary_Trigger
# FE: Rising Edge trigger
# FF: Falling Edge trigger
# 01: Multi-tooth configuration
secondary_trigger=FF

# another_trigger_tooth:
# NEED HELP HERE. guessing secondary better grouping would be inorder
another_trigger_tooth=1E

# width (in degrees) of each tooth 
# eg For 36-1 wheel, each tooth is 10 degrees = A
tooth_wheel_twidth2=12

# this is for folks with a cam Sync
# WHATS THE DIFFERENCE BETWEEN CAM SYNC AND SEC. TRIGGER?
cam_sync_r_edge_phase=FF
cam_sync_f_edge_phase=FF
reset_engphase_after=FF


#############################################################
# MCELL's Trigger setup, using a 60-1 VR wheel
# Triggers, HW determines VR or Hall
# software defines how it reacts
# ======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
#

# 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=F0

# Dwell 
# Dwell settings for 14V and 6V
ign_dwell14=14 
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=???
ign_out=70 

# Highest indexed ignition coil to trigger
# At least 0..ignchmax index of h[2] must be filled in
# eg h[2] =     05 07 05 07 00 00 00 00
#    ignchmax = 03
ignchmax=03

# 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=P259_5


#############################################################
#
# 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


#############################################################
#
# Exhaust Gas Temperature
# Not used

egt1_cal=40
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=FF


#############################################################
#
# Water pump Controller
# Not used

water_pump_temp=00
hybrid_rpm_a=00
hybrid_rpm_m=00
water_pump_hyst=00
water_pump_channel=FF


#############################################################
#
# Misc outputs (WOT and RPM, WOT, RPM, channel definition)
#
# FF disables the outputs
# needs/wants: 
# RPM ( >7000 RPM) Switched ground for SuperBright LED (SHIFT LIGHT)
# RPM ( >rev_limit(7500 RPM) )Switched ground for SuperBright LED (REV Limiter) 
#
# Suggested Setup from Dave24_
# ============== Misc 2 output =================
# RPM ( >7000 RPM) Switched ground for SuperBright LED (SHIFT LIGHT)
misc2out_minrpm=46
misc2out_maxrpm=FF
misc2out_mintps=00
misc2out_maxtps=FF
misc2out_minmap=00
misc2out_maxmap=FF
# select channel yourself, i would go with on of the p259 outputs
# P259 ouput 0: EC36 pin 4
misc2out_channel=p259_0 

# ============== Channel Select =================
# not used
act_wot_rpm=FF
act_wot_channel=FF
# RPM ( >rev_limit(7500 RPM) )Switched ground for SuperBright LED (REV Limiter) 
act_rpm_rpm=4B 
# select channel yourself, i would go with on of the p259 outputs
# P259 ouput 1: EC36 pin 16
act_rpm_channel=p259_1 
# not sure about the wot output with rpm range

# ============== Misc 1 output =================
# WOT & RPM( 4000RPM < X <7200RPM ) switched ground for relay (nitrous activation)
misc1out_minrpm=28
misc1out_maxrpm=48
misc1out_mintps=FF
misc1out_maxtps=FF
misc1out_minmap=00
misc1out_maxmap=FF
# select channel yourself, i would go with on of the p259 outputs
# P259 ouput 6: EC36 pin 31
misc1out_channel=P259_6 


#############################################################
#
# 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


# Injector sequence 
# maskconfig.alternate elements are used 
# (going reverse order, last element is looked up first)
# "LAST ELEMENT" IS NON-ZERO ELEMENT ON FAR RIGHT (48)?
# FETs are numbered 01,02,04,08,10,20,40,80.
# 
# Injectors Populated: 
# INJA[01, EC36p07]
# INJB[02, EC36p19]
# INJD[08, EC36p20]
# INJG[40, EC36p06] 
#
# this fires them in batch mode (A and B) and (D and G)
h[0]=03 48 00 00 00 00 00 

# NOT used obsolete
# THEN WHY ARE WE KEEPING IT HERE?
h[1]=00 00 00 00 00 00 00 00

# Ignition Sequence
# 
# DR_00[h[2] = 00, EC36p35]
# DR_01[h[2] = 01, EC36p33]
# DR_02[h[2] = 02, EC36p34]
# DR_03[h[2] = 03, EC36p36]
#
# IS THIS CORRECT FOR TWO WASTED SPARK COILS TRIGGERED BY
# PINS EC36p35 and EC36p33? FIRING ORDER=1-3-2-4
#
h[2]=00 01 00 01 00 01 00 01

# chris G's notes:
# third line contains the ignition sequence, each element
# represents the bitnumber of the p259 output going to coil
# We start at the end (ignchmax) and work our way back
# WHICH END IS THAT? RIGHTMOST NON-ZERO CHANNEL?


#-----------these are for something else
# WHAT MIGHT THAT BE?
b[0]=28 30 38 40 48 50 58 60
t[0]=20 40 17 80 A0 C0 E0 FF