MembersPage/KarlBuchka/Trigger (2008-09-28 05:31:40)

Inline 5-cylinder, sequential ignition with camsync

Primary trigger: 60-2 w/ VR sensor.

Secondary trigger: Single tooth w/ Hall sensor.

The rising edge of the cam wheel hits the sensor after cylinder three fires and before cylinder one does.

Firing order is 1-2-4-5-3.


MembersPage/RonnieH has set up VEMS on a very similar motor also with seq. COP. After some additional reading, his settings seem obsolete due to code changes.

Primary trigger settings

Field name Variable name Value [decimal] (Value [hex])Comment
Primary Trigger primary_trigger 1 (0x01) For multi-tooth trigger without filtering (I think). 0x09 is with filtering? Which should I use?
Edge   Rising
Type   Multitooth
Filtering...Bit7   Disable
TDC after the trigger ign_tdcdelay 120 (0x78) Number of degrees BTDC that trigger_tooth is located at, in units of 0.5 degrees. Ex: If trigger tooth is located 60 degrees BTDC, then ign_tdcdelay is 60 * 2 = 120 decimal = 78 hex. Thanks to MembersPage/BorisRieken/PrimairyTrigger for actually taking time to write this shit out.
Number of teeth on wheel tooth_wheel 58 (0x3A) 
Trigger tooth trigger_tooth 6 (0x06) (from memory, need to confirm on engine itself) Look at the tooth under the sensor at TDC of cylinder 1, count backwards the number of teeth required to be ~60 degrees BTDC, the tooth now under the sensor is trigger_tooth
Next trigger tooth another_trigger_tooth 24 (0x18) (from GenBoard/UnderDevelopment/FirmWare/TriggerRelated, 60 (teeth on the wheel) * 2 (wheel revolutions per cycle) / 5 (ignition events) = 24 teeth between events
Crank min. period crank_minper 188 (0xBC) 60 (seconds) / 8000 (max rpm) / 5 (number of engine events) * 2 = 0.003 (seconds) = 3000 (microseconds). In units of 16usec, so 3000usec / 16 = 188 [decimal] = BC [hex]. Can someone confirm this is the correct formula? Or even what this value means?

Secondary trigger settings (these are not used in 1.1.x, so only here for future use)

Field name Variable name Value [decimal] (Value [hex])Comment
 secondary_trigger (0xFE) For rising edge trigger
 tooth_wheel_twidth1 24 (0x18) Width of a single tooth on wheel, in quarter degrees (360/60 = 6 degrees per tooth, 6*4 = 24 quarter degrees per tooth, 24dec = 18hex)
 tooth_wheel_twidth2 0 (0x00) Not sure on this one either, changelog says set this to 0, but why?
Rising Edge cam_sync_r_edge_phase 2 See: Note
Falling Edge cam_sync_f_edge_phase 6 See: Note
Engine phase, when to reset reset_engphase_after (0xF0) See: Note

Note: According to GenBoard/Manual/InputTriggerCamSync


Ign. outputs will connect as follows (for 2+6 configuration, according to PhatBob's User Guide):

Cylinder Ign. channel ECU Pin h[2] value* h[1] value**
1 0 EC36/35 00  
2 1 EC36/33 10  
3 4 EC36/11 60  
4 5 EC36/12 40  
5 6 EC36/24 50  

*h[2] is ignchannel array, h[2] = 00 40 60 50 10 00 00 00. So the array is traversed backwards starting at '10' (since "Ignition outputs to use in h[2]" will be '04..00'). Because the ignchannel traversal is reset after the ignition event following the cam-sync, cylinder one needs to fire last in the order.

**According to the changelog for 1.1.x: h[1] is the reference tooth array (trigger_tooth and ign_tdcdelay is added to this to get TDC), for each output specified in respective h[2] entry.

Confirmation on the above values would be greatly appreciated.