In some instances you will want to keep the distributor, in this case VEMS can be configured to use the original coil as shown.
Typical setup for a 4 cylinder engine, with two coils and no distributer.
Typical setup for a 8 cylinder engine, with four coils and no distributer.
h[2] - ignition sequence, 0 .. config.ignchmax elements are used (going reverse order, last element is looked up first). IGBTs are numbered 00,01,02,03,04,05,06,07. Possible to use as tach output with some simple hardware: connecting cathode of diodes (1n4007 or S2J or any diode>500V) to the ignition outputs (1,2 or 4 outputs - depending on ign configuration and tachometer) and connect the anode of diodes (this will be the tach-output), and pullup to 14V with a 2k2..10k resistor.
h[2] ignition sequence lookup table
The ignition driver table, h[2] is a bit different from the Injector table. For injectors, each driver is represented by a bit, In this table, it's represented by bit number
Name | EC36 pin | h[2] value |
---|---|---|
Drive_00 | 35 | 00 |
Drive_01 | 33 | 01 |
Drive_02 | 34 | 02 |
Drive_03 | 36 | 03 |
Drive_04 | 11 | 04 |
Drive_05 | 12 | 05 |
Drive_06 | 24 | 06 |
Drive_07 | 10 | 07 |
Table 12.1. Table title
with IGN_DUALOUT defined in my_make, this table looks different, currently used if you want to run wasted spark with separate coils for example.
Name | EC36 pins | h[2] value |
---|---|---|
Drive_00+Drive_01 | 35+33 | 01 |
Drive_02+Drive_03 | 34+36 | 03 |
Drive_04+Drive_05 | 11+12 | 05 |
Drive_06+Drive_07 | 24+10 | 07 |
Table 12.2. Table Title
And here is the pic once again, showing where to put your IGBT's (TODO: new pic with the recommended flyback connection)
h[2] starts at ignchmax, so if you have 2 items in h[2] = 01 02 ... and config.ignchmax = 01 the first coil to fire is "igbt2" and than "igbt1" (note that traveled from max index to 0, thus right to left!)
It is recommended to fill in all 8 values in h[2] line, just repeat your previous values over and over until all 8 entries are there.
It is possible to fire exactly 2 numberwise (not physically) neighboring outputs at the same time, when IGN_DUALOUT is defined: when v is configured, v-1 is also fired (eg. I259_6 fired at the same time as I259_7 where 7 is configured). Useful when one has COP coils, but lacks a CAM trigger. A cheating wasted spark. Cost is some added sparklug wear.
We recommend that you configure numberwise neighboring IGBTs for the ignition channels that can be fired simultaneously:
eg. for 4 cyl that fires 1342 instead of direct mapping h[2]=02 04 03 01 02 04 03 01 (remember it's traversed from right to left, and recommended to repeat sequence to fill all 8 bins)
since (1,4) and (2,3) can be twins we recommend mapping sg. like 1=>00 4=>01 (neighboring) and 3=>02 2=>03 (neighboring) which is written: h[2]=03 01 02 00 03 01 02 00
For the reason read IGN_DUALOUT above. With this setup it is possible to set ignchmax=01 instead of 03 and configure a'la Dave wasted spark. (in that mode 03 fires 02 as well, while 01 fires 00 at the same time, ch fires ch-1 in general). We expect that IGN_DUALOUT functionality will be configurable to be available dynamically so it can start faster at cranking with wasted-spark before camsync is found (SAAB style), or should the camsync be lost for some reason... (One with odd-fire V6 won't enable it of course).
Resist the temptation to set ignchmax=00
There is point in configuring ignchmax according to the real number of cyl-s (-1) or half of the real number of cyl-s (-1)
For an 8 cylinder, that means:
03 for known crankphase (eg. wasted spark)
With distributor (instead of many individual or wasted spark coils) all 8 (and at least 4, for ignchmax=03 case) entries in the h[2] must be filled the same value, so the same output (IGBT, or ignition module) is fired for each (the distributor will direct the electricity to the right plug). The advantage of this approach is so the knock code has a way to know which cylinder is misbehaving (or at least which of the 2 candidates for the case lacking camphase). Without known crank or camphase (even-type trigger - often called coil type trigger) the firmware will not know anything about which cyl is full of ignitable mixture (and therefore subject to detonate) of course (so no chance to adjust ignition advance individually to cylinders and harder to tell knocking from background noise). (TODO: actually, the same way is appropriate, we'll just not know exactly which cylinder it is, but we can apply the retard to the same cyl that has the knock-sound).