Hi,
I installed VEMS (Firmware 1.0.73) in my 1985 Mercedes 190E 2.3-16v last summer. Car ran pretty well, particularly when compared to the failing CIS-E system that was in it. I half-assed a few things (TPS and Idle control) and just recently installed a real TPS sensor and the hardware for idle control. The new TPS works great but I am having some issues with setting up my idle control valve.
The valve is a 3 wire dual solenoid bosch unit that came stock on the car. I think my main issue is that I may have wired it up improperly. I put it on 2 extra ignition drivers rather than the spare injector ports. I thought this would be a none issue, after i realized what I did, because I can tell VEMS to run idle off ignition drivers. Is this ok? Everything is already all buttoned up so I would rather not dive into the wiring again.
Do the ignition drivers need to be enabled like the injector drivers do? With injector drivers you go to Settings -> injector outputs and enable the mask for the pin you want. This doesn't seem to exist in the ignition settings.
Thanks,
Jim
No you just select the output in the Idle control valve section or output channel section.
I have ran boost control solenoid of ignition output and it worked like a charm.
Excellent.
I have been searching and reading up and I found a few things about the PWM frequency and using ports i5 and i6. Seems to have helped as there is much more action in the idle section of the realtime display in megatune. The car will idle just fine when it is warm, but when it is cold it likes to stall and idle very low (600-800 rpm). The car has been warm pretty much all day so Ill have to test that tomorrow or tonight. I am also thinking the throttle plate might be too closed, but I went to try and adjust it today and my damn hood wouldn't open!! Going to have to figure that one out too...
Thanks for the quick reply,
Jim
i5 and i6 = inverted signal from channel 5 and 6.
You should never have to use inverted functionality.
Your reference idle PWM table must be set correctly for this to work. Set your integral decrease/increase to 0 and work from there (disabled PID control). Check "IAC int" for deviation from optimal opening, minimize that by changing the table.
Yeah, I was able to take it for a quick test drive and nothing changed when cold. Ill set the outputs back to 5 and 6.
Where do I find the IAC int?
Sorry, I am still very new to VEMS, I understand most of the conceptual stuff, but the settings and whatnot are still all new to me.
Thanks,
Jim
Any gauge in VemsTune can be changed to monitor what you want, in this case change them to monitor IAC values. The dutycycle and integral values are what you need. The dutycycle is actual % opening of the valve, the integral is how far off from target rpm you are.
Go through all the IAC setting dialogs to get familiar with the concepts and words used.
I am still on megatune, but it still has the IAC int gauge. However, this stays pegged at -128 cold or warm, off idle or on idle, and with or without numbers in the integral values.
I would assume this has to be a set up issue... I will get some screen shots of all my idle stuff and post them up in a bit.
Jim
I just played with it a little and here is what I found:
If I zero the increase decrease limit nothing will happen on the IAC int gauge no matter what. With my old values in it, it would flip between -127 and +127. I lowered my decrease limit and put a value of 1 in my idle table. Then the idle int gauge went to -73. I assume this is an indication that my throttle plate needs some serious adjusting as the idle valve cannot compensate for it... Hopefully Ill get some time tomorrow to tune this a bit.
Here are the screen shots of the idle settings:
(http://i977.photobucket.com/albums/ae260/benzmac16v/IdleSettings.jpg)
(http://i977.photobucket.com/albums/ae260/benzmac16v/IdleSettings-PID.jpg)
(http://i977.photobucket.com/albums/ae260/benzmac16v/IdleControlPWMRef.jpg)
(http://i977.photobucket.com/albums/ae260/benzmac16v/AllOutputsPage2.jpg)
Thanks,
Jim
Finally got my hood open and some work done today. Found out I wasn't even powering the control valve. I had it hooked up to a fuse that was powered by a relay and the relay was off... GENIUS! Until I can figure out how to control that relay (have an email out to the guy who built it) I am going to test it jumped.
It seemed to start reacting, but I couldn't get it to work right (it is working though) as the engine will race. It seems I may have wired it up backwards? I didn't think this was possible, but I cannot swap the outputs, when I do it will change the outputs... The idle valve is on ignition 5 and 6, if I try to order it to 6 being the "1st" coil and the 5 as the second it will make the first 6 and the second 7. This is somewhat aggravating... but does it even matter?
Jim
It shouldnt matter as you can invert the primary output and the opposite action will occur to what you currently have.
The idle controller will take a fair amount of setting up, the chances of the PID setting being anything close to what you need are very low indeed.
I got my settings from a guy in Sweden who hops up these 190Es and EFIs them with VEMS. I knew it wouldn't be plug and play (murphy's law pretty much defines my life). Not really sure I wanted it to be perfect plug and play anyway... I wouldn't really know whats going on if nothing went wrong.
At any rate, I have some strange things going on... Something is just sending my idle controller to its limits. When I set it to channels 5 and 6 it surges (sometimes even going past my overrun, other times hitting the overrun limit and bouncing back and forth). If I invert it it will turn off (a closed TB will make it stall and wont start without some applied throttle). Both of these cases hold true no matter what I enter in the reference table.
I even tried setting the I and D values to 1 and the P value to 100 just to see if I could get it to surge back and forth around the idle value I wanted but I get nothing. Just holds hard on the extreme values...
Jim
Quote from: Benzmac16v on April 27, 2010, 09:00:49 AMIf I zero the increase decrease limit nothing will happen on the IAC int gauge no matter what.
That's the point. It disables the PID controller so the valve runs only on what you input in the reference table (% vs coolant temp).
The increase/decrease integral (aka "IAC int") is the max/min adjustment that the PID controller can push the valve away from the reference table to maintain the target idle rpm. That is why you first disable the PID controller and tune the reference table roughly. When you later enable the PID controller the "IAC int" will show you how far off the reference table you are.
If you have a negative "IAC int" it means the controller is closing the valve more than what the reference table dictates for the current coolant temperature.
ahhh ok, I wasn't quite sure what the IAC int actually represented.
I have been playing with it and the surging has stopped. Now that I know what the IAC value actually means I will hopefully be able to get it working.
So, zero the increase/decrease, play with the reference table until it idles at the correct rpm per coolant temp. Then put values back in to re-enable PID control. Then use the PID values to make the idle stabilize quick and doesn't bounce.
Jim
OK, again, still playing with it all.
What are the 'pwm frequency' and 'max steps to extend' values? I have done plenty of motor control before (although not with anything as involved as an ICE is, I have also done some PID control before as well, so I get what I am trying to do, vems is just still new to me) and generally a higher pwm frequency is 'better' assuming your controller support the resolution needed at that speed. But really, so long as your frequency is fast enough to make the coil have an averaging effect to the voltage and isn't reacting to individual pulses you are good.
However, when I play with these numbers I can change what is going on and it is somewhat confusing as the frequency, so long as it is fast enough, shouldn't be screwing with how the idle performs...
Jim
There are a couple of pages in the Wiki at vems.hu written about it, I collected some random data but there is a PID tuning guide too:
http://www.vems.hu/wiki/index.php?page=MembersPage%2FMattiasSandgren%2FIdleValveTuningGuide
http://www.vems.hu/wiki/index.php?page=PIDControlTuning
The PWM frequency is a drop-down menu if you upgrade to 1.1.7x firmware, much easier to understand. '5' according to the table on my page is about 100 Hz. The 3-pin valves seem to use 50 Hz in their standard application, others are different.
The 'max steps to extend' must be set to 255 (max) when using solenoids to avoid limiting the motion. This is commonly used for stepper motors so the motor doesn't step out of bounds.
Do note that the PWM signal was not really perfect until later 1.1.x firmware, which means idle control is improved if you upgrade - hopefully you will notice this.
I will make an effort to update the "F1 for help" dialogs, they are messed up right now since it has been split into four separate dialogs (used to be two, maybe three).
I think you could ask for help on this - if needs be we could make a section in here to place information/instructions, then it would be a case of cutting the words from here and pasting them into the help files...
I wrote a bunch earlier, so I'll start by just moving it to the correct dialog. Then I'll input new things from the wiki links in my earlier post (bottom first page in this thread).
You guys are awesome!
I got it working decent enough for hot temps (>70°C). It is a little over damped but that is ok for now as I do not get those annoying drops that like to stall the car when I take my foot off the pedal.
It was idling higher than I thought it should be when I enabled PID and the IAC int value was very negative. It was idling about 50-150rpm higher than without PID control. The engine temp may have increased. I assume that VEMS will scale the iacv % in between the temp ranges. But does it do this after your peak temp? These cars apparently run hot... VEMS says its about 100°C, stock gauge says 80°C, and I double check with infrared and a probe on the tstat housing which both said about 100°C. I haven't tuned the cell before my highest temp and it is lower, so if VEMS continues to scale it would have been opening my iacv.
I will upgrade eventually, but I am trying to take it slow and learn one thing at a time. I looked into it (and tried it) a while ago, but there wasn't an easy way to import my settings and maps from MS to VEMSTune (at least that I could find) so I just gave up and figured my problems were more my lack of understanding rather than an older firmware version (which was true). But I also know that a lot of the code got much better and there are a few things worth upgrading for (idle, acceleration enrich) but ill get there.
Thanks,
Jim
I think I have it all working now, Thank you guys very much. It is very stable now. The IAC INT is still very large, around 100-120. The odd thing about it (at least to me) is that it doesn't really move much, it only changes when I enter idle. It does not continue to react with my idle speed. When I had the PI set too high and the idle would oscillate, the IAC INT stayed constant. Is that normal behavior?
Jim
Lower the integral decrease and increase limits, the close IACint is to 0 the faster it will react.
If the "IAC int" is far from 0, then the reference table is not setup correctly.
When the table is spot on, you have "IAC int" = 0, in an ideal world.
This is not so, it's better to have a negative "IAC int" so that the integral closes the valve slightly to maintain the idle rpm, making it stronger instead of dropping below the target rpm before the algorithm takes over.
Jim : The IAC integral is only supposed to do any work when you are below the "TPS idle threshold", it's supposed to only change/work when you're at idle.
I know it should only change when the car is idling. However, it only changes once when it enters idle. Even though the idle will fluctuate slightly. Even if I increase the PI values to make the system unstable, it still will only update the IAC INT once.
I am fairly confident that I have a good reference table (at least when warm) because it idles very well, and idles slightly higher than my target if I disable PID control.
Also, my increase decrease limits are very low. Increase is at 20 and decrease is at 15.
Jim
I think you should use a lot higher limits for increase/decrease, the integral is most likely limited.
Ok, so I have continued playing and found some odd behavior.
Basically, if I jack up the number in my ref table (to say, 70%) and put my inc/dec limits to 255, when I enter idle it will bounce a lot, but the IAC int number will decrease and close in on zero, the idle will also begin to settle.
So I have the video attached of the megatune output. I also have the log files.
Video: http://www.youtube.com/watch?v=P2r8MZ68ZE0 *EDIT* Youtube butchered the quality, but the top left gauge is RPM, bottom right is IAC int. Ill see if I cannot make it better... should be good now
Log of the 'Good' IAC int
http://www.rpi.edu/~smithj16/Car%20Vids/GoodIACint.xls
Here is the log of the, in my opinion, good idle
http://www.rpi.edu/~smithj16/Car%20Vids/goodIdle.xls
Tell me what you think,
Jim
I have not looked at your logs.
Don't use ref dc values that don't make sense. We/you don't have any idea of the operating range of the valve. Clear the PID regulator so that it doesn't work and create a good ref dc table that puts it at 200 rpm above what you want at each coolant temp with all you normally have turned on. Then you can adjust the rest.
Ideally we would have a separate ignition advance for just idle, so that the main ignition table doesn't affect the idle. For now, just make sure you have the same advance at all idle load sites - that helps a lot with getting this adjusted.
Well it is a gradual thing. I used 70 only because it makes it so clear. If I just increase the ref value little by little the IAC int gets 'better'. A value of about 36 works very good, but I get an IAC int of about 110-120.
Jim