OnlineCourse/AlienIgnitionLogging (2006-03-16 04:43:08)

Purpose of alien ignition logging: Being able to log the advance/dwell of a foreign ignition setup.

By feeding an external ignition signal into the secondary trigger, the time at which the ignition coil is fired, relative to the syncronization signal from the primary trigger, is measured. Combining this time with the knowledge of current rpm, the advance can be obtained. Measuring the dwell is just a simple measurement of pulse length.

An example of an ignition map reconstructed from a 20 minute datalog, can be seen here http://www.vems.hu/index.php?page=MembersPage%2FMichaelKristensen%2FMeasuringIgnitionAdvance


The alien ignition logging can also be used to evaluate if the coil, fired by GenBoard, is fired at the right time.

Testing on the table

CVS head has an issue with alien ignition logging when WBO2 defined: TCNT3 period = 16usec, too low without help from readTMR(). This should be fixed.

Two simple hardware modifications are needed

The firmware then is configured to ignite the "coil" on only that I259 output, and at the same time measure (with hardware capture) when the "coil" was fired.

To test with a 2*(18-1) trigger wheel, the following has to be configured

config:\n

primary_trigger=01
secondary_trigger=08
tooth_wheel=11
trigger_tooth=0A
another_trigger_tooth=0
ign_tdcdelay=8C
ign_out=70
ignchmax=00

tables:\n

h[2]=I259_4 (or whatever channel you like 0..7)

my_make:\n

MY_CONF += -D GENBOARDv3
MY_CONF += -D WBO2

MY_CONF += -D STRIG_TESTING
MY_CONF += -D STRIG_SINGLE_EDGE (optional) 
MY_CONF += -D STRIG_SPECIAL_INIT (optional) 

The two latter STRIG-defines does not necessarily have to be defined.

Finally start the stim, the command sequence is \n

Man
mst51msp01msq33msp00
mlp06
mll

and execute 'mxa' (see engine_t in global.h). Evaluation of mxa is simple: engine.d13 must not differ by more than 1, engine.t1 and engine.t2 should have almost the same value and engine.t1 > engine.t2. Finally verify that engine.alien_ignadv = engine.ignadv/2. Remember that the order of bytes in ex. a uint32_t is reversed: 2F 01 00 00 corresponds to the value 0x012F.