Forum » General Tuning Discussion » Have ANY of you had weird issues tuning you Haltech AVCS/VVT??? I need your help, and I can help you as well...

Have ANY of you had weird issues tuning you Haltech AVCS/VVT??? I need your help, and I can help you as well...

General Tuning Discussion

Forum Posts



Tech Articles

Discuss all things tuning in this section. News, products, problems and results. 

= Resolved threads

Page 1 , 2

Ok, I just tested both ECUs at IDLE, with the Solenoids disconnected.

JDM Factory ECU - at idle mostly flat at 0, ticking up to positive 1 degree here and there, but mostly 0

Haltech Platinum - Constantly between 0-1, hitting 2 degrees here an there.

Im sure the Haltech looks much busier because it's sample rate is much much higher, but I would call it even honestly

With the Solenoids Connected, targeting 0 at idle:

JDM ECU - Actively Targeting 0 with duty cycle

Haltech - Constant duty cycle of 0% and the cams 0-1 degrees, with 2 degree spikes here and there, until something else is targeted, and then coming back to Idle and target 0, the haltech just shuts off duty to 0%, and the cams wobble a bit, and eventually CAM1 will be 1-4 degress and CAM2 will be 1-3 degrees, sometimes they will sync back on there own, sometimes not

Does your Haltech have a minimum duty cycle parameter? Or a Integral limit. It may just be winding the target duty cycle down quite negative, then clamping the result to 0. If there were a minimum, it would clamp to that value. Just something to look for.

Now remember from Andre's webinar, where it talked about how cam control was pretty difficult at idle due to low oil pressure, I would not be worried about your idle results.

Next, what happens if you target 1 or 2 (or 5) degrees at 2000 RPM? Will the Haltech hit that? -- if it has an offset, what happens if you increase the integral value? Use the "keep doubling it" technique.

The Haltech does have a minimum duty cycle, but Haltech examples, instructions, and the highest tech that I have talked to so far, all told me that the min max should be no more than 10-15 percent from the steady state. Right now, i have it at Min = 35% Steady = 45% Max=55%... but i have had the range set to 30%-45%-60%, with much worse results, because it tries to use those low duty cycles at High RPM for corrections, and they are not effective. 45%-50% is really where the steady state wants to be with any real oil pressure...

2000 RPM, its ok, it has a tendency to overshoot in that range by 2 degrees or so predictably... this can be tuned around for that specific case, but tuning out the fact that it is overshooting target at low RPM, causes the high RPM to be worse, because over 4000rpm on the way to 7000rpm, the best I could get the CAMS is -2 degrees on a target of 0.5

Adding more I to the equation makes the corrections more frequent and forceful, but makes things worse, because even with my best P setting, half of the corrections at low and high rpm, seem to be away from target, likes it following a slightly different target line.

Even the Haltech rep told me that even on my best runs, with the best AVCS settings I've tested, the PI looks way to busy and never settles on a duty cycle, its always jumping duty cycles and the CAMS are always bouncing 2 degrees or so...

Either way, I cant make big PID changes below 4000 it becomes increasingly difficult to deal with 4000rpm, and the error flips positive to negative, so harsh adjustments go on top of a positive to negative error swing at 4000rpm and causes the CAMS to wobble and never recover, and actually magnify up the RPM range.

re the elite and cam control accuracy - yeah - i know what you mean - i have a 2500 and im trying to get a k20a cam under control - same sort of issues as you - but ive decided to make the pid tables 3d and currently using rpm vs coolant temp (until i wire in oil temp and pressure sensors which are next on the buy list) then i'll convert the pid tables over to oil pressure and oil temp and tune them that way - pretty sure if i change oil weight itll screw it all over as well :\

The elite for me seems to crossover at around 3000ish which is where i was setting the pid / duty etc based off the webinar info which is why i thought of making the tables 3d and doing the tuning at different rpm's etc

I have a nice "idle" pid setup, a niceish idle - 3500rpm pid setup, and im tweaking the 3500-5500rpm one at the moment (pre vtec)

best i can figure - for whatever reason - the haltech ecu doesnt seem to like oil pressure / density changes and gets inaccurate with its control

the reason i say that is *sometimes* its almost perfect cam tracking - and then later at the same rpm and coolant temp its flaky as heck (i'd use other words but im sure i'd get banned heh)

not having access to a dyno is making all these changes take weeks longer than a couple of hours on a dyno would make them but such is life. (life, work, budget for fuel, somewhere i can have an engine pull up to 9000rpm without getting arrested etc etc)

your thread and information has been useful - but i remember reading / hearing somewhere that the pid stuff in the elite is done differently to the pid stuff in the platinum ecu's (i think it was in reference to fuel pid but if the formula used is the same then itll be applied to the cam pid as well)

