GenBoard/UnderDevelopment/Firmware/RpmDependentDwell (2025-10-03 12:15:26)

See [anytrim]


Fw 1.2.46 new feature: enlarge dwell progressively at low RPM, under 3000 RPM or under 6000 RPM (or anywhere between, 16 configurable values in 200 RPM steps). This allows longer dwell during idle and max dwell at cranking when there is no danger of overheating coils anyway. Some low-tech distributer veteran engines depend on this. Can be useful, and the +24% or even upto +51% spark energy at cranking unlikely to hurt if dwell is not severely misconfigured for the coil in use.

config.ign_dwellmap special values: 240..255

config.ign_dwellmap; // added MAPdwell slope

Some reasonable config.ign_dwellmap values:

<PRE>

* 40 => 70..110 kPa

* 20 => 70..150 kPa

* 13 => 70..193 kPa

* 12 => 70..203 kPa

* 11 => 70..215 kPa

* 10 => 70..230 kPa

* 9 => 70..248 kPa

* 8 => 70..270 kPa

* 7 => 70..299 kPa (most reasonable ?)

* 6 => 70..337 kPa

* 5 => 70..390 kPa

</PRE>


DROPPED (anytrim special values):

Note that some combinations can be configured, but not normally configured because meaningless:


Gory details... to check config and/or VemsTune ini based on this, just in case

So Please note if( trimconfig >= 0x31 && trimconfig < 0x36) ... have special scaling above 0x31, and the lambda - lambda target calculation has some special cases for sparkcut, fuelcut and similar special modes.

The anytrim_type config bits are (roughly) the following:

<PRE>

  1. define ANYTRIM_PW 0 // 0
  2. define ANYTRIM_LAMBDA 16 // 1
  3. define ANYTRIM_SPARK 32 // 2
  4. define ANYTRIM_CRANK 48 // 3
  5. define ANYTRIM_BOOST_MUL 64 // 4
  6. define ANYTRIM_BOOST_ADD 80 // 5
  7. define ANYTRIM_BOOST_REF_ADD 96 // 6
  8. define ANYTRIM_LAUNCH 128 // 8
  9. define ANYTRIM_SOFTCUT 144 // 9 .. only used by partial fuelcut function
  10. define ANYTRIM_REVLIMIT 160 // 10 .. all rev limiters hard and soft except partial fuelcut limit

// Anytrim Types NOT ALL FUNCTIONS LISTED!!!

uint8_t anytrim1_type; // anytrim 1 bit 7:4 mode:bit7:4 0=fueltrim, 1=lambdatrim, 3=crank_pw adjust, 8=launch, F=disable;

uint8_t anytrim2_type; // anytrim 2 mode:bit7:4 0=fueltrim, 1=lambdatrim, 3=crank_pw adjust, 4=boost target trim mult, 5=boost target trim add, 6=boost ref add, F=disable;

uint8_t anytrim3_type; // anytrim 3 mode:bit7:4 1=lambdatrim, 2=spark adjust, 3=crank_pw adjust, 9=softcut, F=disable;

uint8_t anytrim4_type; // anytrim 4 mode:bit7:4 0=fueltrim, 1=lambdatrim, 3=crank_pw adjust, 4=boost target trim mult, 5=boost target trim add, 6=boost ref add, F=disable;

uint8_t anytrim5_type; // anytrim 5 mode:bit7:4 0=fueltrim, 1=lambdatrim, 3=crank_pw adjust, 4=boost target trim mult, 5=boost target trim add, 6=boost ref add, F=disable;

uint8_t anytrim4_array[17]; // anytrim4 values

uint8_t anytrim5_array[17]; // anytrim5 values

</PRE>


Either Anytrim 1, Anytrim 2 or Anytrim 3 (or Anytrim4 or Anytrim 5 ) but:

Lambda target, Launch RPM and Cranking pulsewidth can be trimmed by only one Anytrim control at the same time