MembersPage/Jimw/Config (2006-03-16 04:43:08)
  1. JimW's Setup
  2. 1.8 8v counterflow motor
  3. 36-1 crank wheel
  4. 11th tooth on trigger wheel is TDC
  5. Genboard v3.2 Assembled
  6. High-Z (14.5ohm) 20lb/hr injectors), 3.0bar fuel pressure
  7. Wideband Heater: WB1
  8. Wasted spark ignition
  9. Copied Derek-Scirocco config
  1. STARTUP INFORMATION
  2. Get fuel pressure up and define what is running vs. cranking
  3. Define Rev Limit
  1. Fuel Pump Priming
  2. 0x01=0.1ms
  3. eg 0D=1.3ms
primep=0D
  1. Hot start priming pulse scaling at 170F
  2. Measured as percentage (80=50%, FF=100%)
  3. eg A0=63%
primep_temp_scaling=A0
  1. Cranking Pulse Definition
  2. Cranking pulsewidth at -40 F
  3. 0x01=0.1ms
  4. eg 1E=3.0ms
cwl=1E
  1. Cranking pulsewidth at 170 F
  2. Typical cwh = about 20% of cwl
  3. 0x01=0.1ms
  4. eg 0A=1.0ms
cwh=0A
  1. Cranking Threshold:
  2. Defines boundry between cranking and running
  3. 0x01=100rpm
  4. eg 0x03=300 rpm
cranking_thres=03
  1. what is this?
  2. for std. coil tach signal (?)
  3. Minimum crank period
  4. Measured in ms
  5. 0x01=???ms
  6. eg 0x50=???
crank_minper=50
  1. Rev limiter
  2. 0x01=100rpm
  3. eg 0x4B=7500rpm
rev_limit=4B
  1. INJECTOR SETTINGS
  2. COMMENT:
  3. For Req_fuel information
  4. see: http://www.megasquirt.info/manual/mfuel.htm#reqfuel
  5. see: new wiki page
  6. Scaling the VE and and req_fuel effectively increases the resolution
  7. of the fueling parameters.
  8. EXAMPLE:
  9. scaling is accomplished by making:
  10. req_fuel = calculated req_value / 2
  11. VE_TABLE==> j[] = j[] .*2 (matlab notation)
  12. This changes the range of values in the j[] table
  13. from 1..100 to 2..200
  1. Req_fuel Setup
  2. req fuel is calculated to be X.Xms via mega manual
  3. 109 cid , 4 cylinder, 4 injectors, 2 squirts, 20lb/hr, alternating
  4. To double the VE table resolution divide req_fuel by two
  5. and multiply the values in the VE table by two
req_fuel=6E
  1. Injector firing sequence: alternating, X squirts per 720degree rotation
  2. COMMENT: Verify: The divider says how many times banks fire during
  3. 720degree rotation
  4. Injector bank setup
  5. Alternate injector drivers works with h[0]
  6. alternate=00 means use only first (batch fire; all injectors in one batch)
  7. alternate=01 means alternate between first and second batch
  8. alternate=03 to use indexes 3,2,1,0
  9. alternate=07 to use indexes 7,6,5,4,3,2,1,0
  10. Secondary (cam position) trigger required for one injector per batch or more than two batches?
  11. add 0x10 to fire all at cranking
alternate=11
  1. divider:
  2. For a 4 cylinder you want [divider * (alternate + 1)] = 4
  3. divider=02 and alternate=01 for 2 banks
  4. divider=01 and alternate=03 for 4 injector banks