after following the info in the recent webinar and reading your saga i have *drastically* improved how the car tracked the cam compared to how the tuner gave it back to me - but its nowhere close to tracking within +-1 deg and after vtec crossover it totally loses the plot (probably due to oil pressure change is my guess) its going to take me a while to get this sorted without a dyno and without the oil pressure and temp inputs :\

The elite cam config parameters are - cam angle change speed limit 0-120deg a second, hz, min and max duty cycle and the cam direction (so i guess the elite pid can handle + and - cam angles)

the the tuning params are target angle table, base duty, pid, and long term trim on the base duty (which seems to work pretty well - its down to correcting 0.4% after a few rounds of tweaks to the settings and something it calls a target scalar which is 100% by the time the car hits 60deg coolant temp

And yes - same as you - i swapped to a plugin 2500 to get high speed logging compared to the 0.5hz obd2 slow logging and so i could revert to factory whenever i wanted and not have to hack into the loom to wire in a different brand of ecu

The joys of modified car life eh :)

Best of luck with your saga - if your ecu supports maybe you might want to make your pid tables multi dimensional?

@cbDrift, thank you for the response. I'm sorry to see your are having issues too.. the Elite does have more Params for control... I am missing Long-Term trim and independent control settings... the cam work independently with the PID, but based off of the same parameter inputs... lacking those features definitely make thinks harder for me.

Haltech did email me back this morning and said basically that they were surprised that the Factory ECU actively targets 0 angle desired target, because the Haltech makes the assumption that the CAMS will naturally sit a zero with zero duty cycle... that is just not the case for me, so to prevent the idle wobbles 1-3 degrees with 0% duty at idle from carrying into the PID when the rpms come up... they told me to do what I have been doing, and to target 1 degree everywhere I would otherwise target 0 degrees...

Not a great solution, and that tells me I'm at check mate on the PID settings, and now I'm going to have to make a fake compensatory target path to try to make the system follow the CAM path that I actually want...

I'm think more about what you said about the Oil Pressure and something clicked for me...

At warm idle, my oil pressure is between 15 and 20psi. At high RPM, it is around 100psi, or about 5 or 6 times higher than idle pressure...

The Factory ECU steady states 0 Angle, at Idle, at exactly 9.41% duty on both CAMS. It's stead state is 48% at high rpm. 48/9.41 = 5.1

#1 the Factory ECU can use duty cycle to actively target 0 angles, and probably even small negative target angles. Haltech turns off at 0 target angle

#2 the Factory ECU is using some effective scaling for the duty cycle over RPM (with is directly correlated to Oil Pressure). Haltech has a 1 dimensional steady state, with a single number entry.

These 2, dare I call them FACTS at this point... have been the source of almost all of my issues... Missed Targets, Error Polarity Shift, Oscillations, and Hitting Physical CAM limits.

My email to Haltech:

Ok, I appreciate the time, research, persistence, and patients... That being said, that is not going to work for me. I was already targeting 1 degree at Idle on the first log I ever sent you. It does not hold 1 degree well either, it's happer at 2 degrees, which makes for hard starts and a crappy idle. It looks like I could probably target 2.5 degrees at 6000rpm, and the Haltech will probably get closer to 0, but I can't lose sight of the fact that I am making all sorts of compensations, including compensatory target moves that both limit the range and degrade performance. I have already done many tests of the power vs avcs, and I simply cannot target the optimum curve with the Haltech, because it can't handle it... while the Factory ECU is perfect.

I was never at anytime, prepared to spend $1500 ($1800 with interest on payments), for a step backwards in performance. I appreciate the access to blinding fast data, which has been instrumental in diagnosing the AVCS issues in the Haltech itself, but that is a pleasure I would have not paid so much money for... even though I am capable of tuning this thing myself now... When I purchased you ECM, I also paid over $600 to get it tuned, and now I'm stuck.

This is not my fault, my car is listed as compatible, the mechanical and electrical components are solid and responsive, and most importantly all FACTORY in regards to the AVCS system. You have told me to upgrade to an ELITE 2500...

#1. I didn't read any thing in that suggestion that alludes to the fact that you expect nothing other than me forking over another $2000. We are starting to talk about sums of money that people are killing eachother over in the streets...

#2. You might want to go back to my thread on HP Academy, there was 1 person already this morning complaining about VVT control on his new Elite 2500... and although Andre did say he go results the were acceptable for him... he also said that he got no response from Haltech on his issues.

