GenBoard/UnderDevelopment/FirmWare/ConfigRelated (2005-09-28 20:33:14)

Config and tables related subpage of GenBoard/UnderDevelopment/FirmWare

More bins

upto 16x16 is possible, (14x16 or 15x15 requires no MegaTune changes) but testing and MegaTune support is needed

With the

the number of required bins is surprisingly low.

For marketing reasons 16x12 or even 16x16 might worth to consider. This is MegaTune configuration issue, though the firmware also needs to be recompiled and tested.

It is possible to approximate the ideal maps beyond measure errors with 7x6 (for a high-boost engine with many bumps in the torque curve), or even just a tiny 4x4 for the lambda-target (millions of engines with NBO2 use 2x2 or smaller), but:


Injection timing angle when the injection firing ends (0-720 deg) from the TDC, at every RPM bins (only depends on RPM, not MAP).

fixed injection start angle is useless -Jörgen

I mean programmable injection timing according to the RPM bins -Fero


MegaTune is limited, 1/x conversion is not possible

Would be needed for lambdatarget=>ECU.

lambdacorrinternal_lcorr=lambdacorr+200lambdameaning65535/internal_lcorroptimal megatune value
0200 256/200 = 1.28 lean327.68255
56256 256/256 =1.00 stoich256 ? eg. 183
255455 256/455=0.563 rich 144.03 0 or higher, eg. 71

The recommendation for the conversion involves an offset of 72 or 73:


Why matfactor.c and thermfactor.c files (and also inc files) are 'similars' in recent firmwares ?

Should it be so that airdenfactor.c should be similar with matfactor.c and not thermfactor.c ?

At least MSTools, Easytherm etc. generates matfactor and airdenfactor files from same air temp sensor data and thermfactor contains settings for coolant thermistor sensor or I'm missing something ?

Extract from fuelcalc.c

/***************************************************************************/

/* calc parameters */

/***************************************************************************/

void calc_parameters(void) {

uint8_t t;

kpafill();

// Coolant temperature in degrees F + 40

engine.coolant = PRG_RDB(&THERMFACTOR[sensors8(CLT)]);

// Manifold temperature in degrees F + 40

engine.mat = PRG_RDB(&MATFACTOR[sensors8(MAT)]);

// Air Density Correction Factor

t = PRG_RDB(&AIRDENFACTOR[sensors8(MAT)]);

// This is a hack! When idling for a long time, the intake air temperature usually rises

// resulting in the intake air to be warm. When it gets too warm, the idling will be rough.

// By tricking the msavr to think that the air ain't that hot, it won't lean the mixture

// at idle rpm.

// Suggested value of airden_ignore=62

Do this above mentioned matter something 'to do' with this 'idling heat soak' hack ?

Blah - I don't like hacks :)