MembersPage/BengtR/Trigger (2007-09-04 20:22:11)

4th gen 3SGTE Toyota engine started (thanks to Marcell support). So made some progress, but generates trigger/wheel errors.

Same kind of V3.2 ecu runs succesfully in couple of BMW's (these have slightly larger trigger wheel and different sensor).

Differences between installations (VR/triggering vice).

- Trigger wheel diameter (215 mm from memory in BMW) and 158 mm in Toyota

- VR sensor (510 ohms in BMW) and 1372 ohms in Toyota (oem sensor)

- trigger position (100 deg in BMW) and 95 degrees in Toyota.

VR condition circuitry voltage level (from sensor) might be lower in Toyota installation.

in Toyota we have...

60-2 trigger wheel

diam 158.1 mm -> circular length 496,6858 mm

1 deg = 1,379683 mm

90 deg = 124,17145 mm

Toyota OEM VR sensor resistance 1372 ohm, measured median 0.72 voltage at around 1000 1/min (engine idling).

Trigger tooth = 5

Next trigger tooth = 30 (NOT 35 !!!)

Crank min period 1808 usec (you can safely use 0)

Reference tooth table h(1)= 1E 00 1E 00 <-30 0 30 0

Shielded cabling used (grounded only at one end).

Filtering and Advanced filtering was tried enabled and disabled -> it didn't help, but tooth normal/missing relative minimum and maximum didn't tried to change. Values are 'by the Megatune F1 help'.

Tooth Normal Relative min% 31

Tooth Normal Relative max% 144

Tooth Missing Relative min% 213

Tooth Missing Relative max% 388

VR sensor polarity is checked (how?), also signal and its shape is good.

VR signal DC bias ? Measure DC voltage with DVM. Use a 18..22k pullup to +5V. Although this should not matter for normal running (only at cranking)

Any idea ?

Should we change sensor, solder/change some ecu components or try some setting values ?

Could somebody check our tooth_twidths and other triggering/filtering etc. related settings.

4. cyl inline engine firing order 1,3,4,2

COP's wired wastespark mode, physical connection

Cyl 1,4 = EC36-34 (output 20)

Cyl 2,3 = EC36-36 (output 30)

(but fill in 4 entries in h[1] and h[2])

4 injectors wired to separate channels

cyl1 inj = 01

cyl2 inj = 02

cyl3 inj = 04

cyl4 inj = 08

Made # comment to config line, which meaning/correctness is somewhat suspicious (or at least unknown to us).

Current config for 1.1.18


primep=46

primep_temp_scaling=66

cwl=3C

cwh=1F

cranking_thres=05

awev=41

awev_temp_scaling=90

awec=15

warmup_clt_range[0]=00

warmup_clt_range[1]=13

warmup_clt_range[2]=27

warmup_clt_range[3]=3A

warmup_clt_range[4]=4F

warmup_clt_range[5]=64

warmup_clt_range[6]=78

warmup_clt_range[7]=8C

warmup_clt_range[8]=AA

warmup_clt_range[9]=C8

warmup_clt[0]=C0

warmup_clt[1]=AA

warmup_clt[2]=96

warmup_clt[3]=8C

warmup_clt[4]=81

warmup_clt[5]=7B

warmup_clt[6]=75

warmup_clt[7]=6E

warmup_clt[8]=6A

warmup_clt[9]=64

warmup_rpm_scale=73

req_fuel=3C

divider=01

alternate=7B # <- what's that

injopen=00

battfac=09

kpafac=7D

kpaoffs=7B

injocfuel=29

injrampup_battfac=FF

injpwm=FF

injpwmt=FF

als_launch_input=FF

rpmk[0]=0B # <- meaning of this value ?

rpmk[1]=B8 # <- meaning of -//- ?

tpsdot_kpadot_conf=08

tpsdotrate[0]=01

tpsdotrate[1]=05

tpsdotrate[2]=14

tpsdotrate[3]=28

tpsaq[0]=06

tpsaq[1]=0C

tpsaq[2]=16

tpsaq[3]=1E

als_cut_mintps=FF

tpsasync=64

acmult=40

tpsacold=08

launch_enrich=40

launch_retard=78

overrun_fuelcut=1B

overrun_fuelresume=0E

rev_limit=46

airden_ignore=62

config11=31

config12=64

config13=02

batt_cal=A3

fastidle=0D

als_max_cut=00

dbaro=05

tps_low=15

tps_high=D6

fan_temp=F1

fan_hyst=58

fan_channel=87

iac_step_seq=64

iac_conf=3A

iac_max_steps=20

iac_tps_thres=0A

iac_cold_idle_temp=87

iac_warm_idle_temp=C3

iac_cold_rpm=A0

iac_warm_rpm=5E

iac_cold_start_pos=7A

iac_warm_start_pos=FF

iac_afterstart_rpm=0F

iac_afterstart_duration=A0

iac_speed=D0

iac_kp=74

iac_ki=67