Speaking about Andre, here are a couple of things that have stuckout to me that he has said or done which are relevant here: --- at time marker 34:36, he says "Now with CAM Control, Boost Control, doesn't really matter, whatever we're targeting we also want to make sure that the values that we target, we can actually allow the system to overshoot on BOTH sides, this is relevant for cam control particularly.."

[url=] --- Notice that he has set his Frequency to 100hz!!! He is also only demoing 1 CAM shaft.... I think I have an idea why that is... 100hz is slow and working on 1 CAM is easier... it likely would have been a terrible demo otherwise... because he switches cars and uses a Motec in the paid classes

I would like to return and have a refund now, if you will not patch, because I can prove now that your Haltech Platinum Pro Plug-N-Play is not compatible with my JDM EJ205 MY04, even though it is plainly listed as compatible with a basemap on your website. Again, the entire AVCS system... Solenoids, CAMS, CAM Sprockets, CAM Sensors, Oil Supply Lines, everything is stock and functioning exactly as the Factory ECU anticipates.

Response from Haltech:

Hello again,

I will keep this short since you are still hung up on this being a Haltech issue, despite no one else having the same issue out of the 10,000+ units sold over the past 10 years.

This is a tuning issue, simple as that. If you do not believe that, that is fine, but be aware you are the odd man out here.

My Retort:

So, can you tell me how many units that you have sold, that are installed on JDM EJ205 or JDM EJ207, with -10 degree physical capability? I will be VERY interested in speaking with them. Likely their AVCS is trashy, and they don't know it, because 99/100 tuners are just gonna tune around it, you should know this....

Also, are you confident that there is any duty cycle range and/or PID setting that I can input that will make your Haltech actually achieve 0 degrees at 0 degree target, at idle oil pressure? I don't believe that to be possible, because I did try literally everything... and if any of the big brains at your office thought otherwise, you would have told me already, instead of telling me to change my target to compensate...

Go back to the people you paid to write the software and tell them that 0 angle is not always 0 physical with 0 duty, and you need the ECU to do overshoot math on target 0 when the cams go negative... It is impossible with 0 duty cycle, and there is nothing you can say to me to argue that because at that point you are arguing with MATH and Data Logs, not me...

Also again... you and I both should understand that the PID is basically NULL at 0 target angle. The factory ECU is not. How in the world could that be tuned around???

As per your reference to refunding the "cost", I would like to be clear... as I do own a business myself... are you speaking of refunding YOUR cost on the unit? or are you refunding the full price, equates to the cost to me? $1500

Also, this is at least the 3rd time i've taken a shot on my intelligence/abilities, and ok, that's fair you guys are huge, have a big name, lots of money and man hours for research... all that brain power over there with a huge sponsored network. Put your money where your mouth is and call up your favorite sponsored tuners, and see if they can tune this PID better than I have... I will pay the tuner if you are right... but if you are wrong, then you pay the tuner.

Response from Haltech:

Hello again,

I am not arguing any more over this.

I am offering a refund of what you paid. 1,519$. Simple as that.

If you want to do that, fill out the link and send the ECU in with all the paperwork you have for it.

If you do not want to do that, I have done all I can do to help and there is nothing else I can do for you.


Response to that from me:

It was done before you replied... I will be packing everything in the original box that I still have (which looks like it was made for an Elite, the ECU doesnt fit in the foam cutout)... and sending it back.

My Conclusion:

Haltech Platinum Pro cannot cope with CAM systems that have Negative Advance Range (or retard range), at least when combined with CAMS that do not exactly home to 0 degrees with 0% duty cycle.

Haltech has no interest in patching the Platinum Pro, which is listed as fully compatible with basemap, on the Platinum Pro spec sheet. Likely because its like 10yrs old.

Haltech Elite series is probably better at AVCS control, as it has many more control fields, but I highly suspect that the 0 angle issue is built into the PID the same way.

If your CAMS don't Home themselves to 0 degrees at 0% duty cycle, yet your Factory ECU control is perfect... hopefully you read this post before spending $2000 on an "upgrade"

Attached Files

One last thing that I did not have the ability to test, and did not highlight on to keep the information palletable...

With the Haltech, my engine was having random shutoffs at WOT @6000rpm or so... Nobody at Haltech or anywhere else could tell me why... the only clue is that my Voltage was dropping to 12.7V... which is below the 13V threshold that the ECU uses to determine Idle vs Key-On... the ECU was thinking I turned the key off back at WOT at 6000+rpm, and reacted as such... very dangerous.

