History of MembersPage/MichaelKristensen/MeasuringIgnitionAdvance
Older Newer
2006-03-16 04:43:08 . . . . MembersPage/MarcellGal [answered alien measurement questions]
2006-03-16 04:43:08 . . . . MembersPage/Gabor [Measuring ignition advance without megatunix]
2006-03-16 04:43:08 . . . . MembersPage/MichaelKristensen [some adjustments]


Changes by last author:

Changed:
Measuring without megatunix

- Is there any possibility to measure ignition advance with a perl script or any other method?

- If the trigger wheel is unknown, is it possible to reconstruct the teeth number and missing tooth position with the method above (measuring ignition signal from coil and measuring trigger signal as well in the same time)

----

Measuring without MegaTunix

Is there any possibility to measure ignition advance with a perl script or any other method?

Checking comm.c MTsendRTvar() I think the following my_make defines (the ifdefs look somewhat hell, dropping a few altogether and replacing others with runtime config dependent conditions such as the relevant bits of secondary_trigger would be nice) are of interest to you:

** LOG_ALIEN

** SEND_DWELL_NOT_IAC

** CAPTURE_ALIEN_ECU

** MS_COMPATIBILITY NOT defined

** MSNS NOT defined

Don't forget to enable alien measurement in config.secondary_trigger.

There is a trick that enables automatic dump of the realtime variables again-and-again (it's fixed since the released 1.0.12 version, check in CVS STABLE1_0). mde80 sets debug.enable_flags=0x80, therefore enables this feature (you still have to query the runtime variables once, so the full command sequence becomes "Man mde80 bye A" without spaces). Transmitted bytes can be captured and saved to file from TerminalProgram or perl.

Snippet from comm.c:

<code>

if (debug.enable_flags & _BV(7))

pushfunc(&MTsendRTvar, MT_RTVAR_COUNT);

</code>

There is an alternative method, that is enabled by defining CAPTURE_ALIEN_ECU in my_make and mde20 command. This prints in a nicer format, although less data than above method. Snippet from fuelcontrol.c:

<code>

#ifdef CAPTURE_ALIEN_ECU

if(debug.enable_flags & _BV(5) // don't enable mde.. bit0 at the same time !

&& (*comm_TX_plainbytes == 0) // the signalling byte is already zeroed by comm.c (gcc-at-powerup

)

&& ! comm_buffer_full()){

alien_detailed_log();

}

#endif

</code>

You might want to disable WBO2 in my_make, it might result in slightly better precision (probably unnoticable. check SIG_SECONDARY_TRIGGER ).

* If the trigger wheel is unknown, is it possible to reconstruct the teeth number and missing tooth position with the method above ?

The alien measurement always measures secondary trigger pulse position relative to primary trigger: either

* coil-type 1-pulse per event evenly spaced trigger

* or trigger_tooth + N*another_trigger_tooth after missing tooth in the multitooth case