iac_kd=E2

launch_rpm=3A

iac_integral_limit_dec=1F

iac_integral_limit_inc=20

iac_integral_deadband=04

iac_deadband=25

als_cut_maxtps=00

iac_overclose_interval=30

iac_ref_pos[0]=BF

iac_ref_pos[1]=05

iac_ref_pos[2]=E0

iac_ref_pos[3]=0A

iac_ref_pos[4]=05

iac_ref_pos[5]=00

iac_ref_pos[6]=B8

iac_ref_pos[7]=36

iac_ref_pos[8]=33

iac_ref_pos[9]=33

iac_sol_channel=36

iac_ign_slope=04

softrpm_range=30

iac_ign_advance_limit=14

iac_ign_retard_limit=0C

iac_ign_threshold=18

ego_conf=0C

ego_lag=28

ego_coolant=7C

ego_maxtps=FF

ego_maxmap=FA

ego_minrpm=09

ego_maxrpm=46

ego_warmup=19

ego_lean_limit=0D

ego_rich_limit=1A

ego_pid_kp=FF

als_enrich=00

ego_delta=03

ego_target=FF

ego_pid_window=3C

wbo2_warmup_ramp=A0

als_react_tps=00

wbo2_abs_limit=E4

wbo2_limit_maxt=A0

wbo2_fallback=B0

wbo2_retry_t=03

als_retard_rpm1=FF

als_retard_rpm2=A0

wbo2_ri_target=96

wbo2_nernstdc_target=9D

wbo2_pump_pw_zero=64

wbo2_calibration=EE

wbo2_heater_pid_kp=46

wbo2_heater_pid_ki=10

wbo2_heater_pid_kd=1A

wbo2_heater_pid_ilimit=80

wbo2_pump_pid_kp=15

wbo2_pump_pid_ki=4E

wbo2_pump_pid_kd=00

wbo2_pump_pid_ilimit=84

wbo2_ri_confidence_scale=80

knock_conf=19

knock_sampling_window=C0

knock1_frequency=28

knock1_gain=40

knock1_integrator=0F

knock2_frequency=E8

knock2_gain=80

knock2_integrator=0F

knock_threshold=F2

knock_noise_scale=29

knock_max_retard=40

knock_default_retard=08

knock_retard_step=02

knock_retard_delay=0D

knock_advance_step=02

knock_advance_delay=11

knock_minrpm=13

knock_maxrpm=46

ve_learn_coolant=BD

ve_learn_max_power=C8

ve_learn_rpm_scale=FF

ve_learn_kpa_scale=FF

ve_learn_ego_scale=50

ve_learn_min_weight=28

ve_learn_speed=01

ve_learn_limit=66

ve_learn_conf=FB

lcd_c0=1E

lcd_delay=1E

lcd_backlight=66

kpa_conf=21

als_igncut_rpm2=FF

als_retard_mintps=FF

als_retard_maxtps=00

lcd_default_view=01

  1. DISABLE FILTERING !!! Only advanced filtering is allowed for multitooth
  2. so use primary_trigger=01 or 09 (NOT 0D)
primary_trigger=09

secondary_trigger=02

tooth_wheel=3A

trigger_tooth=05

another_trigger_tooth=1E

crank_minper=71

tooth_wheel_twidth1=18 # 24 quarter degrees = 6 deg => OK

tooth_wheel_twidth2=48 # 72 quarter degrees = 18 deg => OK

cam_sync_r_edge_phase=FF

cam_sync_f_edge_phase=3A

reset_engphase_after=A0 # though NOT relevant, standard says 0xA0 = 160

ign_tdcdelay=82

ign_dwell14=2C

ign_dwell6=4A

ign_crank_advance=1C

ign_out=70 # Dual_out is not in use, is value OK ?

ignchmax=03 # fill out 4 entries in h[1] and h[2]

engine_off_delay=04

pump_on_mintime=0B

fuelpump_channel=57

inj_stage2_rate=83

inj_stage2_start_tps=2E

inj_stage2_start_map=70

als_igncut_rpm1=46

als_deact_time=01

als_deact_egt=00

als_retard=00

als_rev_limit=40

misc1out_minrpm=FF

misc1out_maxrpm=FF

misc1out_mintps=FF

misc1out_maxtps=FF

misc1out_minmap=FF

misc1out_maxmap=FF

misc1out_channel=06

misc2out_minrpm=19

misc2out_maxrpm=20

misc2out_mintps=FF

misc2out_maxtps=4F

misc2out_minmap=FF

misc2out_maxmap=30

misc2out_channel=FF

act_wot_rpm=FF

act_wot_channel=FF

act_rpm_rpm=FF

act_rpm_channel=FF

egt1_cal=FF

als_tks_channel=FF

boost_conf=20

boost_targetoffs=36

boost_minpressure=FF

boost_pid_kp=FF

boost_pid_ki=40

boost_pid_kd=00

boost_pid_ilimit=00

