MembersPage/SteenAndersen/MyInstallation (2005-05-01 15:34:59)

Sub-page for MembersPage/SteenAndersen

This page is intended to describe my specific installation of GenBoard.

I'm using the tach signal for trigger, it's set for 6 cyl, and DummyIgnition on IGN_03. I used a 470nF capacitor to tap the tachometer signal directly from the tachometer, and i unsoldered R30 on the GenBoard.

The installation is not set to control the engine yet (have no electrical control to motor yet). I have only hoked vems up as a meassuring device for now. I have connected the CLT to the original Bosch oil temperature sensor, and temperatures seems right with readings from 2°C celsius on a cold morning's to 95-100 °C celsius with warm running engine. I also have MAP connected, and i made a sensor for CHT (cylinder head temperature) from a NTC resistor from the WebShop, but reading is suspicious, i get almost same cold redings as CLT, but warm engine tempratures is in the 60-70 dec. celcius, where i suspected higher temoperatures than the oil temperatures measured by CLT.

This config and tables are not completed, not all parameters are set, and in tables only h[] are configured yet.

Here's teh commented version of config .txt and tables.txt

== Config.txt ==\n

############################################################
# Last Updated 1 May 2005 
# SteenAndersen 911 car: NA car
# 3.0L 12v normal 911SC cams
# Single throttle bodies 
# Coil type trigger sensor in old original distributor
# target board v3.2
# 
# Injectors Populated: INJA, INJB, INJC, INJD, INJE, INJF 
# Wideband Heater:  WB1 
# IGNition Drivers: only DR_03 is used, with old distributor, and original CDI.
# VE Table being used in double resolution mode
############################################################
# original config 2005.02.12. Marcell Gal
# From released "v3_firmware_2004-11-24_v8.zip"
############################################################

# ===== Fuel Pump Priming
# Priming pulse at -40 F [100 usec] eg. 0x80 * 100uS = 12.8 msec

primep=0D # 1.3ms (0x0D * 100us), -- Not configured yet --

# ==== Hot start
# Priming pulse scaling at 170 F (0x80=half, 0xFF=same as cold) 0xA0 = ~63%

primep_temp_scaling=A0  # -- Not configured yet --

# ===== Cranking Pulse Definition
# typically cwh =~ 0.2 * cwl
# Cranking pulsewidth [x100 usec] at -40F (-40C) eg. 0xE0 * 100uS = 22400uS

cwl=9D  # -- Not configured yet --

# Cranking pulsewidth [x100 usec] at 170F ( 76.6C) eg. 0x40 * 100uS = 6400uS

cwh=33 # -- Not configured yet --

# Cranking threshold [x100 rpm] eg. 0x03 * 100rpm = 300rpm

cranking_thres=04 # -- Not configured yet --
crank_minper=0A  # for std. coil tach signal, # -- Not configured yet --

# Afterstart warmup enrichment (%added value) 0x50 = +80%

awev=26 # +48%, # -- Not configured yet --

# Afterstart warmup scaling at 170 F (0x80=half, 0xFF=same as cold) 0xA0 = ~63%

awev_temp_scaling=64, # -- Not configured yet --

# Afterstart number of engine cycles, NOTE: This is not ignition events anymore
# 0x80 means 128 cam rotations = 256 crank rotations = appr. 16 sec

awc=80 # -- Not configured yet --

#############################################################
# INJECTOR SETTINGS
#
# Fueling Parameters 
# DONE: Req_fuel recalculated.
# 
# 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 for 911SC is calculated to be >>10.6ms<< via mega manual
# 181 cui displacement , 6cyln, 6 injectors, 1 squirts, 30lb/hr, staging:none 
# req_fuel variable is in hex and is multiplied
#     0x00 * .1ms EXAMPLE: 3.2ms = 0x20 
#     10.6ms ==> 0x6A 
#
# Normal Req_fuel setting ( j[] table 0..100*256 )
# req_fuel = 6A   # Fuel constant (req_fuel) (10.6ms Decimal)
#
# injectors ?unknown? 305 cc/min @ 3bar (30lb/h)
# engine 3000 cc
# Normally: req_fuel=6A
# (To double the VE table resolution divide req_fuel by two Thus req_fuel = 0x6A div 2 = 0x35)

