12.2. Wasted Spark

12.2.1. Operation

12.2.2. Installation

12.2.3. Wiring

In some instances you will want to keep the distributor, in this case VEMS can be configured to use the original coil as shown.

  • EC36-pin35 Coil #1 '-' terminal
Single coil wiring diagram

Figure 12.2. Single coil wiring diagram


Typical setup for a 4 cylinder engine, with two coils and no distributer.

  • EC36-pin35 Coil #1 '-' terminal
  • EC36-pin33 Coil #2 '-' terminal
Two coil wiring diagram

Figure 12.3. Two coil wiring diagram


Typical setup for a 8 cylinder engine, with four coils and no distributer.

  • EC36-pin35 Coil #1 '-' terminal
  • EC36-pin33 Coil #2 '-' terminal
  • EC36-pin34 Coil #3 '-' terminal
  • EC36-pin36 Coil #4 '-' terminal
Four coil wiring diagram

Figure 12.4. Four coil wiring diagram


12.2.4. Configuration

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

    Genboard output labels

    Figure 12.5. Genboard output labels


    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:

  • 07 when cam phase is known
  • 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).

12.2.5. Tuning

12.2.6. Testing and Monitoring