divider=02
  1. Injector open and closing times
  2. for more detailed information look:
  3. MembersPage/MarcellGal/EngineSwap/Feed
  4. http://www.vems.hu/wiki/index.php?page=MembersPage%2FMarcellGal%2FEngineSwap%2FFuelFeed
  5. http://www.vems.hu/wiki/index.php?page=GenBoard%2FManual%2FConfig%2FInjectorOpening
  6. BATTFAC is the extra time it would take to open if only 6V would be present (low battery)
  7. BATTFAC is also the decrease in time it would take to open if the applied voltage was 12V+6V
  8. [ This comes from I = V/R, the current flowing varies with the voltage applied since
  9. the resistance of the injectors remains constant ]
  10. Other things that can effect opening and closing speeds:
  11. The type of flyback chosen (high or low voltage)
  12. The type of injector used (high or low Z )
  13. The pressure differential (required force to overcome solenoid)
  14. MCELL suggests that INJOPEN not be set much higher than 512us = 32*16usec (0x20)
  15. shows up in low kPa setting being lower than high KPa settings in VE table (j[])
  1. injopen:
  2. Time required to open injector nozzle
  3. Elapsed time t=0 to begin fuel spray
  4. 0x01=0.16ms
injopen=20
  1. battfac:
  2. Injection time scaling based on supply voltage
  3. Add this amount of time for what amount of change in voltage???
  4. 0x01=0.16ms
battfac=10
  1. injocfuel:
  2. Maximum rampup time at VBATT=7V
  3. TIME IT TAKES TO REACH FULL FUEL FLOW THROUGH INJECTOR
  4. WHEN BATTERY VOLTAGE IS LOW?
  5. 0x01=0.24ms
injocfuel=08
  1. injrampup_battfac:
  2. Minimum rampup time
  3. MINIMUM TIME IT TAKES TO REACH FULL FUEL FLOW THROUGH INJECTOR
  4. WHY ARE WE CONCERNED WITH MINIMUM TIME?
  5. "min rampup time is injocfuel*77%"
  6. ^ DOES THIS MEAN injrampup_battfac MUST BE GREATER THAN 77% of injocfuel?
injrampup_battfac=FF
  1. High Z INJECTORS
  2. For non-PWM settings INJPWMT=FF, INJPWM=FF, INJPWM6=00 sets up HIGH Z injection
  3. COMMENT why wouldnt INJPWMT be set to 00, then it doesnt need to get "disabled"
  4. delta t=(t=0 to time initial resistance is overcome in injector)
  5. Injector PWM time at which to activate pwm
  6. FF=disabled (set to 1 mS per MegaManual for starting point)
  7. ISN'T THIS THE SAME AS injopen???
  8. 0x01=0.1ms
injpwmt=FF
  1. Injector PWM duty cycle
  2. Measured in percent (50%=0x80, 100%=0xFF)
  3. 100% when using HighZ
