' Ethanol sensor firmware showing proper readings'
Given that the very common fuel flex sensor operations are known, VEMS should have a any trim for fuel, ignition and boost based on actual ethanol content (current way is to use a form of digital in wheel speed, which is too crude).
Many customers are extremely interested in this feature so it should be implemented as actual Ethanol fuel content adjustments.
MAT / TPS ignition retard should be MAP based, or configurable ( MAP or TPS )
Agreed, working on it (more work in VemsTune than in firmware).
TPS makes sense for engines that might not have MAP sensor at all. (ITB normally aspirated).
MAP is usually better and easier to tune.
So choosable is best.
I´d like to check how this is going on? - I meant the MAT/MAP ignition retard - Will this ever get implemented?
Input for Coolant temp and air temp can be selected from non pullup analog inputs - How?
This allows parallel installations to be done more easily.
ECU is setup for Cam sync but still runs if camsync fails.
- currently (~1.1.95 .. 1.1.96), with coil-type and extrapulse triggers, ignition continues even if camsync stops (just like the factory audi AAN)
- but ignition stops if measured camsync pos is outside the configured sectrig min angle and sectrig max angle, and event at bad trigger position=disable injection (which is not recommended unless one really knows what he is doing. The recommended default is "just show").
- with missing tooth (like 60-2) ignition stops if camsync fails
- should be improved to be user-definable behavior
This is easily handled by allowing configuration of outputs (ignition) in the dual config if camsync fails.
- no, not with the ign-outputs, but use sparkcut-revlimit !
- ign-outputs must not be changed with table-switching (because ign-outputs could possibly stuck in active state). But disabling ign by sparkcut-revlimit=0 is allowed.
Engine operations are not affected by the loss of camsync therefore.
- currently (1.1.96) the extrapulse seems to be the most userfriendly (like 120, 120, 120, 40, 80, 120, 120 campattern or 30, 30, 10,20, 30, 30, 30, 30, 30, 30, 30, 30, 30 crankpattern), because (while also supporting camshaft-angle-control) loss-of-camsync can be configured to either run or stop.
Right now fuelcut makes idle catch tuning tricky on some engines. How about a 'primepulse on fuel resume if TPS below IAC threshold, RPM falling, and fuelcut active'? Or something similar that allows for reloading the wall film when leaving fuelcut and descending quickly (out of gear) toward idle. In absence of proper X-tau some form of wall wetting would help with fuelcut recovery. Right now the only obvious solution is to richen the bottom row of the VE table and let EGOC take care of fixing those cells when cruising in those ranges. Even just a generic percentage of pulse width to add on fuelcut resume would work for most situations that I can think of, bonus points for having it scale against RPM or RPM drop/sec in some way.
camsync right at the missing tooth
sometimes before, sometimes after tooth0. (this is currently not allowed).
Especially important if cam angle is getting measured between 355-366 with a missing tooth wheel. Some BMW engines have the cam signal right in the missing tooth, this is a installation of the cam problem so some might trigger on one phase and some other ones on the other phase as well as some hopping between phases (which I have gotten, had to run dual out to solve).
Possible solution
- arbitrary internal camsyncpulse delay of X primarytrigger pulses
- i.e it sees the signal but waits to report it for 5 primary teeth or similar, VR sensor is used in this case and will be onwards
- yes, the proposed sheme makes sense. The other method would be similar to the "measure tooth" concept (used for the exhaust and intake camshaft-angle-control, but for the camsync it would be more complex internally and would require much care and intensive benchtesting of all trigger-setups at all conditions)
Idle fuel/ignition map.
Something like a 6x6 map that only is activated during idle condition (below rpm, below tps)
Y axis can be MAP or Idle control duty cycle, selectable between each no matter if main strategy is alpha-n or speed density
There is a VE(MAP,RPM) table. Splitting out a corner would add complications and worse, transients.
- However, using different axis in the different tables: VE(TPS, RPM) at the same time as multiplier(MAP, RPM) might makes sense (and it is possible already, right?)
- Sometimes ignition idle requirement is nowhere near what is needed at the same manifold pressure and engine speed.
This is done to get an even steadier idle without fluctations as well as low engine speed low throttle conditions which may require different ignition and fuel.
VE value resolution increase
At least a half a point or more
- 88-89 becomes 88.0 , 88.5 , 89.0
- DONE: 176, 177, 178
- just half reqfuel (you can tweak VT to display 88.5 instead of 177, but now much use).
Mass fuel option fuel table.
Ideally 0-Xms opening time curve that represents volume
multiplied by a factor for fuel density. Allow addition of fuel temperature compensation from analog input.
- anytrim already allows fuel pw compensation based on analog input
Especially important for low resolution pulsewidth when flow is non linear to have the curve and massive injectors.
Ecu then chooses the appropriate pulsewidth based on the curve from the mass wanted from the fuel table.
Anytrim by TPS
Can this be implemented as an option for Anytrim 1 and 3
Anytrim 3d
Allows 2 axis to be choosen from any analog channel at least and it´s axis based on that channel , preferably any reported channel. Would allow custom function tables whose effect can be any of the current functions or new ones added.
.. Yes this would be nice / Erikk
Improved boost control
Include the option for Secondary PWM Table Absolute as the base duty cycle table for the main boost control function.
So boost control would work so
DC table (kpa, rpm) + anytrim function + gearDCtable + PID = BoostDC
Then target can be altered by anytrim and TPS and gear table.
I believe this would give far improved targetting with high variances possible without having crazy PID values.
The tuning would be done without PID to reach the correct boost (kpa in the DCTable) in all rpms and alterations for various gears if needed.
.. New boost control strategy is under development / Erikk
New idea for boost control (I have brought it up on the IRC already before) for highly improved targetting and converting the whole system into targetting, would of course work in simple style still.
New tables:
DCref table,
Y axis : boost target
X axis : rpm
P_table :
Y axis : kpa error , target - map
X axis : rpm
Currently we have targetting based on
Gear, TPS and various other things. Irrespective of where the target comes from improved accuracy in getting to the target is needed when the boost target can vary from 150kpa to 300kpa or when wastegates have leaks or simply don´t behave smoothly or linearly.
My suggestion is that the user completes a 3d table which acts as the base DC for each scenario, i.e boost target and current engine speed, the way they fill it in is by adjusting the target and then adjust the DC "curve" throughout the engine speed range to get there or at least as very close as possible.
This by itself would yield probably 95% success rate in targetting later down the road for the user.
The PID then needs to act to finalize the DC%.
The best way I can think of it is rpm and error based 3d table which would allow the user to get the best possible control over correction at both the amount of error (unlinear P term at X rpm) as well as unlinear at Y error amount. So that absolute dc control is available and this should raise targetting succes to near 100% if done right.
I and D same as before, the variable P term and varying DCref table cover almost absolutely every scenario possible in terms of hitting the target.
- New boostcontrol is already being developed, should be here quite soon / Erikk
- to avoid P depending on the distance to the set point which is to rally (kPa error), one may add a feedforward term which is roughly the command which allows to steady at the set point. However PID terms could be scheduled by rpm /fphil
Antilag by Idle control valve
Would it be possible to add the function to run a specific idle control duty cycle while under antilag, thus acting as ALS valve.
.. Already implented, 'ALS Iac position' in the ALS menu / Erikk
Thanks for the heads up, - Gunni
A - B config
The current implementation I feel is wasting space by having absolutely EVERYTHING in each config.
My suggestion would be to follow the Pectel way.
Config swabbable things are things like
VE table, Ign table, Lambda table, boost targetting(gears, speed or whatever), variable cam target tables, Als configurables like rpm, duty cycles and such , not output pins or input pins.
Everything that is a fixed constant like ignition trigger settings, inputs and outputs wouldn´t change,
I believe this should free up some map space and might allow 3 configs to be swappable instead of 2.
Some thougts on accel enrichment and deccel enleanment
I would propose a 3d table that has
X axis = dTPS% / 100ms
Y axis = RPM
Effectively combining the two curves available now.
Added addition to the 3d table is the option of having negative values on the X axis. Therefor allowing specific decel enleanment which would get subtracted from the pulsewidth.
The two values closest to the 0 would represent the deadband where fuel addition/reduction is OFF and closed loop and other things are active.
In addition the Cold multiplication factor is replaced by the warmup table effectively.
Below is a sample table
closed loop lambda EGO control
is OFF if lambda is > X Lambda
if OFF is lambda is < Y Lambda
These being adjustable if they are all ready in the firmware.
Allowing control over when to stop closed loop from adjusting PW when Lambda is outside certain values. EGO control is then 100%
MAP CORR is TPS CORR above X kpa, on some vehicles with MAP/RPM table there will be a discrepancy between the same KPA value at different throttle angles. Since MAP CORR is there it shouldn´t be difficult to turn that into TPS CORR above some kpa value
Fuel injection timing needs a Y axis that represents load , either TPS or MAP based on load control selected. RPM only is far from correct, then you also have variable valve controls that can effect the timing requirements.