boost_channel=08

water_pump_temp=90

hybrid_rpm_a=00 # What that ?

hybrid_rpm_m=00 # -//-

water_pump_hyst=09

water_pump_channel=FF

toothrel_normal=75 # is these OK for the 60-2 ?

toothrel_missing=B7 # -//-

fuelcut_min_kpa=00

fuelcut_max_kpa=FA

tach_channel=72

tach_div=FF

shiftcut_conf=6D

shiftcut_channel=66

shiftcut_time=7F

softrpm_rpm=FF


and tables


j[0]=0C80 0D80 1180 1580 3A80 6580 6680 6580 6480 6380 6080 5D80

j[1]=1580 1880 2080 2C80 5280 6C80 6D80 6C80 6B80 6980 6780 6480

j[2]=2280 2D80 3280 4D80 7280 7380 7480 7380 7280 7080 6E80 6A80

j[3]=3980 3B80 4180 7780 7980 7A80 7B80 7A80 7980 7780 7480 7180

j[4]=4F80 5E80 6680 7E80 8080 8280 8280 8280 8080 7E80 7B80 7780

j[5]=7A80 7E80 8280 8580 8780 8980 8980 8980 8780 8580 8280 7E80

j[6]=8180 8580 8880 8C80 8E80 9080 9080 9080 8E80 8C80 8880 8480

j[7]=8780 8B80 8F80 9380 9580 9780 9780 9780 9580 9380 8F80 8B80

j[8]=8D80 9280 9680 9A80 9C80 9E80 9E80 9E80 9C80 9A80 9680 9180

j[9]=9380 9880 9C80 A080 A280 A480 A580 A480 A280 A080 9C80 9780

j[A]=9880 9D80 A180 A580 A880 AA80 AB80 AA80 A880 A580 A180 9C80

j[B]=9E80 A380 A780 AB80 AE80 B080 B180 B080 AE80 AB80 A780 A280

l[0]=37 37 37 37 37 37 3B 3D 3D 48 48 48

l[1]=37 37 37 37 37 37 3B 3D 3D 48 48 48

l[2]=48 48 48 48 48 48 48 48 48 48 48 48

l[3]=48 48 48 48 48 48 48 48 48 48 48 48

l[4]=48 48 48 48 48 48 48 48 48 48 48 48

l[5]=48 48 48 48 48 48 48 48 48 48 48 48

l[6]=48 48 48 48 48 48 48 48 48 48 48 48

l[7]=48 48 48 48 4F 4F 4F 4F 4F 4F 4F 48

l[8]=48 48 48 48 4F 55 55 55 55 55 55 55

l[9]=48 48 48 48 4F 55 63 63 63 63 63 63

l[A]=48 48 48 48 5C 63 63 63 63 63 63 63

l[B]=48 48 51 5A 5C 5E 5C 5C 5C 5C 5C 63

n[0]=50 58 5C 64 68 68 60 5C 58 54 50 48

n[1]=50 58 64 70 74 70 6C 68 60 5C 58 54

n[2]=44 48 6C 74 78 78 70 6C 68 60 5C 58

n[3]=44 48 74 80 84 80 7C 74 70 6C 64 60

n[4]=44 69 78 84 88 88 80 7C 74 70 68 64

n[5]=64 78 84 80 88 88 88 84 80 78 74 6C

n[6]=68 7C 80 80 80 80 84 84 84 7C 78 74

n[7]=6C 80 78 78 78 78 78 78 78 78 7C 78

n[8]=78 88 64 64 64 64 68 6C 70 70 70 80

n[9]=7C 90 60 64 64 64 6C 70 70 70 70 70

n[A]=84 78 61 60 64 68 68 6C 6C 6D 70 70

n[B]=88 7C 64 64 60 60 60 60 5C 64 6C 6C

k[0]=28 32 46 5A 6E 82 96 AA BE D2 E6 FA

r[0]=09 0E 12 16 1C 22 28 2E 34 3A 40 46

h[0]=02 08 04 01 00 00 5D 6A

h[1]=1E 00 1E 00 E3 B7 00 00

h[2]=30 20 00 00 00 00 00 00

b[0]=41 41 41 41 41 41 41 41 41 3C 3A 37


Other problem is that Megatune somewhat messes some settings and values in h(0), h(1) and h(2) table -> so made them by hand and downloaded separately.

in h(0) table four leftmost is used, zeroed others by hand and uploaded tables to ecu. Started Megatune opened h(1) table setting page and sent to ecu. Values 5D and 6A appeared mystically.

Same happened in h(1) (E3, B7 values)

Also...

When downloaded tables from ECU -> to tables.txt file, made edits with Notepad and did generate config with generate_config12x12.bat

Warning: table t has less than 8 items

Looked our tables.txt (which in a first place was downloaded from ecu), only to find that it did not contain t() table at all.

global.h (version 1.1.18) was in same directory root /firmware/ folder -> verified it's version and location against config.bat.