When measuring the amp loads on the AVCS Solenoids on the Factory ECU... the Factory System was drawing 644ma per Solenoid... That equates [.644A(2 CAMS)(13v)=16.75 Watts of total power draw at peak... I suspect that with the degree of error the Haltech is fighting itself with, the current draw is MUCH higher, as evidenced by the overactive duty calls, and was actually depleting my 12 rail... kinda like sticking a huge video card in a computer with a small power supply...

Since I'm sending it back, so I won't be testing further, but outside of any other evidence, and the fact that the Factory ECU never shutoff like that even once... then I feel safe to ASSUME that the overactive solenoid calls from Haltech were the causation.

Sorry to hear that it doesn't seem to be solvable for you. Happy to hear you can recover your hardware costs by refund. And youve learned a lot right? - keep telling yourself the good things :)

Your off the cuff calc about the duty cycle difference and oil pressure difference gives me hope I'm heading in the right direction for this with the 3d tables for the pid settings - cheers for that bit of info :)

Cant say i dislike my ecu at all - it does have a few quirks that i put down to me not knowing enough about it yet - and the community here has a lot of very helpful knowledge for my progress so i'll be keeping this ecu for as long as i have the car (which may turn out to be longer than i thought as the price is going up on it at the moment - yay - first car that has gone up in price for me lol - another reason to keep things revertible)

Best of luck with your next ecu choice, sounds like you need an off the record talk to andre / other good tuners about what ecu fills all the tick boxes and accuracy you are after, or reflash the factory ecu and get an external datalogger of some sort that will give you the high speed data stream you originally wanted :)

@cbDrift... Thank you sir... I'm really sorry that it didn't work out for me either... I liked everything else about the Haltech... I did have numerous other little issues that got sorted well enough, but properly functioning AVCS is hardline in the sand for me... The AVCS system on the JDM Subaru EJ20 never made it here to America... By the time AVCS was implemented for USDM, it was only for the and Drive-by-Wire EJ25s

Ok... if you have read this far, you are either curious, or have the same issue...

I have sent back my Haltech for refund... but I did sent 1 last message, just something that popped up in my head..

easiest solution...

make a Y-Cable

SIDE A - ECU Harness


SIDE C - INPUT ONLY+Power(input+output AVCS Control)

You just need doubled wires, deleted pins, 1 Female connector set, 2 Male connector set.

iWire will prolly do u less than $100 I'll test it for free.

If it works you keep my $1500?

Just trying to be constructive...

If anyone else is interested...

Here is some deeper info on AVCS Cam control and tuning for Subaru... Version 2004-2006 USDM Subaru STi, 2001-2006 JDM STi, and 2001-2006 JDM WRXs w/ AVCS, be aware that the center physical position is different! You need a PID that either knows that, or will allow you to input the actual PHYSICAL Range of those early AVCS CAM SPROCKETS, which go -10 to 55 degrees. Haltech Platinum for sure, and maybe Elite are not equipped to handle that difference... They anticipate 0 to 50 degree range, centered on 25 degrees... The years of Subaru mentioned above, at -10 to 55 degrees, have a center position of 22.5 degrees.

If you have a Haltech Platinum or Elite on your early Single AVCS, check your CAM Position logs and make sure you do not see a constant +/-2.5 degree error... That will have you or your customer's cams are eventually going to swing out of control during normal driving conditions.

Here is some more info from NASIOC, LINK HERE:


Originally Posted by NSFW View Post

As far as I can tell, the "center" PWM value doesn't target any particular amount of advance, but rather it targets zero change of advance. Small deviations from that center will cause the amount of advance to increase or decrease, and the ECU returns to the "center" value when the desired advance is achieved. (Or desired retard, for the exhaust cams.)

I will confess to not logging it enough to be absolutely certain of that, but I made a standalone exhaust AVCS controller for my single-AVCS car based on that assumption, and it works. I got the idea from looking at an exhaust AVCS log from an 08 STI. The "center" values moves around over time but it doesn't seem to correlate with anything obvious like RPM.

The factory tune for my wife's 2009 LGT has an island of 40 degrees of intake advance.

The exhaust AVCS pulley that I mentioned is a paperweight on my desk at work, but I'll get a picture of it on Monday.

I missed this reply but you are almost entirely correct. The center value targets zero change of advance AND a return to a zero position on the cam. I've had to log this to tune cam control on a MoTeC system and confirm this is how it works.If you set duty for 100% then return to the center PWM value, you will see a slow creep from max advance back to the center advance value (i.e. zero position). On the 04-06 EJ257, this zero position is below the half-way point of the advance range. On the pre-2008 EJ207, this is almost right @ 25 deg (the halfway point).To reduce advance, the ECU doesn't just return to the center value because that would pull the advance back down very slowly. It will undershoot, going below center PWM value, respecting PID parameters within the ECU itself. Boost control and cam control are very similar in the Subaru ECU.