Odd fire 90,150,90,150,90,150 degree V6
Now even the factory 30,90,30,90, ... factory maserati trigger is supported even with the dual camsync pulse (1.1.90 firmware). See below.
There is ongoing work for quicker / more graceful startup.
Non-maserati triggers
Common denominator is 30 deg, which suggests 12 teeth on crank (also called 24+1 pattern with Tools/Play-trigger type c024)
Bench tested configs using per cylinder spark delay:
Maserati factory trigger setup primtrig pattern 30,90,30,90,30,90, 30,90,30,90,30,90 with double camsync pulse
With 10deg ignition advance, spark comes on the first primtrig after the FIRST sectrig, the next comes 150° (30+90+30) later
- The first sectTrig of the short cam gap is 50 crank deg cr before the following prim trig.
- The second sectTrig of the short cam gap is 50 crank deg after the previous prim trig.
[Maserati biturbo .wav] made by Phil.
- Bench tested OK with 1 campulse even with 1.1.88, using this [config ]
- same config with 1.1.90 now works with dual camsync pulse
- easy way to configure: at the bottom of "primary trigger" dialog: used configlet: Maserati Z012 (after VemsTune ini update or VemsTune newer than 2011-04-19 )
- note: a similar trigger (but 10 cyl instead of 6 and 1pulse camsync) is the Viper engine: MembersPage/PeepPaadam/BMWwithViperEngine VemsTune Tools / Play trigger: "Z020"
- obviously ignition outputs must be configured (according to wiring), and TDC-delay adjusted with strobe.
- It's a good idea to strobe just one ignition output first and note which cyl each slot belongs to (the rest ignouts disabled, or disconnected, also with injectors and/or fuelpump off)
- only install the WBO2 sensor in the exhaust after the engine started (for longer WBO2 sensor life)
For the curious:
- similar to Fiat Stilo, triggering from short-gap (neglecting the 90 deg gap and timing from every 30deg pulse, but using per cylinder spark delay)
- but advanced filtering enabled and 125% threshold (eg. Normal tooth 20-125%, missing tooth 125%-425%)
- to get odd fire output with this setup (and proper timing), per cylinder spark delay is needed
- Could you elaborate this spark delay?, 2 delays should be needed ?
- What about sequential injection ?
- needs strobing to find ign_tdcdelay (TDC after the trigger) value.
- Any idea (speculation or measurement) about the pulse position wrt TDC ?
- from the workshop manual it is 10° before TDC, also the Microplex firmware substracts 10° from the ignition map value after reading it.
- Any idea (speculation or measurement) about the pulse position wrt TDC ?
Reftooth-based solution might be another option WARNING: not yet passed testing with missing tooth + uneven odd-fire reftooth table !
- 12-1 teeth on crank is another rational pattern (3,5,3,5,3,5 differences in reftooth because tooth width=30 degrees).
- or 36-1 (9,15,9,15,9,15 differences in reftooth because tooth width=10 degrees)
- or 60-2 (15,25,15,25,15,25 differences in reftooth because tooth width=6 deg) also makes sense.
As you see, that method is about
- the reftooth table.
- but firmware mod required (in avoid_tooth() function) for uneven reftooth table otherwise it would attempt timing from nonexistant tooth
- obviously the secondary trigger must be enabled as camsync
- also, enabling the odd-fire bit might be needed so the RPM does not fluctuate up/down according to 90/150 degree time, but measures every second event (240 degrees)
- maybe some cheating with the cyl number also needed to show correct RPM (the cyl number has no other effect currently)
Page needs to be cleaned up
- also we'll make index page to different odd fire engines (and some generic instructions).
- Generic information will come to this page, and specific to the Maserati biturbo goes to MembersPage/FPhil (started with very similar content)
The solution to set 30 crankdegree teeth on the crank pulley was also recommended by Matthias on [Vems uk]
"The sensors are VR but it is not a big problem to make a Hall signal from them" [VR=>HALL] converter available (with divider option for multitooth ABS sensors).
I can filter out one of the crank trigger or even I can divide the triggers by two to make 2 x (1cam trig +3 crank trig) each for one even fire 3 cylinders, for respectively the left bank and the right bank of the engine . But in this last case I need 2 GenBoards !!!
This is what Maserati has done for the late biturbos: 2 triggers + one ecu (ignition+injection) for each bank
The 30,90,30,90,30,90, 30,90,30,90,30,90 arranged according to ign events, 10 crankdeg BTDC tooth marked bold:
- 30, 90, 30
- 90
- 30, 90, (next crankrot: ) 30
- 90
- 30, 90, 30,
- 90
10 crankdeg BTDC cannot be used as trigger tooth normally, eg when sparkadv is 20 crankdeg.
- so normally trigger tooth will be 10+30=40 (or possibly 10+90=100 BTDC ?).
- 10 BTDC pulse should be used during cranking though
- VEMS firmware uses fire-right-from trigger during cranking for kickstart motorbikes (as a special case of a simpler triggersetup)
BTDC angle in (parentheses) :
- 30 (130), 90 (40), 30 (10 / 100)
- 90 (10)
- 30 (130), 90 (40), (next crankrot: ) 30 (10 / 100)
- 90 (10)
- 30 (130), 90 (40), 30 (10 / 100),
- 90 (10)
Same, in other words:
- each trig is 10deg before respective TDC cylinder.
- let s=sectrig, p=primtrig, f=firing, sparkadvance=10deg:
- The first fire here comes on the first p after the first s
- the second fire comes 150° (30+90+30) later:\nÿ1ÿ
The "90" longgap-tooth is alternating like 10 BTDC,40 BTDC ..., which seems to perfectly agree with the VEMS triggerlog captured with "alien" (Magneti Marelli Microplex) startup
More triggerlog png-s on MembersPage/FPhil/OddFireWastedSparkEvilStartUp
- When timing from the pulse after the short-gap, tdcdelay=130,160,130,160,130,160 was given (127+ alternating 3,33) was used (not 100,130 as one would expect!), which is like:
gaps listed accordingly (BTDC angles in parenthesys)
- 30 (40 or 130 before next), 90 (40), 30(10 or 160 before next)
- 90 (70)
- 30 (40 or 130 before next), 90 (40), 30 (10 or 160 before next)
- ...
- this seems to contradict above "each trig is 10 BTDC" because longgap-tooth is alternating like 70 BTDC,40 BTDC not 10,40 !
- probably overlooking something because the "longgap-tooth alternating 10 BTDC,40 BTDC... " make MUCH more sense than 70,40
- maybe the (127+33=)160 degree after the pulse after the short (30 degree) gap was never really at TDC ?
- how did we come to the 130,160 and why was it not 100,130 ?
- maybe the wrong SEC-trig had been used for sync ?
- no, because the timing is always measured from the primary trigger (with the traditional maserati code, from the pulse after the shortgap), the camsync can only cause a 120 degree difference, not 30 crankdegrees
- but 130-40=90BTDC+30=120!!
- what is the "physics" behind these numbers ? The "130 BTDC" and "40 BTDC" pulses are 90 degree apart, yes. And the signal period is 90+30 = 120 (but there is nothing at 90 BTDC)
- Indeed no physics there but a too fast comment !!. Sync can be done on the bold p and firing on the capital P from the pattern sppspp Pp -> 130 BTDC with 0 sparkdelay on first spark. Instead if one can get sppspp Pp with 100 BTDC, sync on the second primtrig and 0 spark delay on first spark. The pattern spps pP pp with 130 BTDC, 0 spark delay, sync done after 1st sectrig and primtrig at the end of shortgap, works only for the first fire!!
- maybe the wrong PRIM-trig had been used for sync ?
- indeed: if we accidentally timed from the primtrigpulse after the long-gap (=the beginning of the shortgap instead of the end of the shortgap), that would explain it...
- but that is very unlikely.
- see above -what are the use of cam triggers?
So for normal (non-cranking) sparkadv (say 18 deg, but for any >10 we seem to need (if the 130,100 assumption is correct, but considered too far, the equivalent but more uneven/complicated 40,100 could be implemented):
- 40,100, 40,100, 40,100 BTDC triggertooth (that is actually the last tooth before a normal sparkadv)
- beware spark advance comes up to 50deg on the Maserati
- so neither clean way will work: short-gap or long-gap setting: we need alternating after-short-gap and after-long-gap
The good news is that if firmware userspace "triggertooth" calculation can be taught about the uneven tooth-times (modifying the userspace easier than the interrupt timing code state machine), that might provide an 1.1.x solution without the per-cylinder spark delay tweak.
- config:
- coil-type
- odd-fire bit enabled
- toothwidth=30 deg
- AND nr of tooth=6 (not 12 !)... this special value together with toothwidth=30 could mark this Maserati trigger for now.