I want to turbocharge my BMW 518i E28 M10 engine by using VEMS
I live in Belgium
Engine specs
Initial completely stock engine, in second stage-->(turbo, inj, intercooler...)
- BMW M10 1755cc 8v 5speed manual gearbox
- entire new engine wireloom with econoseal connectors
- single coil with distributor
- keep distributor + fire coil by IGBT -->later on direct fire
- stock injectors 149cc high impedance
- high voltage flyback 4injectors fired sequential with FET
- mechanical idle control valve
- electrical heated with VEMS thermotimeswitch-control
- bosch fuelpump controlled by VEMS
- 1 wideband O2 sensor
- TPS with 3 different positions (idle,wot, 50%)see [A drawing of the circuit used with the stock TPS]
ITEMS TO BUY:
- Genboard v3.3
- injector FET 6x
- WBO2 FET 2x
- ignition IGBT 8x
- mapsensor 2.5 bar
- idle stepper moter driver
- econoseal PCB connector 36 + 18
- econoseal harness 36 + 18
- CNC case
- LCD
- tempsensors 2x
- WBO2 connector + sensor
TPS issue
A true potentiometer type TPS is recommended for full use and control. A WOT switch is not much use, it can be used to raise boost target with BoostControl. In MegaTune you configure and calibrate the maximum and minimum TPS values (idle and WOT). You can also set the idle threshold value (1-2%).
Only in some cases do you really need to know the exact position of the throttle plate. You can use a resistor grid with the stock "on/off" TPS, to make three distinct positions/resistance values (idle, in between, WOT). It has worked really well on this car: MembersPage/MattiasSandgren/BmwSevenTwentyEight
The basic idea is to connect the TPS In (EC36-1) to a pullup resistor towards +5V (EC36-28) and a pulldown resistor towards GND. The pullup resistor is shorted by the WOT switch (raising TPS In to +5V) and the pulldown grounds the signal. To protect from a short (should never happen), connect a resistor between GND and the pullup resistor and Idle-switch so that there is a minium resistance to be met between +5V and GND at all times. Use 1K resistors, or similar size.
[A drawing of the circuit used with the stock TPS]
calibrating TPS
In MegaTune, go to the menu Tools -> Calibrate TPS and get the values for idle and WOT. Enter those in Settings -> Basic Settings window. You can use a narrower range of values to ensure that there is no movement due to a noisy signal (there should be no noise)
PS2 keyboard
The JP_PS1 headers is the one in this picture, to the left of the Atmel. Pin 1 is the one furthest from the EC connectors and also farthest up in the picture. Documentation on this is under reconstruction, I can't find the old page anymore. //Mattias
JP_PS1 | Mini DIN6 | Function |
1 | 4 | Vcc |
2 | 3 | Gnd |
3 | 1 | Data |
4 | 5 | Clock |
Coldstart
Q: How will I control coldstart issues?
- Afterstart enrichment. Afterstart enrichment has a cold value (config.awev=1D for +29% at -40C) and a scaler (config.awev_temp_scaling=A0 for 160/256 * awev) so it's downscaled at high temps (above 71C)
- warmup enrichment
I use the Auxiliary air valve, it does a good and reliable job and is activated as the "fast idle" valve, and shuts off at a specific temperature with th thermotimeswitch.
Q: When I use the Auxiliary air valve how will the electrical heating be ensured?
A:You can use the default EC36-pin3 (P259, 4) to ground a relay that in turn delivers power to an electrically controlled auxiliary air valve.
SOLDERED THESE COMPONENTS ON V3.3
1. Flyback lead see pic: [flybacklead]
2. From Rescue kit1 the inductor marked 1R5 must be soldered Between A&B.
If a fused power supply is being used then a wire must connect 1&2, otherwise a fuse link must be used. see http://vems.hu/www.vems.co.uk/VEMS/ConnectingPower.htmlpowerconnections
3. EC18 + EC36 connector
4. 8 IGBT's + 8 FET drivers
5. MAPsensor
6. PS2header + connector
7. LCD Header + connector
8. Serial header + connector
9. D37 Transient supression diode [diode mounted]
10. solder JP2 & JP7
11. solder R30=2k7 pullup resistor
Trigger/ignition plan: MembersPage/MarteleurTim/Ignition
Power Up: MembersPage/MarteleurTim/Powerup
UPDATE 17/2/2006
JIHAAAAAAA!!!!!! the car is running. Started from the first attempt and I even drove it to work today with little tuning. Still needs some tuning.
UPDATE 18/05/2006
I have some tuning problems.
When I attempt to tune the lower kpa in neutral gear on 2500rpm I am not able to find the right VEvalue, it always reads lean (1.35), I have VE=230 at 23kpa with 2500rpm and lambda 1.35, and VE=160 at 50kpa with 2500rpm while driving with a good lambda of 1.05. Is this related to a fault in the config?
primep=00
primep_temp_scaling=80
cwl=B4
cwh=46
cranking_thres=03
awev=1B
awev_temp_scaling=98
awc=C8
warmup_clt_range[0]=00
warmup_clt_range[1]=00
warmup_clt_range[2]=00
warmup_clt_range[3]=0D
warmup_clt_range[4]=50
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]=AA
warmup_clt[1]=A2
warmup_clt[2]=9B
warmup_clt[3]=96
warmup_clt[4]=91
warmup_clt[5]=87
warmup_clt[6]=82
warmup_clt[7]=79
warmup_clt[8]=6C
warmup_clt[9]=64
warmup_rpm_scale=FF
req_fuel=50
divider=01
alternate=03
injopen=1F
battfac=10
kpafac=7D
kpaoffs=3C
injocfuel=15
injrampup_battfac=FF
injpwm=00
injpwmt=FF
injpwm6=00
rpmk[0]=0B
rpmk[1]=B8
tpsdot_kpadot_conf=01
tpsdotrate[0]=05
tpsdotrate[1]=0E
tpsdotrate[2]=20
tpsdotrate[3]=40
tpsaq[0]=00
tpsaq[1]=00
tpsaq[2]=00
tpsaq[3]=00
tps_thresh=05
tpsasync=02
acmult=64
tpsacold=0A
tpsdq=64
decel_fuelcut_thres=FF
overrun_fuelcut=10
overrun_fuelresume=0F
rev_limit=40
airden_ignore=62
config11=30
config12=30
config13=02
batt_cal=A5 is the battery voltage calibrated ? (see LCD after mlp06, or MegaTune)
fastidle=80
baro=64
dbaro=0C
tps_low=93
tps_high=FF
fan_temp=55
fan_hyst=09
fan_channel=FF
iac_step_seq=C9
iac_conf=7E
iac_max_steps=E8
iac_tps_thres=05
iac_cold_idle_temp=A0
iac_warm_idle_temp=CF
iac_cold_rpm=65
iac_warm_rpm=4F
iac_cold_start_pos=FF
iac_warm_start_pos=FF
iac_afterstart_rpm=0C
iac_afterstart_duration=FF
iac_speed=FF
iac_kp=25
iac_ki=10
iac_kd=30
iac_integral_speed=C0
iac_integral_limit_dec=33
iac_integral_limit_inc=E4
iac_integral_deadband=0A
iac_deadband=05
iac_pid_conf=01
iac_overclose_interval=FF
iac_ref_pos[0]=61
iac_ref_pos[1]=5C
iac_ref_pos[2]=57
iac_ref_pos[3]=4F
iac_ref_pos[4]=4D
iac_ref_pos[5]=47
iac_ref_pos[6]=38
iac_ref_pos[7]=30
iac_ref_pos[8]=2E
iac_ref_pos[9]=2E
iac_sol_channel=FF
iac_ign_advance_change=10
iac_ign_retard_change=10
iac_ign_advance_limit=10
iac_ign_retard_limit=18
iac_ign_threshold=08
ego_conf=06
ego_lag=01
ego_coolant=B4
ego_maxtps=FF
ego_maxmap=6E
ego_minrpm=0F
ego_maxrpm=3C
ego_warmup=3C
ego_lean_limit=12
ego_rich_limit=0A
ego_pid_kp=25
mt_unused=00
ego_delta=05
ego_target=19
ego_pid_window=FF
wbo2_warmup_ramp=FF
wbo2_warmup_target=FF
wbo2_abs_limit=E4
wbo2_limit_maxt=A0
wbo2_fallback=60
wbo2_retry_t=06
wbo2_edgetime_corr=BA
wbo2_edgetime_min=50
wbo2_ri_target=96
wbo2_nernstdc_target=9C oops... 0x89 is the right value (don't forget to save, reboot and check this value after reboot to be sure) if you have the AREF(=256) , see BuildProcedures/SectionThree
wbo2_pump_pw_zero=64
wbo2_calibration=DA
wbo2_heater_pid_kp=45
wbo2_heater_pid_ki=11
wbo2_heater_pid_kd=1A
wbo2_heater_pid_ilimit=81
wbo2_pump_pid_kp=15
wbo2_pump_pid_ki=4E
wbo2_pump_pid_kd=00
wbo2_pump_pid_ilimit=FF
wbo2_ri_confidence_scale=80
knock_conf=00
knock_sampling_window=F2
knock1_frequency=29
knock1_gain=00
knock1_integrator=14
knock2_frequency=29
knock2_gain=00
knock2_integrator=14
knock_threshold=FF
knock_noise_scale=D8
knock_max_retard=00
knock_default_retard=00
knock_retard_step=00
knock_retard_delay=FF
knock_advance_step=FF
knock_advance_delay=50
knock_minrpm=FF
knock_maxrpm=05
ve_learn_coolant=D8
ve_learn_max_power=FF
ve_learn_rpm_scale=1E
ve_learn_kpa_scale=1E
ve_learn_ego_scale=43
ve_learn_min_weight=4D
ve_learn_speed=FF
ve_learn_limit=FF
ve_learn_conf=01
lcd_c0=FF
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
primary_trigger=03
secondary_trigger=02
tooth_wheel=02
trigger_tooth=10
another_trigger_tooth=1E
crank_minper=4B
tooth_wheel_twidth1=00
tooth_wheel_twidth2=00
cam_sync_r_edge_phase=FF
cam_sync_f_edge_phase=FF
reset_engphase_after=FF
ign_tdcdelay=7A
ign_dwell14=2F
ign_dwell6=44
ign_crank_advance=28
ign_out=70
ignchmax=03
engine_off_delay=08
pump_on_mintime=10
fuelpump_channel=57
inj_stage2_rate=FF
inj_stage2_start_tps=FF
inj_stage2_start_map=FF
als_deact_rpm=FF
als_deact_time=FF
als_deact_egt=00
als_retard=FF
als_rev_limit=40
misc1out_minrpm=0A
misc1out_maxrpm=1E
misc1out_mintps=40
misc1out_maxtps=FF
misc1out_minmap=50
misc1out_maxmap=FF
misc1out_channel=0F
misc2out_minrpm=FF
misc2out_maxrpm=FF
misc2out_mintps=FF
misc2out_maxtps=FF
misc2out_minmap=FF
misc2out_maxmap=FF
misc2out_channel=0F
act_wot_rpm=FF
act_wot_channel=2E
act_rpm_rpm=FF
act_rpm_channel=FF
egt1_cal=40
egt1_offs=00
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
water_pump_temp=00
hybrid_rpm_a=00
hybrid_rpm_m=00
water_pump_hyst=00
water_pump_channel=FF
toothrel_normal=76
toothrel_missing=B5
fuelcut_min_kpa=0A
fuelcut_max_kpa=FF
tach_channel=FF
tach_divider=FF
shiftcut_conf=FF
shiftcut_channel=FF
shiftcut_time=FF