req_fuel=6A


injopen=20 # 32*16 usec # -- Not configured yet --
battfac=10 # +- 16 * 16usec depending on VBATT # -- Not configured yet --
injocfuel=08 # max rampup time at VBATT=7V is 8 * 24 usec # -- Not configured yet --
injrampup_battfac=FF # min rampup time is injocfuel*77% # -- Not configured yet --


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

# ===== 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 = 05 to use indexes 5,4,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
# (all 6 in this case) simultaneously at cranking
# so this is alternate=05 for 6cyl, but bit4=1 enables squirting both banks at cranking
# Bitwise  0x0001 0101

alternate=05

#############################################################
#
# Fuel Pump Control:
#
# 911SC Config: USE P259_5 = EC36-15 (350mA) Output, OK.
#
# 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)
#
#############################################################

# output selection for fuelpump (digitalout)

fuelpump_channel=P259_5

# seconds [*0.262 sec] before fuelpump is turned off at poweron (without start of engine)

engine_off_delay=08  # 2 seconds
pump_on_mintime=10 # 4 seconds

#############################################################
# ==================== TRIGGER 1====================
# Triggers, HW determines VR or Hall
# software defines how it reacts
# 
# The 911SC car uses a 6 spikes coil type trigger, inside the original distributor
#
# trigger1, bit0 0:falling/1:rising, bit1 0:toothwheel/1:coil, bit2 0:no filtering/1:filtering
#
# MY config = Rasing, coil, filter => 0000 0111 =0x07
#############################################################

primary_trigger=07

# tooth_wheel:  Used for multi-tooth wheels (total # of teeth)  

tooth_wheel=06     # not used in a basic coil type trigger aka DummyIgnition

# trigger_tooth:Used for multi-tooth wheels (Tooth that triggers event)

trigger_tooth=00   # not used in basic coil type trigger aka DummyIgnition

#############################################################
# ==================== TRIGGER 2====================
#
#	bit0: 1=rising edge; 0=faling
#	bit1: 1=secondary trigger is disabled
#	bit2: 1=then filtering is enabled
#	bit3: 1=then use coil to trigger instead of toothwheel
#	bit4: 1=enable cam sync, else measure alien ignition advance
#	bit5: 1=then cam sync on both edges during cranking
#
#	Secondary trigger nut usedin 911SC.

secondary_trigger=02

# trigger again on tooth 30 (dec) further than trigger_tooth

another_trigger_tooth=00

# CAMSYNC #####################################################################

cam_sync_f_edge_phase=FF
cam_sync_r_edge_phase=FF
reset_engphase_after=FF

# tooth wheel, angular width of tooth
# for a 60 tooth wheel this is 360 / 60 = 6 degrees

tooth_wheel_twidth1=01 # -- Not configured yet --

# tooth wheel, angular width of missing tooth
# 60 - 2 wheel, 3 times tooth_wheel_twidth1 = 18 degrees

tooth_wheel_twidth2=12 # -- Not configured yet --

#############################################################
# ==================== IGNITION ====================
#
# Ign3 as output channel, and set for CDI triggering, dummy ingnition.
#
# IGN TDC Delay is in .5 degree resolution.

ign_tdcdelay=00   # 0 degrees BTDC , since we adjust distributor to TDC.

# dwell used when VBatt >= 14V (64 usec). usual range for COP coils: 1.5-2.2mS.
# 0x10 = 1024 usec
# 0x20 = 2048 usec
# 0x2c = 2816 usec
# 0x32 = 3200 usec
# 0x36 = 3456 usec
# 911SC car uses BOSCH-DCI Module so Dwell is done in that IGBT module

ign_dwell14=30   # ? what value to trigger CDI

# dwell enlargement [27 usec] (above dwell14) when VBatt = 6V
# 0x30 = 1296 usec
# 0x40 = 1728 usec
# 0x60 = 2592 usec
# 0x80 = 3456 usec

