VEMS team implemented a special firmware solution for Maserati startup
- "kickstart motorbike style fire-at-pulse" and made the transition to normal running reasonably graceful.
- Was quite some work, but seemed essential for good support of this trigger so we didn't settle on "running-good": a Maserati with VEMS must be able to set up to always start good.
- maybe it can be applied to Viper if we get input on Dodge Viper (Phil's feedback on Maserati was awesome)
- note that newest 1.2.6 (at least 2012-10-04 or later) is recommended (wbo2 change), in any case check that wbo2 is actually measuring
This page was used for conversation during the implementation and testing, mostly historical now. We will do some cleanup on MembersPage/OddFireSixCyl and post good config (and related ign/inj output wiring for the Maserati firing order).
I did the full install of the wasted spark ignition on the engine biturbo, the injection being still done by the OEM IAW Weber ecu of the biturbo. The coil I used was the Bosch 3x2.
I had run the Vems ignition through the distributor for about 3000 km. I made the OEM Microplex Marelli ignition ecu (2 oem ecus : one for the injection, one for the ignition) to run in // with Vems and I got a switch to commute the origin of the firing signal to the coils (there are 2 on the biturbo). I did so for two purposes:
1) to keep the benefit of the knock control of Microplex
2) to start the engine faster in a quarter of a turn with the Microplex instead of the 2 revolutions and more( yes 4 pi) given by Vems ( fw <= 1.2.5 , that was before the "kickstart" implementation ).
There has been some discussion about this sluggish start here http://www.vems.hu/wiki/index.php?action=find&find=MembersPage%2FFPhil%2FInstall where one might say that DIS was the cause of it. However without DIS I get the same results and even worse because of the wasted sparks
Wasted spark for this odd engine is not obvious. The best that one can do is to pair cylinders in such a way that one cylinder is TDC and the other one is 30 deg admission.
- This works since, the gas "resistance" in the exhausting cylinder is rather low, and 90% of spark energy goes to the cyl with fresh charge waiting to be ignited.
- Bench test
The test is done by increasing from zero the level of the z012 triggers signals.
- the 2 sec trig from the cam pulley per each revolution (4 pi)
- the 6 pairs of prim trig per each revolution: 3 pairs are on the crank pulley 90-30-90-30-90-30
- odd firing 150-90-150-90-150-90
- first fire after 2 revolutions (and more)
-> It is unclear to tell which sec trig from the cam pair is used
-> I checked another config: TDC delay after trigger 10 deg, spark delay 30,0,30,0,30,0 which should give the same. For some reason, the fire comes 30 deg sooner.
- Test with distributor (,no wasted spark)
On the first picture the firing given by Vems (4 pi) is not used since the engine is quicklystarted by the Microplex(same as on bench)
On the second picture
- the first fire (f1) is given by Vems after 4pi (and more)
- the next fire is at f1+150+90
- other fires are a kind of mess for a while but everything comes in order after 2 more revolutions
-> the firing @ f1+150 might be missing because it was off the DIS finger. Indeed Vems probably computes the next time to fire from the time interval of the last two prim triggers, since these triggers are 120 deg apart and the acceleration is high, the time to fire may be off the DIS finger.
-> All together the engine truly start up takes 8 pi +
This is when engine is stopped so sectrig is just missed, the first sectrig will come ~1.99 camrot
Unfortunately at least +1/3 camrot is wasted (so final worst-case is ~2.4 instead of 2.1 camrot ) in current implementation because it's internally flagged "out-of-sync" before the campulses come, and the sync only really starts after that (not taking angle-measurements before the 2 sectrig pulses come)
- Test with coil 3x2 and wasted sparks
The first try was done with 7 deg spark advance at 399 rpm during crank and 22deg at 1000deg 1bar .... The engine says "bang"
Next try done after increasing the crank spark advance to 25 deg
I did not got the bang in that case but the trigs and the fires seem out of sync, engine appears to slow down even when the fire is not too badly timed.
The reasons for these failures were that the high Vems delay to fire when cranking adds up to the 30deg delay of the wasted spark during admission and makes ignition to occur on the paired cylinder.
Finally, still increasing the spark advance during cranking (25 deg @ 299 rpm, 35deg @900 rpm )I was able to start the engine
Do you have a *.triggerlog of this (or similar) real startup ?
- We could replay that on bench from .triggerlog format (not from .jpg).
- 2 REF for good start
- 1 triggerlog for bad start
Trying to improve the start, I reach this final config:
(45 deg @ 400rpm!!! see REF2 files) which is obviously non tractable.
Aiming to get a reasonably good ignition control, better than the Marelli Microplex(6803 processor), I think that
- the 720 deg delay before the first fire should be reduced
- Vems delay to fire during the acceleration of the cranking due to the few (3) trigs used for the computation should be corrected
- wasted spark ignition is too much border limit to be used on this odd engine
Some computation to explain the hard startup
A rough computation shows that the current firmware's strategy for this trigger cranking may not allow a clean start (or require ignadv compensation).
I believe that Vems computes the time of the next firing from the time interval (Told) of the last 2 triggers (120° apart).
Let the starter cranks at 300rpm. When started with the Microplex ecu, the engine reaches 800 rpm quite fast say in 600deg (5x120) So the speed increase of 100 rpm each 120deg phase.
Hence after the first fire, speed has increased by 30% (100rpm) at the next 120 deg trig. Which means that this 2nd trigger is 30% or 36 deg sooner than expected (or more in the case of firing with the 30deg spark delay)from Told.
So at best the startup is messed up, at worse, with wasted spark, the paired cylinder is ignited at 60 deg on admission (30+36 - 7 advance)...
- That was one of the reasons better patterns like 36-1 came to wide use
- even if measured period is off by 30% during cranking, that is only 3 crankdegrees to compensate for. And only 2 crankdeg with 60-2
- note that measured timeperiod (=reciprocal of RPM) changes most significantly from 45 BTDC to 15 BTDC because of compression: (very apparent with 12 or 12-1 crankwheel) time measured 120 crankdeg is actually more even than 75-45 and 45-15 (in many 12-1 installs "missing tooth advanced filtering" is needed to avoid false missing tooth detection when the 45-15 BTDC time is (say) 1.57 times higher than previous tooth time (crank slows that much while traveling only 30 deg: that is 1 tooth).
- issue may occur for other coil-type trigger set up with too few triggers on the crank and too high TDC-delay.
- This could be the case for all Marelli ignition for which each firing is commanded by one specific trig on the crank and a timer.
Thanks for the detailed triggerlogs.
We implemented "trigonLONGgap" in 1.2.5 firmware, effecting the "short-gap-trigger". see 1.2.5 on GenBoard/UnderDevelopment/FirmwareChanges
- change primary_trigger=BB (instead of AB) in a freshly saved vemscfg and upload it (will be soon selectable in VemsTune primtrig-dialog after ini-update, or in new versions)
- per-cyl sparkdelay: 0,30 is better than 3,33 which was necessary earlier, so use 0,30,0,30,0,30 (instead of 30,0,30,0,30,0... because of the rotation ?) but if one is no good try the other
- "TDC after trigger"
- of course, ign_tdcdelay=FE need to be changed from 127 crankdeg to 40 degrees, possibly ign outputs rotated to adjust.
- even if compensation will still be necessary to make up for the RPM-changes during cranking, please check that this helps to achieve predictable ign at the desired BTDC-angle during Maserati startup ?
- is the assumption good that the pulse after the (30 crankdegree) short-gap is the actual "10 crankdeg BTDC cranking ignadv" position (for every 2nd event) ?
Times from MUCH closer (less than half) compared to earlier.
proposed mazerati z012 configlet: (Trigger settings for Maserati Oddfire 90+150 engine)
h=00 05 04 03 02 01 00 00
h=78 00 78 00 78 00 78 00
August 17 2012
Thanks for the return and the new compile.
"please check that this helps to achieve predictable ign at the desired BTDC-angle during Maserati startup ?"
I will do it next week
"is the assumption good that the pulse after the (30 crankdegree) short-gap is the actual "10 crankdeg BTDC cranking ignadv" position (for every 2nd event) ?"
Yes each crank trigger occurs 10deg before relevant TDC
"[Some bench-tests with config included]"
humm... Anyway to bench test, better to set ignition advance = constant 10deg
pre_sync func (suggestion)
I do not know how the firmware is designed, but it should be possible to write some specific pre_sync func whenever the oem trigger sync is too much exotic. Its purpose would be to output a Vems standard sync.
In the case of Marelli ignition, this quite simple func would be (to complete):
INPUT: prim_trig_event, sec_trig_event
IF sec_trig_event START COUNT prim_trig_event
IF n_prim_trig_event = 2 AND new_sec_trig_event
Fast startup algorithm (suggestion)
When the first fire is done, engine is in order and the following fires occur mostly at the same phase/times.
Hence an alternative to speed computation which leads to delays when there are too less trig events, could be (to complete) :
- the operator enters a first guess of the times/phases of firing during the cranking period
- these values are adapted (automatically)subsequently from the triggerlogs
August 28 2012
fw upload trick
I messed up when uploading 1.2.5. Communications went dead after reboot. Hopefully the Vems suppor gives me the way to go.
- Switch-on Genboard with pin 2 an 3 of the rs232 link connected this tells the bootloader whitch is RS232 capable, that someone is speaking with him (that's himself). So you stay in Bootloader mode
- Remove Pin2-Pin3 connection, start VT and there VT is clever: it recognize genboard to be in bootloader mode and offer you to proceed fw upload.
Testing 1.2.5 on bench
To recall, we look for the first of the following trigger picture
There Ignition Advance = 10°.
One sees that
- Prim trigger (90,30,90,30, ...) is for each cylinder and occurs 10deg before TDC.
- Sparks are 150,90,150,.. and with 10° Advance comes on time with the triggers.
- To resume spark sync: spark occurs on first primTrig after first secTric (of the short gap) and next spark came 150° after.
1) Hereafter the result I get with 1.2.5
for this config
TDCafterTrigger? = 40deg
As done before, I used to increase the level of the trig signals do see the delay for the first ignition.
2) If the first spark gap above was 90° instead of 150 things should be better. So I took
This is what I get
with the following config
here IgnitionAdvance? = 35deg
- I cannot explain this result.
3) In any case if the first spark is delayed of 30deg then to put it back on the primtrig, TDCAfterTrigger? should be = 10°. Doing the test I got strange results having 12 ignitions per cycle!!. Anyhow it is know that te fw could not work with this short delay.
I put there the comments I got today for this page.
What is the angle of the primtrig tooth after the long-gap ?
- Marcell thought 40 crankdeg: because Phil said the tooth after the short-gap is 10 crankdeg (=130, considering the even times compensating with the ...0,30,0,30... per-cyl-sparkdelay rotated as necessary)
- From earlier (slightly reformatted):
- short-gap is the actual "10 crankdeg BTDC cranking ignadv" position (for every 2nd event)": Yes each crank trigger occurs 10deg before relevant TDC
I do not understand what is long gap or short gap, neither ""10 crank deg BTDC cranking ignadv" "
Indeed crank trigger occurs 10deg before relevant TDC.
Do you need the delay between sectri and primTrig?
- in any case, if "not good", you MUST try with the per-cyl-sparkdelay rotated (eg. 0,30,0,30.... becomes 30,0,30,0... ) as needed because I still suspect trigger before TDC should be good at 40 degrees with the 1.2.5 primary_trigger=BB setting (and not good at 10 degrees for several reasons).
See above, with spark delay = 30,0,30,0,30,0, to get the sync one needs TDCAfterTrigger?=10deg
2012-09-18 After the maserati was found to be good at normal running, but disgraceful at high RPM-variations during cranking, the maserati code was reimplemented in 1.2.6 for very quick sync at startup and using 10BTDC teeth during cranking (config also changed, see GenBoard/UnderDevelopment/FirmwareChanges and MembersPage/OddFireSixCyl ).
Hourrah!, I finally got the good configuration to successfully test fw1.2.6 ignition on the car (through DIS. It is based on MembersPage/OddFireSixCyl config, the last trick being to swap the 2 coil lines bankA/bankB.
See hereafter the 2 beautiful triggerlog. Note that underb crankingthreshold=499rpm the spark advance is always set to 10deg, hence by theory the sparks should occurs at the time of the corresponding crank trigger. Spark advance is 20deg @1000deg and it is interpolated when running between 499 and 1000rpm
One could object that on the second log, the 6th spark event is misplaced. This might be because the cross from cranking to running mode. Hence rpm slow down somewhat and cranking mode probably returns. The Vems team is aware of that.
In any case this is very successful. Even more since I guess there is not too many ECU which handle the Weber Marelli odd-fire timing from the actual OEM triggers. Hope this paves the way to many more good start oddfire engines.
Now I can mount the 3 coils (2x1 bosch-mercedes coil ) I have kept ready for the car secured in their home made cradle... (one can also see there my previous 3x2Bosch cradle)
Last, I should change the title of this page for: FromEvilToJollyGoodOddFireStartup? and thank the VEMS team for their fw support...