##### ## ## ## ## ##### ## #####
### ## ## ##### ## ## ## ## ######
_ _ | | | | | | | | | | | | \ \_/ / \___/
##### ## ## ## ## ##### ## ##
#### ## ## ###### ## ## ####
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: '''Mazda Miata trigger''' I think that this trigger does not regains synk after a false trigger. I had the car die several times when hitting the revlimiter on the dyno. The ECU seemed happy while the rpm fell to zero. Cycling the ignition during this time makes the engine catch again. Vemscfg from the tuning session: http://www.vems.hu/files/MembersPage/JorgenKarlsson/MiataNB/v3.3_u009005-A-2015.03.24-20.22.03_Miata_NB_Base_MAP.vemscfg Vemslog from the only time it happened when not hitting the revlimiter, ignition was cycled at the end and the engine starts: http://www.vems.hu/files/MembersPage/JorgenKarlsson/MiataNB/v3.3_u009005-2015.03.24-20.16.46_died_at_6k.vemslog Can someone take a look at this? Do you see a trigger error when this happens ? A vemslog of containing configuration used would be helpfull or us to try to diagnose and reproduce this issue. - DB '''Nope, no trigger error indication when it happened. Additional information supplied above. -JK''' I have tested this at various rpms ranging from 200-8200 applying advance range 9-45 degrees, tested scenarios injected primary tooth, missing primary tooth, sectrig goes missing, sectrig in wrong place. All are properly detected flagging trigger error and causing resync. To narrow it down (and fix) i need to be able to reproduce it, what exactly happens at the error rpm range/point does ignition shutdown or happen at wrong place, please verify with strobe and elaborate your findings. Could you take some scopeshots of trigger at or around that problem rpm ? Thanks! - DB ---- I found that with 1.2.31 TDC_after_trigger had to be set at 9deg when strobing the engine. I strobed the car on #1 cylinder on 0,10,20,30 and 40 deg and it worked fine. It also drove fine when I did the initial tune. There is an exception which allow 0-10 deg TDC_after_trigger when using coil type trigger. I think that applies for this trigger as well and that is why it can be driven at all. The only thing I notice is a hickup when the car starts up, IIRC this happens on the cars where the 0-10deg setting has to be used. I'm afraid that something was not correct with the documentation I supplied for the trigger development. I took by scoping another car and made the trigger pattern below based on that car. I payed to much attention to the longgap/shortgap selection for The MiataNb in 1.2.32. The car now runs fine and is strobed: http://www.vems.hu/files/MembersPage/JorgenKarlsson/MiataNB/v3.3_u009005-A-2015.03.22-18.21.20_strobad_1.2.32.vemscfg. The config only works on 1.2.32 and up. ---- Thanks for implementing this trigger system quickly! -Jörgen '''Background''' The Mazda Miata is one of the most popular spec race cars in use in Sweden. One very successful combination is to put the 99-01 NB engine in the early 90's cars. The leading race car drivers here in Sweden wish to run with the stock trigger as they want the option to run the car on the stock engine management system if there is a problem. I am developing a plug and play harness for these cars and I would like us to look at the trigger to see if we can make this work reliably. '''Trigger system''' The crank and cam sensors are hall triggers on the 99-01 Miata NB engine. The teeth on the crank look like they are made for a VR trigger but it really is a Hall trigger. This is what I found when scoping the car. This should be sufficient for implementing the trigger. It could be a degree or two off here and there as it was taken with a scope on an idling car. As the crank trigger pattern is not symetric it's probably simplest to decode to a 4+1 trigger by counting and ignoring teeth. Possible pseudo code for the input filter: <code> Primtrig / Crank interrupt routine: if( secondarytriggercount ){ if( secondarytriggercount > 1 ){ if (primarytriggercount == 0){ initial sync found ...} primarytriggercount = 1; // tooth_wheel = .. } secondarytriggercount = 0;// Reset every crank pulse. } if (primarytriggercount == 0) return; // not in sync yet if( (primarytriggercount++) & 1 ){ // return if it was odd return(); // Return if it's the first tooth after cam sync () } //tooth at 50 deg found if this point is reached. primarytriggermagic(); ---- sectrig / cam interrupt routine: if (secondarytriggercount++ == 0) return(); // ignore single cam pulse // dual teeth cam sync pulse found if this point is reached. secondarytriggermagic(); </code> Note: '''this implementation depends on sectrig''' : Even if it has distributer (which I don't know), and same ignchannel configured for all 4 entries; it depends on working camsync, and will NOT limphome with broken sectrig. 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.