ign_dwell6=10   # ? what value to trigger CDI

# ignition advance at cranking (8 deg) [0.25crankdeg]
# crank advance = 8 degrees

ign_crank_advance=20 # -- Not configured yet --

# Dummy ignition with inverted output
# EDIS:0x0? dummy: 0x7? disable:0xff bit0: invertout

ign_out=70 

# at least 0..ignchmax index of h[2] must be filled in
# ? Numer of elements, index 0..x in h[2] table for ignition. 

ignchmax=05 # 6values defined in h[2] table

#############################################################
# ================ EGO enable and WBO2 =============
# ==== config13
#define ODDFIRE               0 // 0:normal, 1:odd-fire
#define O2_WB_SENSOR          1 // 0:narrowband, 1:diy-wb
#define CONTROL_STRATEGY      2 // 0:speed-density, 1:alpha-N
#define BARO_CORRECTION       3 // 0:off, 1:on

config13=02

# Min RPM for ego enabling [100rpm]
# 0x08 * 100rpm = 800rpm
# 0x0C * 100rpm = 1200rpm

ego_minrpm=08 3# 800rpm

#================= WARMUP ============================
# 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
# -- Not configured yet --
warmup_clt_range[0]=00  # -40.0 C
warmup_clt_range[1]=15  # -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

#  Warm up enrichment as function of temperature, biased at 100 (0x64)
# enrichment @-40.0C
# -- Not configured yet --
warmup_clt[0]=C0 # * 1.44
warmup_clt[1]=B4
warmup_clt[2]=AB
warmup_clt[3]=A8 # * 1.36
warmup_clt[4]=A0 # * 1.32
warmup_clt[5]=9A
warmup_clt[6]=8C # * 1.12
warmup_clt[7]=7F
warmup_clt[8]=73
warmup_clt[9]=64 # * 1.0
# no enrichment (0x64==100 which is *1.0) @71.1C and above

# warmup enrichment can be decreased as a function of rpm.
# set all to 0x64 to disable
# -- Not configured yet --
warmup_rpm[0]=74 # * 1.16
warmup_rpm[1]=72
warmup_rpm[2]=70
warmup_rpm[3]=6E
warmup_rpm[4]=6A
warmup_rpm[5]=67
warmup_rpm[6]=66 # * 1.00
warmup_rpm[7]=64


# MAP range [2kPa] 0: use A/B lookup table
# 2.5 bar MAP sensor: 8D
# 1.15 bar MAP sensor: (hexa) 39
# 5.1 bar MAP sensor (impressive boost !!): FF (max value)

kpafac=7D  # set in MegaTune for redings to fit barometric pressure.

kpaofs=00	# ?? not uset ?

# ======== 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 - JJR 03/31 15:15)
#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 ) 
# -- Not configured yet --

injpwmt=0A      # 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

# -- Not configured yet --
injpwm=30       # Injector PWM duty cycle (when current limiting is active) 

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

# -- Not configured yet --
injpwm6=40      # added Injector PWM duty cycle during low battery voltage (6V)

# Constant to calculate RPM: 
# 12000 rpm/4clyn = 3000=11*256 + (11*16 +8) =0x0BB8
# 12000 rpm/6clyn = 2000=07*256 + (13*16 +0) =0x07D0
#
# 911SC Uses 6 cylinder.

rpmk[0]=07
rpmk[1]=D0


#############################################################
# TPS related information
#
# No TPS is used in 911SC.
#
# ===== 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
# 0: TPSDOT, 1: MAPDOT acceleration enrichment

tps_low=00
tps_high=FF

tpsdot_kpadot_conf=01  # No TPS is used in 911SC only MAPdot for acceleration.

# Accel TPSDOT threshold (throttle sensitivity), this specifies the 
# minimum rate of change to enable any acceleration enrichment

tps_thresh=05	# ? What if No TPS, and only MATDOT ?

# Acceleration duration [0.1 sec] eg. 0x0A * 0.1 = 1 second
tpsasync=02 
# -- Not configured yet --

