MembersPage/BengtR/Trigger

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

Yes, installed in summer/autumn 2005. You know, if it works don't fix it :).
  • and 1.1.18 in Toyota
- 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 -> read now, had.

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 wheel was little bit too small, for the OEM sensor - which caused triggering errors in higher revolutions. Lasercut slightly larger 215 mm wheel.

To someone reading this in distant future. One might to try Toyota oem VR sensor with Toyota oem (32 + 4 type) wheel mounted under crankshaft front pulley with future VEMS firmware version. We tried it with firmware 1.1.23, but the wheel type was unsupported (or at least did not work).

Trigger tooth = 5

Next trigger tooth = 30

Crank min period 0 usec

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

Filtering disabled.

Shielded cabling used (grounded only at one end).

VR sensor polarity is checked (how?), also signal and its shape is good. Checked polarity by moving mild steel plate towards the sensor and continuing moving piece away from it.

Correct VR sensor connection (polarity);

DVM reads positive voltage when plate comes to sensor tip and negative voltage when plate was moved away from tip.

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)

Yes, the VR sensor voltage was 0.15 volt positive biased because of too small trgger wheel. Actually tooth/space ratio too small.

Our settings (for the inline 4, firing 1,3,4,2 (coil on plug's in dual out mode).

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

COP's wired wastespark mode (Ign_Dualout)

physical connection

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

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

4 injectors wired to separate channels

cyl1 inj = 01

cyl2 inj = 02

cyl3 inj = 04

cyl4 inj = 08

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

primary_trigger=01 # Multitooth without filtering

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

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 used

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

h[1]=1E 00 1E 00 00 00 00 00

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

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


Beware that.. Megatune could mess some settings and values in h(0), h(1) and h(2) table -> so make these by hand and download separately.

in h(0), h(1) and h(2) table four leftmost placeholders are used.