For 5 cylinder and odd-fire V6 engines the crank trigger is not enough. The ECM must know which cylinder (which sparkplug, which transformer, which IGBT) to fire
GenBoard/VerThree has input for cam-trigger (secondary trigger) and enough outputs to drive an 8 cylinder fully DIS setup.
Beware - think twice if you really want to depend on camsync
For even-fire engines wasted-spark can be a better (and certainly simpler) approach. It is simpler to configure the ECM for wasted-spark, since cam trigger is not needed (so less things to break). Wasted spark wastes very small amount of energy, only about 8..10% for real wasted spark, when the same transformer fires 2 cylinders' sparkplugs, since the voltage will be smaller on the exhaust stroke cylinder while current is essentially the same.
For trendy COP (coil-on-plug) installations, cheating wasted spark really wastes some energy, because the exhaust stroke cylinder's sparkplug is also energized fully.
Countrary to popular beliefs don't need camsync for
- high horsepower small displacement engines. Naturally, one injector-squirt per camphase is desired (for higher pulsewidths => much less difficulty with injopen config), but that is available without camsync (see config.divider and config.alternate).
- Per-cylinder knock sensing and retard individual cyl does not require camsync either. The ECU can retard just the knocking cylinder (eg. with wasted spark, or even distributor) without knowing where the cylinder is physically located that was knocking. The ECU knows when it's that cylinders turn as it traverses the h[2] array as igncount is changed (if config.ignchmax=cyl-1 as recommended). It will be consistent until the engine is stopped, and knock-based ignition retard is not transferred over engine restarts anyway.
Camsync required for
- adjusting fuel trims on a per-cylinder basis. On many engines this can be very important. Especially Subaru engines where the extra heat in the cylinder next to the turbo makes it a detonation target
- fully sequential, timed injection. Needed for engines that are regulated with skipped event instead of throttle (Formula-1). Gives no extra power if throttle is used anyway. Gives 2..4% efficiency and emissions, but tuning it for that consumes more fuel than it is saved during engine lifetime (not the case if 10000 engines of same type are sold)
What are the requirements for fully DIS ignition setup?
The camsync-active-edge must be between given 2 cyls' spark event! In other words, if the camsync pulse overlapd the used ignition advance range of a cylinder (sometimes spark comes before, sometimes after the camsync-active-edge), it's currently not supported. For a 4 cyl, this means that if ignition advance is set to 8..45 degree BTDC, than the chosen camsync trigger pulse (the edge that is configured to trigger the processor) must be outside of that 37 crankdegree window (out of 180 crankdegrees) plus some safety margin.
This is not a hardware limitation, just a firmware shortcoming, that's planned to be improved anyway (just noone asked for it yet).
The exact reason is the simplified operation:
Cam-trigger is just used to "reset" engine.igncount=config.ignchmax so the h[2] index jumps to the last element right after the spark-event following the cam-pulse
Example 1: On a 4 cylinder engine with firing order 1-3-4-2 the signal should come after the ignition event of cylinder 4 and before cylinder 2.
Example 2: On a 6 cylinder engine with firing order 1-5-3-6-2-4 (BMW inline 6) the signal should come after the ignition event of cylinder 2 and before cylinder 4.
Therefore the following config variables are not used (but recommended to set them to reasonable values for future compatibility):
- cam_sync_f_edge_phase
- cam_sync_r_edge_phase
- reset_engphase_after
- tooth_wheel_twidth1
- tooth_wheel_twidth2
examples:
- tooth_wheel_twidth1=2 tooth_wheel_twidth2=6, reset_engphase_after=0xF0 for a 60-2
- tooth_wheel_twidth1=3 tooth_wheel_twidth2=6, reset_engphase_after=0xD8 for a 36-1
- cam_sync_f_edge_phase and cam_sync_r_edge_phase depend on the actual wheel-setup. Both-edge in secondary_trigger only makes sense for HALL sensor. With a VR cam-sensor, one would only configure rising edge and care about cam_sync_r_edge_phase (and let cam_sync_f_edge_phase=(cam_sync_r_edge_phase+50) % reset_engphase_after )
Anyway, for a dual trigger setup make sure you plan cautiosly, and document your progress in wiki so others can warn you should anything be done differently. Test the configured setup on table.
Only cam, no crank trigger - cu
Above we assumed that besides the cam trigger there is always a crank-trigger (the crank is the preferred source for timing as the cambelt usually causes a few degree sloppiness). However a cam itself also enables us to run an engine.
- Note that during 720 crankdegree revolution (if the common 1-tooth camtrigger is used) the RPM can change significantly. This is not supported.
- multitooth cam signal is possible: allow running the engine so max time between synchron teeth is only say 20 crankdegrees. This is supported, but you have to connect the cam-trigger to the primary trigger input, and pretend that it's crank. Just think about it, works like a charm: set an 8 cyl for fully DIS (say COP) as it was an 16 cyl wasted spark system.
- a tricky cam signal-train would help faster startup at cranking too (not yet supported)
- when there are both crank and cam triggers, but crank is lost: this limphome functionality (optionally with somewhat retarded spark) is needed very rarely, so planned for later (2005 March..May).
See also: GenBoard/Manual/InputTrigger
Go back: GenBoard/Manual