# Acceleration cold multiplication factor, biased at 0x64 eg. 0x64 - bias = 0
acmult=64 
# -- Not configured yet --

# Cold acceleration added amount (at -40 F degrees) [x100 usec]. eg. 0x14 * 100uS = 2000uS
tpsacold=05
# -- Not configured yet --

# Rate of change bins for use with tps_thresh. If 14 =< actual delta(throttle position) 
# < 28 then tpsdotrate[1] is the active bin.
# define the tps-dot bins: d(tps)/[0.1 sec]
tpsdotrate[0]=05
tpsdotrate[1]=0E
tpsdotrate[2]=20
tpsdotrate[3]=40
# -- Not configured yet --

# TPS acceleration amount (fn TPSDOT) [100 usec]. This is the acceleration enrichment 
# pulsewidth, the active bin is determined by tpsdotrate[].
tpsaq[0]=08
tpsaq[1]=12
tpsaq[2]=17
tpsaq[3]=1B
# -- Not configured yet --

# 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
# -- Not configured yet --

# Decel fuelcut enabled above threshold [x100 rpm] eg. 0x0F * 100 = 1500rmp
decel_fuelcut_thres=FF
# -- Not configured yet --

# Overrun fuelcut: injectors disabled above this [x100 rpm] 
# 16 (0x10) x 100 = 1600rpm when engine.tps <= config.iac_tps_thres (TPS fully released)
overrun_fuelcut=10
# -- Not configured yet --

# Overrun fuelresume, injectors reenabled below this [x100 rpm] 
# eg. 13 (0x0D) x 100 = 1300rpm. Must be lower than overrun_fuelcut.
overrun_fuelresume=0F
# -- Not configured yet --

# Rev limit (hard) [x100 rpm] eg. 0x4B * 100rpm = 7500rpm
rev_limit=4B

# 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.
airden_ignore=62
# -- Not configured yet --

# ============ config11
#define MAP_SENSOR      0  // 0:mpx4115ap, 1:mpx4250ap
#define ENGINE_STROKE   2  // 0:4-stroke, 1:2-stroke
#define INJ_TYPE        3  // 0:port injection, 1:throttle body
# bit 7-4 defines no of cylinders

config11=61

# config12=30  # 4 cyl
config12=60   # 6 cylinders ; is this correct ?

mt_unused=00
# 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=A3  #Set in Megatune by comparison to DVM.

# Fast idle temperature, open solenoid valve under (fastidle - 40 Fahrenheit): 
# if you want 88F, set 88+40 = 128 = 0x80
fastidle=80 # -- Not configured yet --

# mean barometric pressure
baro=64  # (100) # -- Not configured yet --

# max allowed difference in barometric pressure, else use baro=0x64 (100 kPa)
dbaro=0C # -- Not configured yet --

# Temperature when fan will turn on degC eg. 0x55 = 85degC
fan_temp=55 # No electrical fan on 911SC

# fun_temp-fan_hyst=temp when fun will turn off 0x55 - 0x09 = 0x4C (76degC)
fan_hyst=09 # No electrical fan on 911SC

# coolant fan, output selection (digitalout)
fan_channel=FF # No electrical fan on 911SC



# IAC configuration ###########################################################
# NOT USED IN 911SC.(Yet)
#
#(0,1),(2,3)
#(A,B),(D,C)
# c9=0b11001001=3,0,2,1
# 0 0   0 1
# 1 0   0 0
# 0 0   1 0
# 0 1   0 0

# d8=0b11011000=3,1,2,0
# 0 0   0 1
# 0 1   0 0
# 0 0   1 0
# 1 0   0 0

iac_step_seq=c9

#config.iac_conf bits:
#bit4=1 advance_control // 0: off 1: enabled
#bit3=1 precise_idle   // 0: on/off 1: pwm/stepper based
#bit2=1 stepper_iac    // enable stepper based iac
#bit1=1 low_power_halt 1    // don't move iac if batt < 8V
#bit0=0 power_off_iac   // power off stepper 1 step cycle after each move
# 7e=0b0111 1110
iac_conf=7e
iac_sol_channel=FF
iac_max_steps=F0

