GenBoard/UnderDevelopment/FirmwareChanges (2009-03-10 01:16:01)

This page lists important changes to the firmware. Check this before downloading a firmware that is meant for production

IMPORTANT: when uploading new firmware to a controller (even with a motronic55 connector!), to prevent filling cylinders with fuel or possible igncoil or igndriver damage:

Developers: please update GenBoard/Manual matrix when configuration semantics change. Ask on that page (in the relevant matrix element; make a line if necessary and start to put in links you find) for questions about config variables.

You can report problems/bugs on this page: IssueReports


Users upgrading to 1.0.36 and above please note:

There are some issues with the ALS configuration that may not be apparent when upgrading your configs from an earlier version.

These are detailed MembersPage/GaborRacz/NewAlsLaunchAndOthers

Windows users have an easy solution to solve this issue detaile at MembersPage/PhatBob/ALSConfigFix


Downloadable firmware releases. These are not intended for compilation. See SubVersionSvn if you want to get involved in development. Publish the my_make on your MembersPage if you just want a firmware compiled with some special options.

The "Genboard Public Licence" allows modification of firmware (algorithimic changes, additions etc) if the modifications are sent back to authors. Much of the sourcecode was published, and everyone so far who sent modifications got read-write access to the firmware tree. Because of repeated (intentional or unintentional) violations of the copyright, developers decided to apply control over the sourcecode that allows well-intended use but prevents violation

  • So open is really not open (open is open when you have right to modify to your own non commercial needs, without opensource 'virus' effects), as per above licensing sentence - and of course this openness don't mean anything competitive actions which might violate your rights or NDA etc. stuff, but just own code modifications to own or customers using controllers supplied by you - use.
  • Above also means, that one can't gain - software vice - any competitive edge, if I use 'one single line' of your code - not even when using assmembled controllers/kits supplied by you.
  • Yet, NDA can work both ways, but why one should bother ?
  • And of course one have plans and some succesfull implementations like overlapping events*, mapped individual cylinder fuelling trimming, double PWMmed fans (individual settable trip points), EGT safety functions OBDII/EOBD with regulations/drive cycle functions and more. *Althought Motorola and Siemens has far better processors for engine control than this -> fex. more capture compare units, IO, memory etc.). Maybe one should start yet another project from scratch ;)

Changelog - missing tooth trigger installs (N-1 or N-2 with or without camsync) and InputTrigger/AudiTrigger (135+ tooth wheel) users (especially with big-ignadv-window ALS) will likely prefer 1.1.x, while others usually still stay with 1.0.x for now (though this will change)

  • 1.1.x always supported 60-2 trigger and supports dual config since 1.1.3x (read below). 1.0.x version with dual config for bifuel is unlikely to come before 2008-09-2x.

1.1.51 - preliminary info

[1.1.50] - released for experts only

[1.1.48] - testing only. AlphaN new strategy added (upgrade possible with 2009-01-08 VemsTune or newer)

[1.1.47] - release candidate (still testing)

[1.1.46] - will not be released

[1.1.42] - will not be released

[1.1.41] will not be released. (Fero.uses it on racecar with success. not sure if 12x12 or 16x14). No config change.

[1.1.40] - not released yet, only for bench testing. Many new variables (vemsv3.ini must be used with megatune), upgrading (even from 1.1.39) is quite problematic

[1.1.38] - not released yet, only for testing.

1.1.37 is placeholder.

[1.1.35] for bench testing only (Fero uses on engine with 12-1 trigger). [vemsv3.ini] still needs some more work and testing, eg. the nice 2D warmup wizard was disabled in this, and the new boost settings are temporarily in the shiftcut dialog)

1.1.34 do NOT use

[1.1.33] for testing new features on the bench. Although a bug that made outputs (including ign) misbehave in 1.1.28-1.1.32 was fixed, prefer 1.1.27 unless testing the new features (like switch-table).

1.1.32 - do NOT use

1.1.30 do NOT use any 1.1.28 - 1.1.32 !

1.1.27 Released [v3_firmware_1.1.27.zip]

1.1.26 [v3_firmware_1.1.26.zip] for testing ONLY - several cars running well on it (including 60-2 triggers)

[1.0.78] seems good so far, officially testing, but basically ready for release.

vemsTune-Install-2008-08-06.exe or later to set these
  • and to set SD log parameters (automatic logging to SD card after engine start) and save [SD log] and convert to csv for analysis

1.0.73 [v3_firmware_1.0.73.zip] - released

1.0.72 [v3_firmware_1.0.72.zip] experimental (but likely fine)

1.0.71 [v3_firmware_1.0.71.zip]

[1.1.18]

v3_firmware_1.1.16

v3_firmware_1.1.15

[1.1.14 (12x12 tables)]

[v3_firmware_1.1.12_12x12.zip] is the recommended 1.1.x version

1.1.11 - old

[1.1.10_12x12] - old

[1.1.6 ALS changes midway: NOT recommended]

1.1.x overlapping dwell and timing from last tooth (coil-type is not supported in 1.1.x yet) Running well on 15-1 and 60-2 wheel with camsync and without camsync (any other multitooth N-1 and N-2 should work).[1.1.4 NOT YET RELEASED]. Several variables need to be set properly for it to work

[1.0.69] is the recommended 1.0.x firmware (MegaTune release available).

Since [1.0.53] - old

Since 1.0.50 - old

Since 1.0.49

Since 1.0.46 - http://www.vems.hu/files/Firmware/release/v3_firmware_1.0.46.zip COUNTER-recommended, interpolation-problem, compiled with new compiler... stick to 1.0.45 or a recent version

Since 1.0.45 - http://www.vems.hu/files/Firmware/release/v3_firmware_1.0.45.zip

