<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
- Hot start priming pulse scaling at 170F
- Measured as percentage
- 0x80=50%, 0xFF=100%
- eg A0=63%
- Cranking while cold (low temp) pulsewidth
- Cranking pulsewidth at -40 F
- 0x01=0.1ms
- eg 1E=3.0ms
- Cranking while hot pulsewidth
- Used when coolant temp >= 170 degF
- Typical cwh = about 20% of cwl
- 0x01=0.1ms
- eg 0A=1.0ms
- 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
- Operating environment
- Battery voltage calibration (affects dwell and pwm'ing)
- Adjust so that VBatt reading in Megatune matches actual supply voltage.
- 0x01=???
- default=BC
- Mean Barometric Pressure
- MAP sensor failure value (limp home value)
- 0x01=2kPa
- 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?
- 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
- 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
- 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
- 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
- Slope of line representing time added to
- injopen to compensate for high/low battery voltage.
- Only used when 7V>=VBATT>=19V
- 0x01=xxxx
- Time added to injection to compensate for reduction in fuel flow
- during injector opening and closing.
- 0x01=0.24ms
- eg 0x20=7.68ms
- 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
- 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
- Injector PWM duty cycle
- Measured in percent (50%=0x80, 100%=0xFF)
- 100% when using HighZ
- 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%)
- 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_high=AC
- Acceleration Enrichment basis
- 00 = Use TPS DOT for acceleration enrichment
- 01 = Use both MAP DOT and TPS DOT for acceleration enrichment
- TPSDOT bins
- Amount of change in throttle position over 0.1 sec
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[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.
- Acceleration duration
- Amount of time to apply the enrichments specified in tpsaq[] bins.
- 0x01=0.1s
- eg 0x0A=1 second
- Cold acceleration multiplication factor
- Biased at 0x64
- eg 0x64 - bias = 0
- Cold acceleration added amount (at -40 F degrees)
- 0x01=0.1ms
- eg 0x14 = 2.0ms
- 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
- Decel fuelcut enabled above threshold
- 0x01=100rpm
- eg 0x0F=1500rpm
- Overrun fuelcut:
- injectors disabled above this
- 0x01=100rpm
- eg 0x10=1600rpm
- Overrun fuel resume
- Injectors re-enabled below this value
- 0x01=100rpm
- eg 0x0F=1500 RPM
- MAP Sensor settings
- MAP Sensor
- MPX4250AP 250kpa sensor (standard for v3.x)
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
- 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)
- Coolant fan
- Output channel selection (digitalout)
- 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
- 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%
- 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
- Idle Air Controller Type
- Use iac_conf=7E for stepper style
- Use iac_conf=18 for PWM style
- Max commanded output for solenoid
- eg 0xFF=5V
- Enable IAC when TPS is less than iac_tps_thres
- 0x01=0.64% open
- eg 0x10=1/16 open throttle
- Below this temp, idle is set to iac_cold_rpm
- In Fahrenheit degrees + 40
- 0x01=1 degF
- eg 0xA0=200degF
- Above this temp, idle is set to iac_warm_rpm
- In Fahrenheit degrees + 40
- 0x01=1 degF
- eg 0xD0=248degF
- At iac_cold_idle_temp, set idle to iac_cold_rpm
- 0x01=10rpm
- eg 0x74=1160rpm
- At iac_warm_idle_temp, set idle to iac_warm_rpm
- 0x01=10rpm
- eg 0x67=1000rpm
- 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)
- Valve position on warm start (170F)
- Intentional rpm overshoot after startup
- Add this amount of rpm to idle rpm at startup
- 0x01=10rpm
- eg 0x1F=310rpm
- Duration to hold iac_afterstart_rpm
- 0x01=0.1sec
- eg 0x20=3.2 seconds
- 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
- PID parameters for idle air controller
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[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
- 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
- Ignition advance based fine-adjust
- 0x01=0.25 crank degrees per 256rpm
- Ignition advance limit when trying to increase RPM
- 0x01=0.25 crank degrees
- eg 0x10=4 degree limit
- Ignition retard limit when trying to decrease RPM
- 0x01=0x25 crank degrees
- eg 0x1A=6.5 degree limit
- 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
- 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
- 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
- Afterstart warmup scaling at 170F
- Use this percentage of awev when coolant temp >= 170F
- 0x01=0.4%
- eg 0x80=50%, 0xFF=100%
- 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[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
- 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 Resolution
- Minimum recognized change in EGO value
- 0x01=0.4%
- eg 0x02=0.8%
- Minimum time between correction factor changes
- Measured in engine cycles
- 0x01=1 engine cycle
- Minimum coolant temperature for EGO enabling [F]
- eg. 0xC2 = 194 degF (108degC)
- Maximum TPS position for EGO correction
- 0xFF=100% open (WOT)
- Maximum MAP for O2 correction
- 0x01=2kPa
- Minimum rpm for ego enabling
- Ignore all EGO information below this RPM
- 0x01=100rpm
- eg 0x0C=1200rpm
- Maximum rpm for EGO correction
- 0x01=100rpm
- eg 0x4B=7500rpm
- Warmup time
- 0x01=1 sec
- eg 0x3C=60 sec
- Maximum allowed enleanment of AFR
- 0x01=0.4%
- eg 0x30=19.2%
- Maximum allowed enrichment of AFR
- 0x01=0.4%
- eg 0x80=51.2%
- WBO2
- Wideband O2 heater warm-up ramp speed
- 0x01=0.0032V/sec
- eg 0x3F=0.2V/sec
- Heater absolute voltage limit
- eg 0x2A=12V
- eg 0xFF=30V
- Max time allowed at absolute voltage limit
- in milliseconds
- 0x01=1ms
- eg A0=160ms
- Fall back voltage after max time spent at absolute limit
- 1C=10V, 2A=12V, FF=30V
- Time before retrying control:
- 0x01=4 sec
- eg 0x3B=59 seconds
- Edgetime correction constant C/R
- EVERYONE HAS wbo2_edgetime_corr=BA, SHOULD THIS BE ADJUSTABLE?
- Gate for small edgetimes
- Any reading less than this is ignored
- 0x01=0.5usec
- 0x50=40.0usec
- 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_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 target Ri (pulse amplitude)
- 0x01=5V/4096
- 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_ri_confidence_scale:
- Ri confidence scaling factor.
- s^2 < 255/scale
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_sampling_window=FF
- Use knock sensing in this RPM range
- FF for both means no knock sensing/control
knock_maxrpm=FF
- Channel #1 setup
knock1_gain=FF
knock1_integrator=FF
- Channel #2 setup
knock2_gain=FF
knock2_integrator=FF
- Trigger level
knock_noise_scale=FF
- Ignition effects
- Knock getting louder
knock_default_retard=00
knock_retard_step=FF
knock_retard_delay=FF
- Knock getting softer
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
- 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 Learning speeds
- Higher number means more agressive changes
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_limit:
- Max deviation from reference VE bin
- 0x01=0.4%
- Triggers
- Primary_Trigger
- NEED LIST OF VALID VALUES AND APPLICATIONS HERE
- FE: Rising Edge trigger
- FF: Falling Edge trigger
- 01: Multi-tooth wheel configuration
- 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_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'
- 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.
- 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
- 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)
- 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
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
- 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
- The 1->0 trigger arrives 180 cam degrees apart,
- thus cam_sync_f_edge_phase = (87+216/2)%216 = 33 (dec)
- reset_engphase_after == 2 [revolutions] * ( (12-2) * tooth_wheel_twidth1 + 2 * tooth_wheel_twidth2 )
- 240 = 2 * ( 10*10 + 2*10 )
- 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
- 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)
- Dwell
- Dwell settings for 14V and 6V
- 0x01=0.64ms
- eg 0x14=
- 0x01=0.27ms
- Ignition advance at cranking
- 0x01=0.25 degrees (at crank)
- eg 0x20=8 degrees
- Dummy ignition with inverted output
- 0x01=???
- eg 0x70=???
- 0xFF=Disable ignition output
- 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
- Cease ignition after engine_off_delay
- TIMEUNITS?
- 0x01=???
- eg 0x08=?
- Fuel Pump Control
- TURN OFF PUMP AFTER pump_on_mintime TIME UNITS
- 0x01=???
- eg 0x0F=???s
- 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)
- Second stage of injectors
- Not used
inj_stage2_start_tps=FF
inj_stage2_start_map=FF
- Anti-lag system
- Not used
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_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_maxrpm=48
misc1out_mintps=FF
misc1out_maxtps=FF
misc1out_minmap=00
misc1out_maxmap=FF
misc1out_channel=00
- Aux 2 output
misc2out_maxrpm=FF
misc2out_mintps=00
misc2out_maxtps=FF
misc2out_minmap=00
misc2out_maxmap=FF
misc2out_channel=00
- Aux 3 output
act_wot_channel=00
- Aux 4 output
act_rpm_channel=00
- LCD layout
- A better description would definately be helpful
- TODO: wiki page reference
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[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)
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_m=00
- Don't touch stuff below here
- not used for the wbo2 incredible ego, only for NBO2_PID_EGO_EXPERIMENT
- Narrow band O2 sensor target voltage
- ego_target = 51 * O2_sensor_voltage
- 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
\n
############################################## # 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]= 01 02 08 10 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