## ## ## ## ## ####
## ## ##### ## ## ## ## #####
___ |_ _| | | | | |___|
###### # ## ## ## # ######
## ## ## ## #### ## ## ## ##
IMPORTANT: enter the case-INsensitive alphabetic (no numbers) code AND WRITE SOME SHORT summary of changes (below) if you are saving changes. (not required for previewing changes). Wiki-spamming is not tolerated, will be removed, so it does NOT even show up in history. Spammers go away now. Visit Preferences to set your user name Summary of change: '''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 (and better than here description!) of an ignition map reconstructed from a 20 minute datalog, can be seen on MembersPage/MichaelKristensen/MeasuringIgnitionAdvance ---- '''Important note''' good news: * apparently the my_make defines are not needed any longer (search in the code, if it's not there, it's not used), but won't hurt of course. * you get alien ignadv and dwell calculation if configure secondary_trigger ** strig_disable bit is 0 ** and strig_cam_sync is 0 bad news: * Unfortunately any alien related stuff (that outputs the data to MegaTune) seems to be ripped from comm.c at a cleanup, this broke OnlineCourse/AlienIgnitionLogging and Michael's referred page. Wouldn't be hard to add, eg. temporarlily replacing <code> case 36: return getMCPdataHIGH(1); // MISC3 HIGH midopa case 37: return getMCPdataLOW(1); // MISC3 LOW case 38: return getMCPdataHIGH(7); // MISC4 HIGH case 39: return getMCPdataLOW(7); // MISC4 LOW </code> Or defining a new command, or some mde.. or mdd.. flags to signal the 'A' MegaTune command to issue alien data instead of something. ---- 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''' Two simple hardware modifications are needed * A primary trigger, see OutputTrigger for how to generate a multitooth pattern * A wire has to be connected from an I259 output to the input of the secondary trigger. 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 60-2 trigger wheel, the following has to be configured '''config:''' <code> primary_trigger=01 secondary_trigger=08 tooth_wheel=3a trigger_tooth=01 another_trigger_tooth=1e ign_tdcdelay=78 # decimal 120=60 degrees ign_out=70 ignchmax=00 </code> '''tables:''' <code> h[2]=I259_4 (or whatever channel you like 0..7) </code> Finally start the stim, the command sequence is <code> Man mst51msp01msq33msp00 mlp06 mll </code> 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. Optional: Add document to category: Wiki formatting: * is Bullet list ** Bullet list subentry ... '''Bold''', ---- is horizontal ruler, <code> preformatted text... </code> See wiki editing HELP for tables and other formatting tips and tricks.