#### ## ##### ## ## #####
# # # ### ## # # # ## # # ###
#### ### ## # ## # ## # ### ##
_ / \ / _ \ / ___ \ /_/ \_\
####### ## ## ## ## ## ## #######
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: '''Kickstart engine''' Big single cylinder four stroke bike engines that are kick started needs very exact ignition timing during startup. They normally rotate only 2 revolutions when kick started, this generally means that the engine only barely reach TDC when you kickstart it. The engine is normally positioned just after TDC on the power stroke before you kickstart it. We normally get two trigger pulses during this time, one for the charge cycle and one for the compression cycle. The RPM is however fairly unpredictable and the engine needs very exact ignition timing to start. '''At least one trigger pulse must be placed just before where you want your ignition to occur during the starting procedure.''' Usually around 10deg BTDC. We can expect the rpm to be in the 20-120rpm range, this equals a rotational speed of approximately 8.33-1.38ms/degree. This means that we don't need to care much about dwell even if an inductive ignition system is used. If we start to charge the coil for 2-3ms after the trigger and then let it go the ignition will only be max 3deg to late. This is acceptable. At high rpm the engine is timed from the single pulse of the crank trigger with a "tdc_after_trigger" of around 360-380 degrees. ---- As an alternative a '''long tooth can be used together with a HALL sensor''', this allow us to '''start on one edge''' of the sensor pulse train, and to time the engine from the other edge if the rpm is high enough. This would be the best (one-pulse) solution. Other alternatives: * 2 pulses (3-1 trigger) * 3 pulses (4-1 trigger) Set tooth_wheel_twidth to the angular distance between tooth 0 and tooth 1. Than '''firmware 1.1.x will automatically trigger from tooth 1 at low ignadv (eg. during kickstart-"cranking", when ign_tdcdelay-ignadv >= tooth_wheel_twidth), and tooth 0 at higher ignadv (when ign_tdcdelay-ignadv < tooth_wheel_twidth). (assuming trigger_tooth=00). * If the ign-advance drops, say from 30 deg (which is before trigger) to 10 degree (which is after trigger), there might be a lost spark event (output actuation). ** This is not normal operation anyway. * When (as right after kickstart) ign-advance rises from 10 degree (which is after trigger) to 30 deg (which is before trigger), there is no lost spark event ''Given the starting problems we have seen on slow cranking 4-1 trigger engines I doubt that it would be possible for the missing tooth decoder to sync reliably on a big kickstarted single. Kick starting a bike like this is VERY hard and the rpm will vary greatly over the two turns the engine rotates. Also keep in mind that if if a big single fire early the rider can end up at the hospital with a broken leg. If 1.1.x will sync on the first gap it would be better fit a 60-2 or at least a 12-1 trigger, these triggers do not suffer from the sync problems found on 4-1 triggers in 1.0.x and they are easier build then a long tooth trigger in these applications. The single tooth trigger must still be the primary for these engines, very few people would be willing to fit anything else. -Jörgen'' '''What we need''' Starting: We need the firmware to charge and fire the coil as soon as a configurable edge is seen in the trigger signal. There could be a benefit in letting this continue even when the ignition is timed from the previous tooth (below). Running: Above a configurable rpm the engine is timed from the last rising of falling edge (configurable). "tdc_after_trigger" can be well over 360degrees. This allow the engine to be run with a hall sensor that reads a single narrow tooth that is used for starting and running the engine or with a wide tooth, where one edge is used for timing the engine and the other edge is used for starting the engine. Jörgen Karlsson Gothenburg, Sweden. ---- '''Implementation thoughts for 1.1.x firmware''' Even if one does not use the useful multitooth "time-from-last-tooth" feature, and want to run from just 1 pulse altogether, Marcell doesn't think that ign_tdcdelay = 370 deg needed (although it would be easy to change resolution to 2 degrees, trivial changes around 3 places). '''10 deg setting is fine'''. We just need to allow some automatic += 360 deg in triggertooth() instead of <PRE> if(adv > delaydeg){ delaydeg = 0; } ... </PRE> Just '''make up some sane condition''' for that and we're done. Maybe <PRE> if(adv > delaydeg){ if(ign_tdcdelay <= 19 degrees && adv > delaydeg + 2 degrees){ delaydeg += 360 degrees; // or rather += tooth_wheel_twidth ?? } else { delaydeg = 0; } } ... </PRE> This does not seem to interfere with existing setups, and instead of limiting advance to the trigger point, it can advance further. ''I like this idea a lot, it will help on some engines. But won't there be a problem with overlapping delays on engines with more then one cylinder? -Jörgen'' * A multi-cylinder engine cannot be triggered from 1 pulse anyway. * can you detail exactly what trigger setup are you thinking of ? * if delaydeg += tooth_wheel_twidth; is used (and config.tooth_wheel_twidth properly configured) it ''should'' theoretically work with N+1 camsync setup, as long as teeth are evenly spaced and match the required ign timing difference between cyls. * Eg a 4+1 trigger would work with 1,2 or 4 cyl even fire, but not with a V2 odd-fire Harley * Must be tested of course. * the ultimate solution would be to allow in configuration to artificially limit sparktooth, to always trigger from tooth0, or tooth0..1. With very low toothcount this often automagically holds. But it could be useful in MembersPage/FiatStilo style (eg. subaru) triggers as well. ** and maybe limit dwell to same tooth, or max 1 tooth before. 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.