Solved:
mdh commands don't do anything. Hook up your vems to a known working trigger source and check actual output.
I've been having the most stupid (yet frustrating) problem - I can't get the IGN outputs to switch! Measuring with a DVM using GND as the base, the output shows 5.5V. Issuing mdh82/02 (and every other combination for ignition channels) does nothing.
Setting h[2] to pin 35 only gives me the following output when issuing mdh82/02: ÿÿÿÿÿÿÿÿÿÿ<00><00><00><00><00><00><00><00>
Interestingly enough, if I take a channel out of the h[2] table, it will drop the output voltage relative to GND to 0... what is going on here?
How do you mean take a channel out?
Can you paste what your H[2] looks like, then when a channel is taken on?
Cheers
Rob
Thanks for your help bob! I'm sure this is some setting I forgot to check off somewhere... here we go:
starting with h2 as the following:
h[2]=50 40 30 20 10 00 00 00
issuing mdh02 through 72 to make sure output are turned off, console gives the following response:
20 10 08 04 02 01 FF FF FF FF FF FF FF FF FF FF 50 40 30 20 10 00 00 00
voltage measurement from output 00 to 07, GND base
5.5 5.5 5.5 5.5 5.5 5.5 0 0
voltage measurement from output 00 to 07, +12V (13.2v actual) base
7.7 7.7 7.7 7.7 7.7 7.7 13.2 13.2
if i change h2 to the following:
h[2]=00 00 00 00 00 00 00 00
issuing mdh02 through 72 to make sure output are turned off, console gives the following response:
20 10 08 04 02 01 FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00
voltage measurement from output 00 to 07, GND base
5.5 0 0 0 0 0 0 0
voltage measurement from output 00 to 07, +12V (13.2v actual) base
7.7 13.2 13.2 13.2 13.2 13.2 13.2 13.2
issuing mdh82-f2 in either case does nothing to the output voltage.
config as follows. its prob full of mistakes since i just started messing with it
primep=00
primep_temp_scaling=FF
cwl=60
cwh=20
cranking_thres=04
awev=46
awev_temp_scaling=A0
awec=2A
warmup_clt_range[0]=00
warmup_clt_range[1]=11
warmup_clt_range[2]=25
warmup_clt_range[3]=39
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]=96
warmup_clt[1]=96
warmup_clt[2]=96
warmup_clt[3]=96
warmup_clt[4]=8C
warmup_clt[5]=82
warmup_clt[6]=78
warmup_clt[7]=6E
warmup_clt[8]=69
warmup_clt[9]=64
warmup_rpm_scale=DE
req_fuel=40
divider=01
alternate=15
injopen=00
battfac=13
kpafac=39
kpaoffs=9C
injocfuel=2A
injrampup_battfac=FF
injpwm=FF
injpwmt=0A
als_launch_input=0A
rpmk[0]=02
rpmk[1]=EE
tpsdot_kpadot_conf=00
tpsdotrate[0]=02
tpsdotrate[1]=05
tpsdotrate[2]=0A
tpsdotrate[3]=28
tpsaq[0]=02
tpsaq[1]=05
tpsaq[2]=0A
tpsaq[3]=14
als_cut_mintps=FF
tpsasync=0A
acmult=78
tpsacold=01
launch_enrich=00
launch_retard=00
overrun_fuelcut=14
overrun_fuelresume=13
rev_limit=46
airden_ignore=00
config11=51
config12=40
config13=02
batt_cal=BC
fastidle=C6
als_max_cut=00
dbaro=0C
tps_low=0F
tps_high=D0
fan_temp=5F
fan_hyst=05
fan_channel=FF
iac_step_seq=C9
iac_conf=48
iac_max_steps=FF
iac_tps_thres=08
iac_cold_idle_temp=90
iac_warm_idle_temp=C6
iac_cold_rpm=78
iac_warm_rpm=5C
iac_cold_start_pos=E6
iac_warm_start_pos=D9
iac_afterstart_rpm=0F
iac_afterstart_duration=96
iac_speed=32
iac_kp=14
iac_ki=0F
iac_kd=1E
launch_rpm=14
iac_integral_limit_dec=32
iac_integral_limit_inc=8C
iac_integral_deadband=14
iac_deadband=0A
als_cut_maxtps=00
iac_overclose_interval=80
iac_ref_pos[0]=BF
iac_ref_pos[1]=B3
iac_ref_pos[2]=A6
iac_ref_pos[3]=99
iac_ref_pos[4]=8C
iac_ref_pos[5]=80
iac_ref_pos[6]=73
iac_ref_pos[7]=66
iac_ref_pos[8]=59
iac_ref_pos[9]=4D
iac_sol_channel=7F
iac_ign_slope=20
softrpm_range=04
iac_ign_advance_limit=08
iac_ign_retard_limit=08
iac_ign_threshold=08
ego_conf=06
ego_lag=01
ego_coolant=B4
ego_maxtps=E6
ego_maxmap=FF
ego_minrpm=06
ego_maxrpm=49
ego_warmup=3C
ego_lean_limit=33
ego_rich_limit=0D
ego_pid_kp=28
als_enrich=00
ego_delta=59
ego_target=19
ego_pid_window=FF
wbo2_warmup_ramp=C0
als_react_tps=00
wbo2_abs_limit=F5
wbo2_limit_maxt=A0
wbo2_fallback=60
wbo2_retry_t=06
wbo2_edgetime_corr=FF
wbo2_edgetime_min=FF
wbo2_ri_target=9A
wbo2_nernstdc_target=86
wbo2_pump_pw_zero=64
wbo2_calibration=CE
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=37
wbo2_pump_pid_kd=00
wbo2_pump_pid_ilimit=FF
wbo2_ri_confidence_scale=80
knock_conf=01
knock_sampling_window=FF
knock1_frequency=29
knock1_gain=3F
knock1_integrator=1F
knock2_frequency=29
knock2_gain=3F
knock2_integrator=1F
knock_threshold=FF
knock_noise_scale=FF
knock_max_retard=00
knock_default_retard=00
knock_retard_step=00
knock_retard_delay=00
knock_advance_step=00
knock_advance_delay=00
knock_minrpm=FF
knock_maxrpm=FF
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=33
ve_learn_conf=00
lcd_c0=FE
lcd_delay=FF
lcd_backlight=FF
kpa_conf=21
ign_balance=FF
als_retard_mintps=FF
als_retard_maxtps=00
lcd_default_view=00
primary_trigger=00
secondary_trigger=19
tooth_wheel=3A
trigger_tooth=01
another_trigger_tooth=08
crank_minper=9C
tooth_wheel_twidth1=02
tooth_wheel_twidth2=06
cam_sync_r_edge_phase=01
cam_sync_f_edge_phase=02
reset_engphase_after=F0
ign_tdcdelay=62
ign_dwell14=1F
ign_dwell6=38
ign_crank_advance=00
ign_out=71
ignchmax=05
engine_off_delay=0F
pump_on_mintime=0B
fuelpump_channel=FF
inj_stage2_rate=FF
inj_stage2_start_tps=FF
inj_stage2_start_map=FF
als_deact_rpm=FF
als_deact_time=01
als_deact_egt=00
als_retard=00
als_rev_limit=FF
misc1out_minrpm=FF
misc1out_maxrpm=FF
misc1out_mintps=FF
misc1out_maxtps=FF
misc1out_minmap=FF
misc1out_maxmap=FF
misc1out_channel=FF
misc2out_minrpm=FF
misc2out_maxrpm=FF
misc2out_mintps=FF
misc2out_maxtps=FF
misc2out_minmap=FF
misc2out_maxmap=FF
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=FF
boost_targetoffs=FF
boost_minpressure=FF
boost_pid_kp=FF
boost_pid_ki=FF
boost_pid_kd=FF
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=FF
toothrel_missing=FF
fuelcut_min_kpa=FF
fuelcut_max_kpa=FF
tach_channel=FF
tach_div=FF
shiftcut_conf=FF
shiftcut_channel=FF
shiftcut_time=FF
softrpm_rpm=FF
In addition, i realized that my last set of tests was with invert_output enabled for some reason. disabling it simply causes channel 00-07 to read 13.2 with respect to 12+, however I still can't enable (float the output?) the channel through mdh commands.
Interestingly enough, after some struggle I came to the conclusion that the mdh command doesn't really do anything. I hooked up the coil packs and crank the engine over - voila there is spark! >:( Same deal with fuel pump - turn the vems on and it pulls the output low for 2s. however if I manually try to do the same thing with mdh, nothing happens! Is mdh a depreciated command?
I've never really got on with the mdh commands, my test bench is connected to the PC's speakers and a bunch of LEDs so I can see what's going on, if I need any specific information then I hook my scope up across the relevant LED and check more thoroughly.
What commands are available to individually test (turn on/off) outputs and read inputs? Can't seem to find the info in MegaTune or in the scattered terminal documents.
I went here:
http://www.vems.hu/wiki/index.php?page=GenBoard/Manual/DigitalOut/Table
Connected up using the Terminal program and typed
Man
Then mdhB2 and I saw a pulse on EC36pin36, but it was very quick - it looked to be as fast the dwell time setting allows.
hmm I outta give that a shot. I've always tested the mdh commands with a DVM, maybe that is why.
Out of curiosity, the doc says logic level ignition pulls to gnd when inactive - does that mean it simply floats when active? I have it hooked up to Nissan Maxima coil packs right now and it sparks, but I always wondered whether or not I should add a pullup to 5v...
A DVM will most likely miss a pulse that is ~3ms long.
As I understand it logic level gives either 5v or 0v as its designed to drive the Gate of an IGBT. The built-in IGBT pulls to ground when its active.
Rob is correct. Logic level output is driven by a 74HC259, so it will actively go to both 0V and 5V (can source and sink current).
It's not to be confused with the TPIC6A259 (P259), which can only sink current.
aah I see, the guide made it seem that it can only sink current. Good to know! Know I know why my coil packs mysteriously work :D
Did some testing. The mdh (i.e. mdhd2 to turn on EC36-12 IGN CH5) commands work on the ignition outputs -- with some caveats.
If the ignition output being tested is configured to spark (part of h[2] and ignchmax reaches it), the duration of the pulse is unpredictable. It ranged from 0.5 ms up to 80 ms when I tested EC36-12 (CH5), regardless of the dwell settings.
(http://www.montecastro.com/images/vems/vems-ign-1.png)
(http://www.montecastro.com/images/vems/vems-ign-2.png)
This was done on my newly arrived pre-assembled VEMS 3.3, firmware 1.0.73 (Sat Apr 14 14:23:51 CEST 2007). IGBT output pin EC36-12 (CH5) was pulled high to +5V EC36-28 using a 10KΩ resistor.
Cheers for that Sam, very odd how it should be random ???