GenBoard/UnderDevelopment/FirmwareChanges (2007-02-28 23:16:38)

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

When updating the board with latest firmware, READ EVERYTHING BETWEEN OLD AND NEW REVISION and check if any of the changes affects your configuration. Take action if necessary. For example, if you used an 1.0.13 firmware, and upgrading to (eg. 1.0.23), when reading through all changes for intermediate releases, you will see (at 1.0.14) that fuelcut_min_kpa must be adjusted reasonably. If you skip 10 mins to read through, you'll sit in the cold car for hours and wonder why the engine does not start and notice injector pulsewidth is 0.

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

[1.1.16]

[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