MIVEC disassembly notes
#16
I'm pretty sure that I've found the RAM variable that contains the actual MIVEC position. For the USDM Evo IX, it looks to be 0xFFFF7650. Below is a plot of actual MIVEC vs the MIVEC trace through the my current MIVEC map. Actual MIVEC is not reaching 30. The max value is hovering around 28.2 - 28.6.
I've been thinking about the MIVEC CEL code that people have mentioned. Even with the 33 deg request in my MIVEC table, I've yet to see the MIVEC CEL in the year or so since I started tinkering with this tune. And the ROM code definitely has safeguards that clip requests greater than 28.8 deg back down to 28.8 deg. So, I'd be somewhat surprised if anyone is getting a MIVEC CEL from running values greater than 28.8 deg in their MIVEC table. If they are, I'd like to see their ROM.
On another note, the 28.8 deg limit built into the software is not "hardwired" into the code. It can be changed. If someone could measure a MIVEC gear assembly to see if more than 28.8 deg are available, then this value could be bumped up.
I've been thinking about the MIVEC CEL code that people have mentioned. Even with the 33 deg request in my MIVEC table, I've yet to see the MIVEC CEL in the year or so since I started tinkering with this tune. And the ROM code definitely has safeguards that clip requests greater than 28.8 deg back down to 28.8 deg. So, I'd be somewhat surprised if anyone is getting a MIVEC CEL from running values greater than 28.8 deg in their MIVEC table. If they are, I'd like to see their ROM.
On another note, the 28.8 deg limit built into the software is not "hardwired" into the code. It can be changed. If someone could measure a MIVEC gear assembly to see if more than 28.8 deg are available, then this value could be bumped up.
#22
Turns out the intake cam position variable (FFFF7650) is a 2-byte value. If you want to log MIVEC (aka intake cam advance) with a USDM Evo IX, you'll need to point to two unused (unneeded) MUT ports to: 0x7650 (MIVEC high byte) and 0x7651 (MIVEC low byte), e.g., your ECUFlash ROM xml file you'll need an entry such as:
<table name="MUT40 MIVEC high bit" category="MUT" address="3ef86" type="1D" level="1" scaling="Hex16"/>
<table name="MUT41 MIVEC low bit" category="MUT" address="3ef8a" type="1D" level="1" scaling="Hex16"/>
And then after launching ECUFlash, you'll need to insert 0x7650 into MUT40 and 0x7651 into MUT41.
For EvoScan, the formula is:
<DataListItem DataLog="N" Color="" Display="MIVEC" LogReference="MIVEC" RequestID="40" RequestID2="41" Eval="72-0.6*x/32" Unit="deg" MetricEval="" MetricUnit="" ResponseBytes="1" GaugeMin="0" GaugeMax="33" ChartMin="0" ChartMax="33" ScalingFactor="1" Notes="" />
In this example, I used MUT ports 40 and 41.
When logging MIVEC, you'll likely see spikes in the data. I haven't taken the time yet to determine if the spikes are real or correspond to a high byte change over (same as what happens with 2-byte load spikes).
<table name="MUT40 MIVEC high bit" category="MUT" address="3ef86" type="1D" level="1" scaling="Hex16"/>
<table name="MUT41 MIVEC low bit" category="MUT" address="3ef8a" type="1D" level="1" scaling="Hex16"/>
And then after launching ECUFlash, you'll need to insert 0x7650 into MUT40 and 0x7651 into MUT41.
For EvoScan, the formula is:
<DataListItem DataLog="N" Color="" Display="MIVEC" LogReference="MIVEC" RequestID="40" RequestID2="41" Eval="72-0.6*x/32" Unit="deg" MetricEval="" MetricUnit="" ResponseBytes="1" GaugeMin="0" GaugeMax="33" ChartMin="0" ChartMax="33" ScalingFactor="1" Notes="" />
In this example, I used MUT ports 40 and 41.
When logging MIVEC, you'll likely see spikes in the data. I haven't taken the time yet to determine if the spikes are real or correspond to a high byte change over (same as what happens with 2-byte load spikes).
Last edited by mrfred; Jun 25, 2013 at 07:22 PM.
#23
Looks like there's a possibility of increasing the MIVEC advance range. In the post listed below, Shiv alludes to changing the MIVEC advance limit.
https://www.evolutionm.net/forums/sh...20#post3670320
I'll give it a try on my way home from work. I'll probably try for 33 deg just to see what happens.
https://www.evolutionm.net/forums/sh...20#post3670320
I'll give it a try on my way home from work. I'll probably try for 33 deg just to see what happens.
#24
Now I've pretty much convinced myself that approx 28-29 deg is the max advance. I grabbed a drawing of the MIVEC assembly from the FSM and measured the amount of rotation possible. Assuming the drawing proportions are reasonably correct, then it looks like there is room for up to 50 deg of advance. However, there is a nub on one of the MIVEC arms that limits the MIVEC advance to 28.8 deg. Seems like that nub would have to sawed off get more than 28.8 deg.
Last edited by mrfred; Nov 28, 2007 at 09:07 AM.
#29
I agree that the mechanical limit on advance is likely to protect the valves from running into each other or into the piston. There must be some safety cushion though because Cosi and GSC cams must have either longer duration or more lift or both. I imagine that there must be at least a few cam degrees of safety cushion.