36-1 crankwheel and crank trigger setup on spare (and dirty) engine block:
```[http://proton.shadowflux.com/vems/crank_sens_mtd.jpg]``` [1]
```[http://proton.shadowflux.com/vems/sens_block.jpg]``` [2] ```[http://proton.shadowflux.com/vems/sens_gap.jpg]```
[3] ```[http://proton.shadowflux.com/vems/crank_trigger_machined.jpg]```
[4] ```[http://proton.shadowflux.com/vems/crank_trigger_mounted.jpg]```
Here you can see the TDC mark in the pulley aligned with the missing tooth. You are looking at the back of the pulley, so from this angle it would rotate counter-clockwise.
The TDC is 15 degrees after the center of the missing tooth.
..so we set up the sum of trigger_tooth + ign_tdcdelay for 195 degrees.
Offsetting 180 degrees is absolutely reasonable because max ignition advance is limited by ign_tdcdelay. 15 degrees of max ignadv is not enough. Actually, ign_tdcdelay should be at least 30 crankdegrees larger than ignition advance at cranking. Common ign_tdcdelay values are 55..65 degrees.
igntdc_delay=0x1e (30 decimal, that is 15 crankdegrees) is very bad, see above. trigger_tooth=00 and igntdc_delay=0x1e, at n[]=0, the coil would fire at TDC, yes. But you might not be happy with max advance of 15 degrees, and timing from previous tooth would be active even for very low RPMs (where RPM variations are significant => BAD for dwell precision at lowRPM).
- let's assume a normal tooth=10 crankdegrees (=360/36 if it's 36-1)
- trigger_tooth=0d (decimal 13), that is 13*10=130 crankdegrees because one tooth is 10 degrees.
trigger_tooth=00 means the tooth after the missing tooth will act as the trigger. Please correct it whereever you see it wrong.
- ign_tdcdelay=82 (decimal 130, which is 65 degrees)
Ignition h[2] sequence questions:
In the manual there are two tables describing what should be used in the h[2] array, but I don't see how they could possibly be correct.
h[2] is different than h[0], see GenBoard/Manual/DigitalOut/Table. Basically, h[0] allows to fire 0..8 injector channels at the same time (any values are valid).
h[2] is simpler, only allows exactly one at a time and valid values are
- <h[2] value> <mdh to activate> <mdh to inactivate>
- 00 mdh82 / mdh02
- 01 mdh92 / mdh12
- 02 mdha2 / mdh22
- 03 mdhb2 / mdh32
- 04 mdhc2 / mdh42
- 05 mdhd2 / mdh52
- 06 mdhe2 / mdh62
- 07 mdhf2 / mdh72
The same values in h[2] that are used for GenBoard/Manual/DigitalOut would actually make more sense (72 instead of 07) but it's currently not implemented that way.