# enable overrun fuelcut and iac below this.
iac_tps_thres=05

# C = 5/9 * F - 40 = 66.1 C
iac_cold_idle_temp=A0

# C = 5/9 * F - 40 = 70.6 C
iac_warm_idle_temp=D0

# 0x60 = 960 rpm
iac_cold_rpm=74
# 0x50 = 800 rpm
iac_warm_rpm=67
iac_cold_start_pos=E2
iac_warm_start_pos=B0

# rpm added to target rpm after starting, for the duration of iac_afterstart_duration
iac_afterstart_rpm=1F
# iac afterstart rpm for the duration of 32 * 0.1 = 3,2 seconds
iac_afterstart_duration=20
# steps per 160 rpm ??
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

# bit0=1 enable asymetric behavior
iac_pid_conf=01
iac_overclose_interval=B8

iac_ign_advance_change=28
iac_ign_retard_change=20
iac_ign_advance_limit=10 # max 4 degrees
iac_ign_retard_limit=18 # max 8 degrees
iac_ign_threshold=08 	# above 2 degrees

iac_ref_pos[0]=35 # -40.0 C # 60 %
iac_ref_pos[1]=34 # -28.8 C # 60 %
iac_ref_pos[2]=33 # -17.7 C # 60 %
iac_ref_pos[3]=32 #  -6.6 C # 56 %
iac_ref_pos[4]=31 #   4.4 C # 53 %
iac_ref_pos[5]=30 #  15.5 C # 50 %
iac_ref_pos[6]=2F #  26.6 C # 50 %
iac_ref_pos[7]=2E #  37.7 C # 48 %
iac_ref_pos[8]=2D #  54.4 C # 47 %
iac_ref_pos[9]=2C #  71.1 C # 45 %

# EGO configuration ###########################################################

# config.ego_conf defines:
# bit0 define PID_EGO_CONTROL 0	// only if my_make has NBO2_PID_EGO_EXPERIMENT
# bit1 define WBO2_SENSOR 1	// see config13
# bit2 define INCREDIBLE_EGO_CONTROL 2 // always used for WBO2
# bit4 define EGO_NBO2_TARGET 4 killed, dangerous with corr.lambda used unconditionally ego_conf
# bit5: NBO2_adc7 bit0:PID

ego_conf=07 # 07 variable afr ??

# Step size (percent) [0.4%] eg. 0x02 * 0.4% = 0.8%
ego_delta=01

# Time constant (engine cycles) for changing correction factor
ego_lag=04 # -- Not configured yet -- 

# Min coolant temperature for ego enabling[F] eg. 0xC2 = 194degF (108degC)
# C = 5/9 * F - 40
# 60 degrees celcius = 140F = 0x8C
ego_coolant=10 # -- Not configured yet --

# Max TPS position for ego correction
ego_maxtps=FF  # NO TPS on 911SC

# Max percent to lean/rich afr[0.4%]
# 0x10 * 0.4% = 6.4%
# 0x30 * 0.4% = 19.2%
# 0x80 * 0.4% = 51.2%
ego_lean_limit=1D  # 29 during tuning
ego_rich_limit=28  # 40 during tuning

# Max rpm for O2 correction [100rpm] 0x32 * 100rpm = 7500rpm
ego_maxrpm=FF # -- Not configured yet --

# Max MAP for O2 correction[kPa] 
ego_maxmap=FF # -- Not configured yet --

# Warmup time [sec] eg. 0x3C (60 sec)
ego_warmup=0A # -- Not configured yet --

# ego_target = 51 * O2_sensor_voltage
ego_target=19 # -- Not configured yet --

# incredible_ego speed limit: 80..c0
ego_pid_kp=40 # -- Not configured yet --

# not used for the wbo2 incredible ego, only for NBO2_PID_EGO_EXPERIMENT
ego_pid_window=FF # -- Not configured yet --

#####################################################################
# ====================== WBO2 ===========
# normal board (UNCONFIRMED VALUES)
# 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 = 0xA6
# wbo2, target nernstDC [5V/256]
# wbo2_nernstdc_target=A6 ; must be adjusted to sensor.
#
# wbo2 config set by test, see. my history page
#
# Works fine, warmup about 40-60 sec. total, before La:x.xx shows on LCD.