Since 1.0.44 - [1.0.44 experimental prelease]

Since 1.0.43 - [1.0.43 experimental prelease]

Multitooth advanced filter changed - neglect if you don't use it (but read if you like primary_trigger=09)

Multitooth advanced filter OLD semantics - before 1.0.40

If the tg (time-gap) between 2 teeth compared to tg_prev (previous time-gap)

Multitooth advanced filter NEW semantics - since 1.0.41

If the tg (time-gap) between 2 teeth compared to tg_prev (previous time-gap)

As you see, for the missing-tooth condition, original 1.5+m/8 changed to 1.25+m/8 ... Also, the "n" changed, that is the lower nibble of the toothrel_normal. In new, recommended values:

Since 1.0.36 - ALS made nicely configurable (variables not collide with knock2)

Since 1.0.34 - beware that this was accidentally compiled without AUDITRIGGER option (in my_make), that is without 135-tooth support. We'll compile 1.0.35 soon.

Beware, [1.0.32] .. 1.0.35 is not released. Only a compiled snapshot. BMW dualpwm is believed to be fixed. my_make has ALS, SOFTLAUNCH and other enabled in a way that doesn't collide (cheers!) with misc2_output options (like in 1.0.31: therefore 1.0.31 is not recommended even for testing). Requires in-depth megatune (vems.ini) knowledge (it should be a 20 mins vemsv3.ini job for someone knowledgable, plus 80 mins testing!) Don't use it unless you are testing and absolutely know what you are doing.

BEWARE: 1.0.30 is not released - no known problems so far (been used on several cars for weeks now). BMW dualpwm air-valve users made an improvement that should go into 1.1.0 (or 1.0.31, but soon time for 1.1.0 number). Not suitable for recompile, but EasyTherm provides hexpatch utility (and manual method) for changing temp-factors.

since [1.0.29] - Experimental, use at your own risk

since 1.0.23

since 1.0.18

since 1.0.17

since 1.0.16 since 1.0.15:

since 1.0.14:

since 1.0.13 rc5:

since 1.0.13:

since 1.0.12:

since 1.0.11:

since 1.0.9: camsync with coil-type primarytrigger (not restricted to multitooth). VERY IMPORTANT: USE secondary_trigger=02 if you don't use camsync, otherwise (eg. with commonly used FF value, that works no more) you won't get spark nor fuel nor automaticly activated WBO2 !!!!!

Remember:


2005-02-20

2005-02-08

2004-10-31

2004-10-27


2004-10-10

if kpafac value is set to 00 (not recommended), the old behavior is maintained, where (config.config11 & _BV(MAP_SENSOR)) decides if the 2.5 bar or 1.15 bar lookup table is used. This way it is possible to configure nonlinear table (not sure if it is useful), but precision is inferior (anyway, it is possible to make precision better: tell us if you need nonlinear for some reason, and higher precision).

Note that this makes GenBoard/VerThree the first diy ECM that supports boost pressure higher than 150 kPa without hack. (this was the main reason for the change: a racecar runs at 200..240 kPa boost and they asked us to make precision superior)


2004-09-17

CVS head, with eventqueue.c 1.96 (or earlier 1.94, but not 1.95 experiment) is good for production.

Played with eventqueue, make it simpler and faster. For readability and marketing reasons; because some people are concerned about parameters that cannot be measured in engine output, only on oscilloscope. At 15000 RPM measured 6/20 degree average delay in the ign signal, this is now lowered to about 4 / 100 degree (could be even better with further changes). This is so close to theoretical optimum 0.000000 sec that it means less than 0.3C degree in intake temps (MAT).


2004-09-12


2004-08-27

2004-08-25


2004-08-08


2004-07-28


2004-07-27


2004-07-25

That makes tooth_wheel_twidth2 =

2004-07-07

variable intake actuator (simple RPM-based switch) and WOT actuator (that switches at WOT, but only above a certain RPM) for NOS made easily configurable.

Both the RPM and the output channel is configurable. On GenBoard/VerThree you can select a free channel, which can be a 100A FET if you like (like IRL2203, but the connector cannot handle that current). Even several channels (this is only for the injector FETs) can be selected to switch at the same time, according to GenBoard/Manual/DigitalOut

Set all these config variables to FF if you don't need the feature:\n

  uint8_t act_wot_rpm;		// WOT switch RPM threshold (FF=disable)
  uint8_t act_wot_channel;	// WOT switch output channel selector (P259_0)
  uint8_t act_rpm_rpm;		// RPM switch RPM threshold (FF=disable)
  uint8_t act_rpm_channel;	// RPM switch output channel selector  

Iac.conf is extended to select between a ON/OFF idle air valve, and a PWM controlled type by unsetting/setting bit 3 of iac.conf

See IdleControl/IdleValvePWM


2004-05-26

Lambdacorr table is now unconditionally used. If no l-table was used before, then add the following (stoich) table to tables.txt\n

### lambdacorr: afr=14.7 ###
l[0]=38 38 38 38 38 38 38 38
l[1]=38 38 38 38 38 38 38 38
l[2]=38 38 38 38 38 38 38 38
l[3]=38 38 38 38 38 38 38 38
l[4]=38 38 38 38 38 38 38 38
l[5]=38 38 38 38 38 38 38 38
l[6]=38 38 38 38 38 38 38 38
l[7]=38 38 38 38 38 38 38 38

The lambdacorr-values are a multiplied enrichment: \n

lambdacorr = (l+200)/256

You can see that 56 (hexadecimal 38) means a 1.0 (stoich) lambdacorr value.


Discussion about a limphome feature:

GenBoard/UnderDevelopment/FirmwareChanges/LimpHome


Release system discussion:

GenBoard/UnderDevelopment/FirmwareChanges/TestingAndReleases