Inline 5-cylinder, sequential ignition with camsync
Primary trigger: 60-2 w/ VR sensor.
Secondary trigger: Single tooth w/ Hall sensor.
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
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 | ||
Falling Edge | cam_sync_f_edge_phase | ||
Engine phase, when to reset | reset_engphase_after |
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 | 40 | |
4 | 5 | EC36/12 | 50 | |
5 | 6 | EC36/24 | 60 |
*h[2] is ignchannel array, h[2] = 60 50 40 10 00 00 00 00
**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.