I have been looking at the IAC functions on my VEMS over the last couple of days and have found a potential problem with some types of stepper.
During the power-up cycle, the stepper is driven hard against the "IAC closed" end stops to reference it, and then moved to the required position for starting. This is fine when my Lucas stepper motor is sat on the bench with a G clamp acting as an end stop, but the process doesn't work well when the stepper is in the car because the stepper pin is driven hard into a tapered port and then it sometimes sticks here instead of moving to the correct starting position. (In this case, the car won't start without a lot of throttle applied) This then causes the stepper to be completely out of sync with where the ECU thinks it should be, meaning the car is difficult to do anything with because it isn't consistent from run to run.
I have a solution to this - the stepper can also be referenced by driving against the "IAC fully open" end stop - this is a much better defined position for the Lucas stepper - and it seems like it will make the main problem go away.
In order to test my theory, I reversed the step sequence, ensured all forms of IAC PID controllers were still disabled and changed the stepper reference position table to work in reverse. It confirmed my theory that the Lucas stepper can't accurately be referenced from the closed position, but it can be referenced properly from the fully open position.
Is there a way of implementing this in VEMS properly without me having to tell lies to it? I would like to get the PID controller to operate again, and right now it will be very confused.
I would prefer an option in the configuration to allow me to specify which end stop should be used to reference the stepper.