wbo2_warmup_ramp=C0
wbo2_warmup_target=FF
wbo2_abs_limit=E4
wbo2_limit_maxt=A0
wbo2_fallback=60
wbo2_retry_t=06
wbo2_edgetime_min=62

wbo2_calibration=C3  # Measured in free air to 20.95 %o2 reading on LCD.

wbo2_edgetime_corr=BA

wbo2_pump_pw_zero=64 # measured for board 182 (3.94V)

wbo2_ri_target=96  # yes i readjusted for Ri=150

wbo2_nernstdc_target=A6  # for 0,45V nernst voltage measured

# smaller signal, higher PID values:
# -- Not configured yet --
#
# Not sure about what values, just hacked from others.

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
wbo2_pump_pid_ki=2E
wbo2_pump_pid_kd=08
wbo2_pump_pid_ilimit=84
wbo2_ri_confidence_scale=80   # ????????



# KNOCK #######################################################################
# -- Not configured yet --
# I did not recieve my knock sensor chip in my order.
# engine with bore XX-mm and stroke YY-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)

knock1_frequency=29
knock1_gain=FF
knock1_integrator=FF
knock2_frequency=29
knock2_gain=FF
knock2_integrator=FF
knock_conf=00
knock_sampling_window=FF 
knock_default_retard=00
knock_max_retard=FF
knock_maxrpm=FF
knock_minrpm=FF
knock_advance_delay=FF
knock_advance_step=FF
knock_noise_scale=FF
knock_retard_delay=FF
knock_retard_step=FF
knock_threshold=FF

##### VE auto-learning #####
# -- Not configured yet --
ve_learn_coolant=D8    # 0xD8=141 celsius
ve_learn_max_power=ff
ve_learn_rpm_scale=1E
ve_learn_kpa_scale=1E
ve_learn_ego_scale=43
ve_learn_speed=FF  # 80 .. E0
ve_learn_limit=ff #30
ve_learn_min_weight=4D
ve_learn_conf=02  # 01 = on, during tuning

# lcd settings ################################################################
# -- Not configured yet --
# no busypoll:
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


# ouput channels #############################################################
# -- Not configured yet --
# 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
#
act_wot_rpm=FF		# WOT switch RPM threshold (FF=disable)
# used for stimout !! C0 gives good signal, noninverted 40 is much worse
act_wot_channel=C0	# WOT switch output channel selector 
act_rpm_rpm=FF		# RPM switch RPM threshold (FF=disable)
act_rpm_channel=FF	# RPM switch output channel selector  

# P259 ouput 1: EC36 pin 16  (coil driver 09)
# -- Not configured yet --
misc1out_channel=P259_1
misc1out_maxmap=FF
misc1out_maxrpm=19
misc1out_maxtps=FF
misc1out_minmap=50
misc1out_minrpm=06
misc1out_mintps=20

# ============== Misc 2 output =================
# RPM ( >7000 RPM) Switched ground for SuperBright LED (SHIFT LIGHT)
# -- Not configured yet --
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  (coil driver 08)
misc2out_channel=P259_0

## EXPERIMENTAL FEATURES ##################################################################
# injector staging
# NOTE: 911SC not using.
inj_stage2_rate=FF
inj_stage2_start_tps=FF
inj_stage2_start_map=FF

# ALS, NOTE: 911SC not using
als_lowrpm=FF
als_maxtps=FF
als_ignretard=FF
als_rich=FF

# EGT, NOTE: 911SC not using
egt1_cal=40		# EGT calibration multiplier
egt1_offs=00	# EGT offset (signed)
# Boost Controller, NOTE: 911SC not using
boost_channel=FF
boost_conf=00
boost_minpressure=FF
boost_pid_ilimit=ff
boost_pid_kd=01
boost_pid_ki=80
boost_pid_kp=20
boost_targetoffs=00

# Water pump Controller, NOTE: 911SC not using
water_pump_channel=ff
water_pump_hyst=00
water_pump_temp=00