injpwm=FF
  1. Added Injector PWM duty cycle during low battery voltage (6V)
  2. Measured in percent (50%=0x80, 100%=0xFF)
  3. 0% when using HighZ (we're already always at 100%)
injpwm6=00
  1. Low Z INJECTORS
  2. The advantage of using LOW Z injectors is faster opening and closing times,
  3. based on the simple physics of more current to open the injector and less stored energy
  4. when closing the injectors
  5. Low Z injectors are designed to work on a Peak and Hold manner
  6. During the Peak stage the current is switched on allowing the maximum
  7. current to flow to open the injector in a fast manner. This takes place
  8. at the beginning of each injection event (squirt) for a specific period of time
  9. This entered into INJPWMT ( injector PWM start timedelay )
  1. delta t=(t=0 to time initial resistance is overcome in injector)
  2. Injector PWM time at which to activate pwm
  3. FF=disabled (set to 1 mS for starting point)
  4. ISN'T THIS THE SAME AS injopen???
  5. 0x01=0.1ms
  6. injpwmt=0A
  1. Current during the hold cycle is calculated by
  2. I = V/R * % duty cycle
  3. verify by measuring OC0 with DVM
  4. 0x01=0.4%
  5. eg 0xFF=100% (that measures OC0=0V; since this is before the inverting FET driver)
  6. 48/256 (=3/16), that measures OC0=5V * (256-48)/256
  7. Injector PWM duty cycle (when current limiting is active)
  8. injpwm=30
  1. In the case of low battery to keep the same I(current) the duty cycle must be increased.
  2. COMMENT: this is straight forward and should be built into the firmware
  3. Also, shouldn't this be taken care of by battfac? Seems redundant.
  4. 6volts = Vbatt/2; Iold = Inew; dutycycle should be equal to 2x 12volt percentage.
  5. added Injector PWM duty cycle during low battery voltage (6V)
  6. injpwm6=40
  1. RPM Calculation
  2. eg 0x0BB8 = 3000 = 12000 rpm/4 cyl
  3. 4 cylinder: rpmk[0]=0B, rpmk[1]=B8
  4. 5 cylinder: rpmk[0]=09, rpmk[1]=60
  5. 6 cylinder: rpmk[0]=07, rpmk[1]=D0
  6. 8 cylinder: rpmk[0]=05, rpmk[1]=DC
rpmk[0]=0B

rpmk[1]=B8

  1. TPS related information
  2. TPS calibration
  3. read TPS from LCD (or serial connection Manmll)
  4. Important for triggering idle mode and acceleration enrichment
  5. --- TPS calibration means that the Analog(voltage) to Digital (count) is set
  6. at zero throttle and Wide Open Throttle (WOT)
  7. The standard: lowest voltage for closed throttle
  8. highest voltage for open throttle
  9. --- See Manual or wiki page for how to hook up.
  10. --- Most Tuning software has this function in them
  11. Megatune, Megatunix, etc.
  12. DOES CALIBRATING IN MEGATUNXX TAKE CARE OF THIS?
  13. TPSDOT=> TPS Delta Over Time, where t=tps_async????????????
  1. TPS low and high settings
tps_low=00

tps_high=FF

  1. TPS information used during engine running
  2. TPS Acceleration calculation base
  3. 00 = Use TPSDOT for acceleration enrichment
  4. 01 = Use MAPDOT for acceleration enrichment
tpsdot_kpadot_conf=00
  1. TPSDOT bins
  2. Amount of change in throttle position
tpsdotrate[0]=05

tpsdotrate[1]=14

tpsdotrate[2]=28

tpsdotrate[3]=4D

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

tpsaq[1]=00

tpsaq[2]=00

tpsaq[3]=00

  1. Acceleration TPSDOT threshold (throttle sensitivity)
  2. minimum rate of change to enable any acceleration enrichment
  3. THIS CANNOT BE LESS THAN tpsdotrate[0]?
tps_thresh=05
  1. Acceleration duration
  2. 0x01=0.1s
  3. eg 0x0A=1 second
  4. IS THIS THE 't' IN DELTA OVER TIME?
tpsasync=02
  1. Acceleration cold multiplication factor
  2. Biased at 0x64
  3. eg 0x64 - bias = 0
  4. SHOULDN'T WARMUP ENRICHMENT TAKE CARE OF THIS?
acmult=64
  1. Cold acceleration added amount (at -40 F degrees)
  2. 0x01=0.1ms
  3. eg 0x14 = 2.0ms
tpsacold=05
  1. Deceleration fuel cut
  2. 100% (0x64) means no fuelcut on sudden tps-release
  3. Values under 96% (0x60) are dangerous (can cause lean condition)
  4. 0x00 would be rough behaviour
  5. Recommended value: 64
tpsdq=64
  1. Decel fuelcut enabled above threshold
  2. 0x01=100rpm
  3. eg 0x0F=1500rpm
decel_fuelcut_thres=0F
  1. Overrun fuelcut:
  2. injectors disabled above this
  3. 0x01=100rpm
  4. eg 0x10=1600rpm
overrun_fuelcut=10
  1. Overrun fuel resume
  2. Injectors re-enabled below this value
  3. 0x01=100rpm
  4. eg 0x0F=1500 RPM
overrun_fuelresume=0F
  1. Idle enleaning limit
  2. Use to avoid enleaning of AFR when idling due to increased
  3. intake air temperature at 25C (77F) degrees.
  4. WHY ONLY AT 25C?
  5. 0x01=1%
  6. eg 0x62=98%
airden_ignore=62
  1. Barometer settings
  2. MAP Sensor
  3. standard MPX4250AP 250kpa sensor that comes with V3.x
kpafac=7F

kpaofs=52

  1. Mean Barometric Pressure
  2. MAP sensor failure value (limp home value)
  3. 0x01=1kPa?
baro=64
  1. Max allowed difference in barometric pressure
  2. If barometric pressure less than baro-dbaro or
  3. barometric pressure greater than baro+dbaro, use
  4. baro as barometric pressure.
  5. 0x01=1kPa?
dbaro=0C
  1. IF THESE ARE CONSTANTS, WHY AREN'T THEY HARD CODED?
  2. These are important DO NOT CHANGE
  3. (useful descriptions are left over from Megasquirt)
config11=30 # old config 31

config12=30 # 4 cylinders

config13=02 # old config 00

mt_unused=FF

  1. Battery voltage calibration for dwell and pwm'ing
  2. Adjust so that VBatt reading in Megatun.x matches actual supply voltage
  3. 0x01=???
  4. IS THIS ONLY FOR READING CORRECT VALUES IN MEGATUNXX?
batt_cal=BC
  1. Coolant fan output
  2. This ouput is generally used to trigger a relay to turn on
  3. the electric radiator fan, or engage the electric clutch for
  4. engine cooling fan.
  5. Temperature when fan will turn on (in degC)
  6. 0x01=1 degree C
  7. eg 0x55 = 85degC
fan_temp=EA
  1. Decrease in temperature required to turn fan off
  2. fan_temp - fan_hyst=temp when fan will turn off
  3. 0x01=1 degree C
  4. eg 0x55 - 0x09 = 0x4C (76degC)
fan_hyst=05
  1. Coolant fan
  2. Output channel selection (digitalout)
fan_channel=FF
  1. Idle
  1. fastidle:
  2. Should be set to same as idle when not using IAC?
  3. 0x01=100rpm???
  4. eg 0x09=900rpm
fastidle=C6
  1. Idle air controller based idle control
  2. This is where the idle control devices are setup
  1. THIS VARIABLE NOT DOCUMENTED IN WIKI
  2. WHAT IS IT?
iac_step_seq=C9
  1. NEED COMMENTS FOR ALL OF THESE!
  1. 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

  1. Ignition based idle control
  2. This section must be used for idle if you have no idle air control device
  3. 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

  1. Initial Start and Warmup
  2. Afterstart
  3. COMMENT:
  4. awev is the percentage added at startup that fades away
  5. to 0 in awc engine cycles.
  1. DEFINE ENGINE CYCLES
  2. 360 DEGREE CRANK ROTATION = 2 CYCLES?
  3. WHY DO WE USE ENGINE CYCLES IF WE ALREADY USE ENGINE TEMP?
  1. 15..40% (0F .. 28 hexa) are common (and sometimes even higher).
  2. Since originally warmup enrichment is not tuned, we often
  3. adjust awev (besides cwl,cwh) to start the engine, but after
  4. warmup enrichments tuning is done, awev must retuned
  5. to get back the desired pulsewidth. Take notes of
  6. working cwl,cwh, awev settings and actual CLT and
  7. the warmup enrichments, so when warmup values are changed
  8. awev can be changed with simple calculation instead of guessing
  1. Afterstart warmup enrichment (percent, added value)
awev=0F
  1. Afterstart warmup scaling at 170F (80=50%, FF=100%)
awev_temp_scaling=A0
  1. Afterstart number of engine cycles
  2. awec=80
awc=FF
  1. Warmup Coolant
  2. warmup_clt_range defines the temperature bins used for interpolation
  3. the values in warmup_clt_range is degrees Fahrenheit + 40
  4. C = 5/9 * F - 40
  5. 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

  1. warmup_clt is the value of each bin defined in warmup_clt_range
  2. 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

  1. warmup enrichment can be decreased as a function of rpm.
  2. this is a nice feature, eg. +16% ... +0% gives nice result
  3. 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

  1. EGO Exhaust Gas Oxygen -- very important.
  1. EGO configuration
  2. Dave Brul's EGO setup
  1. Variable Air Fuel Ratio
  2. 07=Variable AFR
  3. VARIABLE AS OPPOSED TO FIXED? EVERYONE WANTS VARIABLE, NO?
ego_conf=07
  1. EGO Resolution
  2. Minimum recognized change in EGO value
  3. 0x01=0.4%
  4. eg 0x02=0.8%
ego_delta=02
  1. TIME IT TAKES TO THE O2 SENSOR TO REACT?
  2. 0x01=???
ego_lag=04
  1. Min coolant temperature for EGO enabling [F]
  2. WHY IS THIS IN FAHRENHEIT WHEN EVERYTHING ELSE IS IN CELCIUS?
  3. EVERYTHING SHOULD BE IN DEGREES C, TUNING SOFTWARE SHOULD DO CONVERSION IF REQUIRED
  4. eg. 0xC2 = 194degF (108degC)
  5. C = 5/9 * F - 40
  6. Setting this requires you to know if F or Cel is your chosen measurement
  7. IF C OR F IS CHOSEN MEASUREMENT IN TUNING SOFTWARE?
ego_coolant=94
  1. Max TPS position for EGO correction
  2. 0xFF=100% open (WOT)
ego_maxtps=FF
  1. Max MAP for O2 correction
  2. IN KPA OR PERCENT, AND WHAT UNITS OF INCREMENT? 0x01=?
ego_maxmap=FF
  1. Min rpm for ego enabling
  2. Ignore all EGO information below this RPM
  3. 0x01=100rpm
  4. eg 0x0C=1200rpm
ego_minrpm=0C
  1. Max rpm for EGO correction
  2. 0x01=100rpm
  3. eg 0x4B=7500rpm
ego_maxrpm=FF
  1. Warmup time
  2. 0x01=1 sec
  3. eg 0x3C=60 sec
  4. IS THIS THE AMOUNT OF TIME WE TURN ON THE HEATER TO WARM UP THE O2 SENSOR?
ego_warmup=3C
  1. Maximum allowed enleanment of AFR
  2. 0x01=0.4%
  3. eg 0x30=19.2%
ego_lean_limit=30
  1. Maximum allowed enrichment of AFR
  2. 0x01=0.4%
  3. eg 0x80=51.2%
ego_rich_limit=30
  1. WHAT IS THIS?
  2. NOT DESCRIBED IN WIKI
ego_pid_kp=40
  1. WHAT IS THIS?
  2. NOT DESCRIBED IN WIKI
  3. ego_target = 51 * O2_sensor_voltage
ego_target=19
  1. not used for the wbo2 incredible ego, only for NBO2_PID_EGO_EXPERIMENT
  2. Does this need to be commented for WBO2 setup?
ego_pid_window=FF
  1. Dave Brul's WBO2 setup
  2. wbo2 config with softpwm_act; softpmw_act_var is broken!!
  3. You must still calibrate your WBO2 see Manual or
  4. wiki page:
  1. Warm-up ramp speed
  2. WHAT IS MAX VALUE HERE?
  3. 0x01=???
  4. eg 0x01=0.2V/sec ?
wbo2_warmup_ramp=A0
  1. Warm-up target:
  2. 0xFF = ? (ALL THE VOLTAGE WE CAN GIVE IT? OR IS IT 100%?)
  3. EVERYONE HAS THIS SET TO 0xFF.
  4. WHY WOULDN'T WE WANT TO HEAT THE O2 ALL THE WAY?
wbo2_warmup_target=FF
  1. Heater absolute voltage limit
  2. 0x01=?V
  3. eg 0x80=???V
  4. eg 0xFF=???V
wbo2_abs_limit=E4
  1. Max time allowed at absolute voltage limit
  2. in milliseconds
  3. 0x01=1ms
  4. eg A0=160ms
wbo2_limit_maxt=A0
  1. Fall back voltage after max time spent at absolute limit
  2. FROM THE WIKI: 1C=10V, 2A=12V, FF=30V
  3. 0x01=???
  4. Measured in percent?
wbo2_fallback=60
  1. Time before retrying control:
  2. IN SECONDS?
  3. 0x01=???
  4. eg 0x3B=???
wbo2_retry_t=06
  1. Edgetime correction constant C/R
  2. IF THIS IS A CONSTANT, WHY IS IT HERE?
  3. EVERYONE HAS wbo2_edgetime_corr=BA, SHOULD THIS BE ADJUSTABLE?
  4. 0x01=???
  5. eg 0xBA=???
wbo2_edgetime_corr=BA
  1. Gate for small edgetimes
  2. Any reading less than this is ignored
  3. 0x01=0.5usec
  4. 0x50=40.0usec
wbo2_edgetime_min=50
  1. O2 percentage of 'normal' air: 20.947%, calibrated to 20.95
  2. warning: sensor dependent
  3. for verification, also measure (and write here) sensor RCal (DVM Ohmmeter mode)
  4. between red wire and connector pin that has no wire towards the sensor
  5. The RCal lives in sensor connector housing.
  6. Typical reading is between 80 and 180 ohm
wbo2_calibration=AE # A1 for the ETAS3 sensor with Rcal = 75.3 ohm
  1. board serial number=...
  2. DESCRIPTION in WBO2 controller testing, calibration
  3. Adjust to get pump+ close (within 0.1V if pump+ connection open) to pump-.
  4. Pump- is appr. 3.98V
wbo2_pump_pw_zero=64
  1. WBO2 target Ri (pulse amplitude)
  2. 0x01=5V/8192
wbo2_ri_target=96
  1. OPA amplification, g = 270/75 + 1 = 4.6
  2. Vadc = g * (5 - Vnernst)
  3. Vnernst DC at sensor wire = 4.45V
  4. Vnernst DC at adc = 4.6 * (5 - 4.45) = 2.53
  5. nernstdc_target = Vadc / g * 256 = 141 = 0x8D
  6. WBO2 target nernstDC
  7. 0x01=5V/256
  8. 0x01=20mV
  9. eg
  10. 0x66=2.04V
  11. 0x66=102 decimal
  12. 102*20mV=2.04V
wbo2_nernstdc_target=8D

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

  1. EVERYONE HAS wbo2_ri_confidence_scale=80
  2. SHOULD THIS BE CHANGED TO SUIT SENSOR, OR SAME FOR EVERY SENSOR?
wbo2_ri_confidence_scale=80
  1. Knock Detection and correction 2-channel Knock sensor control
  2. Not currently used, mechanical lifter head makes too much noise
  3. f_knock = 900 / (pi*r) = 900 / (pi * 0.5 * 0.083) = 6.903 kHz
  4. from datasheet tpic801.pdf page 10 table#1
  5. bandpass frequency selection 6.94 kHz is closest to 6.903 kHz
  6. filter setting = 29 hex (41 dec)
  1. Overall System Settings
  2. Knock selection
knock_conf=00

knock_sampling_window=FF

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

knock_maxrpm=FF

  1. Channel #1 setup
knock1_frequency=29

knock1_gain=FF

knock1_integrator=FF

  1. Channel #2 setup
knock2_frequency=29

knock2_gain=FF

knock2_integrator=FF

  1. Trigger level
knock_threshold=FF

knock_noise_scale=FF

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

knock_default_retard=00

knock_retard_step=FF

knock_retard_delay=FF

  1. Knock getting softer
knock_advance_step=FF

knock_advance_delay=FF

  1. VE learning VERY important
  2. COMMENT: Insert comments on enabling/disable/howto use
  3. Some basic comments:
  4. VE Learning can adjust a loadsite that is visited
  5. but not a neighboring loadsite that is rarely visited causing
  6. peaks and valleys in the VE (j[]) map that will need smoothed
  7. EGO correction is transferred across loadsites for fast loadsite-changes
  8. (that happens, especially in kPa direction)
  1. VE Learning Enable/Disable
  2. ve_learn_conf=01 / 00 is ON / OFF
ve_learn_conf=01
  1. Minimum coolant temp for learning to be enabled
  2. WHY IS THIS IN FAHRENHEIT???
  3. 0x00=-40F
  4. 0xFF=215F
ve_learn_coolant=D8
  1. VE Learning speeds
  2. Higher number means more agressive changes
ve_learn_rpm_scale=1E

ve_learn_kpa_scale=1E

ve_learn_ego_scale=43

  1. 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

  1. Triggers, HW determines VR or Hall
  2. software defines how it reacts
  1. 36-1 Trigger Configration
  2. Primary_Trigger
  3. FE: Rising Edge trigger
  4. FF: Falling Edge trigger
  5. 01: Multi-tooth wheel configuration
primary_trigger=01
  1. tooth_wheel:
  2. Used for multi-tooth wheels
  3. Total number of teeth
  4. eg For 60-2 wheel, 58 teeth between the missing tooth = 3A
  5. eg For 36-1 wheel, 35 teeth between the missing tooth = 23
tooth_wheel=23
  1. tooth_wheel_twidth1:
  2. width (in degrees) of each tooth
  3. eg For 36-1 wheel, each tooth is 10 degrees = A
tooth_wheel_twidth1=A
  1. trigger_tooth:
  2. Used for multi-tooth wheels (Tooth that triggers event)
  3. so that trigger tooth is ~60 degrees BTDC
trigger_tooth=01
  1. Secondary_Trigger
  2. FE: Rising Edge trigger
  3. FF: Falling Edge trigger
  4. 01: Multi-tooth configuration
secondary_trigger=FF
  1. another_trigger_tooth:
  2. NEED HELP HERE. guessing secondary better grouping would be inorder
another_trigger_tooth=1E
  1. width (in degrees) of each tooth
  2. eg For 36-1 wheel, each tooth is 10 degrees = A
tooth_wheel_twidth2=12
  1. this is for folks with a cam Sync
  2. 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

  1. MCELL's Trigger setup, using a 60-1 VR wheel
  2. Triggers, HW determines VR or Hall
  3. software defines how it reacts
  4. ======Primary Trigger ====================
  5. primary_trigger=01
  6. tooth_wheel=3A
  7. trigger_tooth=10
  8. ======Secondary Trigger ====================
  9. secondary_trigger=FF
  10. another_trigger_tooth=1E
  11. crank_minper=50
  12. tooth_wheel_twidth1=06
  13. tooth_wheel_twidth2=12
  14. cam_sync_r_edge_phase=FF
  15. cam_sync_f_edge_phase=FF
  16. reset_engphase_after=FF
  1. Ignition
  1. Distance (in degrees) from first tooth after missing tooth to cylinder #1 TDC
  2. eg 115 degrees
  3. 62 degrees = 120 (from missing tooth) - 48 (trigger tooth * 6)
ign_tdcdelay=78
  1. Dwell
  2. Dwell settings for 14V and 6V
ign_dwell14=14

ign_dwell6=1E

  1. Ignition advance at cranking
  2. 0x01=0.25 degrees (at crank)
  3. eg 0x20=8 degrees
ign_crank_advance=20
  1. Dummy ignition with inverted output
  2. 0x01=???
  3. eg 0x70=???
ign_out=70
  1. Highest indexed ignition coil to trigger
  2. At least 0..ignchmax index of h[2] must be filled in
  3. eg h[2] = 05 07 05 07 00 00 00 00
  4. ignchmax = 03
ignchmax=03
  1. CEASE IGNITION AFTER engine_off_delay TIMEUNITS?
  2. 0x01=???
  3. eg 0x08=?
engine_off_delay=08
  1. Fuel Pump Control
  1. TURN OFF PUMP AFTER pump_on_mintime TIME UNITS
  2. 0x01=???
  3. eg 0x0F=???s
pump_on_mintime=0F
  1. Free injector driver drives the fuelpump relay?
  2. If no free injector driver, select another channel (eg. from P259) or set last element of h[0]
  3. FF=Auto-shutoff disable (not recommended, dangerous)
fuelpump_channel=P259_5
  1. Second stage of injectors
  2. Not used

inj_stage2_rate=FF

inj_stage2_start_tps=FF

inj_stage2_start_map=FF

  1. Anti-lag system
  2. Not used

als_lowrpm=FF

als_maxtps=FF

als_ignretard=FF

als_rich=FF

  1. Exhaust Gas Temperature
  2. Not used

egt1_cal=40

egt1_offs=00

  1. Boost Controller
  2. Not used

boost_conf=00

boost_targetoffs=00

boost_minpressure=FF

boost_pid_kp=20

boost_pid_ki=80

boost_pid_kd=01

boost_pid_ilimit=FF

boost_channel=FF

  1. Water pump Controller
  2. Not used

water_pump_temp=00

hybrid_rpm_a=00

hybrid_rpm_m=00

water_pump_hyst=00

water_pump_channel=FF

  1. Misc outputs (WOT and RPM, WOT, RPM, channel definition)
  2. FF disables the outputs
  3. needs/wants:
  4. RPM ( >7000 RPM) Switched ground for SuperBright LED (SHIFT LIGHT)
  5. RPM ( >rev_limit(7500 RPM) )Switched ground for SuperBright LED (REV Limiter)
  6. Suggested Setup from Dave24_
  7. ============== Misc 2 output =================
  8. 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

  1. select channel yourself, i would go with on of the p259 outputs
  2. P259 ouput 0: EC36 pin 4
misc2out_channel=p259_0
  1. ============== Channel Select =================
  2. not used
act_wot_rpm=FF

act_wot_channel=FF

  1. RPM ( >rev_limit(7500 RPM) )Switched ground for SuperBright LED (REV Limiter)
act_rpm_rpm=4B
  1. select channel yourself, i would go with on of the p259 outputs
  2. P259 ouput 1: EC36 pin 16
act_rpm_channel=p259_1
  1. not sure about the wot output with rpm range
  1. ============== Misc 1 output =================
  2. 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

  1. select channel yourself, i would go with on of the p259 outputs
  2. P259 ouput 6: EC36 pin 31
misc1out_channel=P259_6
  1. LCD layout
  2. A better description would definately be helpful
  3. TODO: wiki page reference
lcd_c0=FE

lcd_delay=FF

lcd_backlight=FF

lcd_offs[0]=FF

lcd_offs[1]=FF

lcd_offs[2]=FF

lcd_offs[3]=FF

lcd_default_view=00

  1. Injector sequence
  2. maskconfig.alternate elements are used
  3. (going reverse order, last element is looked up first)
  4. "LAST ELEMENT" IS NON-ZERO ELEMENT ON FAR RIGHT (48)?
  5. FETs are numbered 01,02,04,08,10,20,40,80.
  6. Injectors Populated:
  7. INJA[01, EC36p07]
  8. INJB[02, EC36p19]
  9. INJD[08, EC36p20]
  10. INJG[40, EC36p06]
  11. this fires them in batch mode (A and B) and (D and G)
h[0]=03 48 00 00 00 00 00
  1. NOT used obsolete
  2. THEN WHY ARE WE KEEPING IT HERE?
h[1]=00 00 00 00 00 00 00 00
  1. Ignition Sequence
  2. DR_00[h[2] = 00, EC36p35]
  3. DR_01[h[2] = 01, EC36p33]
  4. DR_02[h[2] = 02, EC36p34]
  5. DR_03[h[2] = 03, EC36p36]
  6. IS THIS CORRECT FOR TWO WASTED SPARK COILS TRIGGERED BY
  7. PINS EC36p35 and EC36p33? FIRING ORDER=1-3-2-4
h[2]=00 01 00 01 00 01 00 01
  1. chris G's notes:
  2. third line contains the ignition sequence, each element
  3. represents the bitnumber of the p259 output going to coil
  4. We start at the end (ignchmax) and work our way back
  5. WHICH END IS THAT? RIGHTMOST NON-ZERO CHANNEL?

  1. these are for something else
  2. WHAT MIGHT THAT BE?
b[0]=28 30 38 40 48 50 58 60

t[0]=20 40 17 80 A0 C0 E0 FF