# always by MAP sensor
# ? what is this ?
hybrid_rpm_a=00
hybrid_rpm_m=00

== Tables.txt ==\n

##############################################################################
# 10. April 2005
# Injector map
# This is also known as the VE-TABLE
# This table can be scale from [1..100 .* (256), Max_value = 0x6400 ] 
#                           or [2..200 .* (256), Max_value = 0xC800 ]
# To scale for better resolution config.req_fuel must be divided by 2
# 
j[0]=667F 667F 6736 697F 6E7F 717F 717F 737F
j[1]=677F 6859 6B7F 6F7F 757F 797F 7A7F 797F
j[2]=687F 6C7F 717F 787F 837F 887F 867F 827F
j[3]=6F7F 717C 797F 847F 917F 987F 987F 927F
j[4]=7B7F 7F7F 847F 8D7F 9B7F A47F A87F A17F
j[5]=827F 837F 8C7F 937F A87F B37F B958 B37F
j[6]=867F 8B7F 937F 9C7F AF7F B87F BF7D BE7F
j[7]=877F 8CB0 967F A07F B07F BA7F C57F C27F

# =========== KPa Bins  ===============
#    This is an example settings for a Naturally Aspirated Engine
# 0x14 = 20
# 0x1E = 30
# 0x28 = 40
# 0x32 = 50
# 0x3C = 60
# 0x4B = 75
# 0x5A = 90
# 0x69 = 105

k[0]=14 1E 28 32 3C 4B 5A 69

# ========== RPM bins ================
# RPMbin = 0x00 * 100RPM
# 0x05 =  500 RPM
# 0x0A = 1000 RPM
# 0x0F = 1500 RPM
# 0x14 = 2000 RPM
# 0x1E = 3000 RPM
# 0x28 = 4000 RPM
# 0x32 = 5000 RPM
# 0x40 = 6400 RPM

r[0]=05 0A 0F 14 1E 28 32 40

# ============= lambda correction map ===============
# This is what EGO attempts to correct to

l[0]=38 38 38 38 38 38 38 38
l[1]=38 38 38 38 38 38 38 38
l[2]=38 38 38 38 38 38 38 38
l[3]=38 38 38 38 38 38 38 38
l[4]=38 38 38 38 38 38 38 38
l[5]=38 38 38 38 38 38 38 38
l[6]=38 38 38 38 38 38 38 38
l[7]=38 38 38 38 38 38 38 38

# Fero said that max l=0x5c (NA) is too rich. So he set it for 0x6A (even more rich :-)

# ============== Ingition map ====================
#
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 sequence 
# maskconfig.alternate elements are used 
# (going reverse order, last element is looked up first). 
# FETs are numbered 01,02,04,08,10,20,40,80.
# 
# Injectors Populated: 
## INJA[01, EC36-07]
## INJB[02, EC36-19]
## INJC[04, EC36-08]
## INJD[08, EC36-20] 
## INJE[10, EC36-09]
## INJF[20, EC36-18] 
# LSB fired first
# this fires them in sequence A, B, C, D, E, F, 

h[0]=20 10 08 04 02 01 00 00

# <for fuelpump_channel=70 here goes injmask for fuelpump relay>

# NOT used Obsolete
h[1]=00 00 00 00 00 00 00 00

# Ingition Driver 
# Fire the one installed
# IGNition Drivers Installed
# NOT Used DR_00[h[2] = 00, EC36-35]
# NOT Used DR_01[h[2] = 01, EC36-33]
# NOT Used DR_02[h[2] = 02, EC36-34]
#          DR_03[h[2] = 03, EC36-36]
# using DR_03 just to show where it goes, not that it has to be this one
h[2]=03 03 03 03 03 03 03 03
# wasted spark would look like
#h[2]=01 02 01 02 01 02 01 02
# 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
# fire igbts 07 for all events please (single coil firing through distributor)

#-----------these are for something else (Boost control)
b[0]=28 30 38 40 48 50 58 60
t[0]=20 40 17 80 A0 C0 E0 FF