"Maps"

Maps

EcmSpy knows two different kind of maps: static maps and dynamic maps.

Static maps

Static maps are retrieved from and written to the EEPROM and will be used by the ECM. Within the EcmSpy application static maps get filled as soon as an EEPROM copy is loaded or fetched. Static maps remain unchanged, except when changed manually. All fuel maps, timing tables and the idle setpoint map (DDFI-3 only) are static maps.

Static Maps

3 images, click image for an unscaled view

Dynamic maps

Contrary to the static maps, dynamic maps are not stored in the EEPROM and the ECM does not know about them. Dynamic maps are used inside the EcmSpy application only, but can be stored in a map file, in conjunction with the static maps for later use. They are filled during log file analysis, and contain average data for EGO correction, AFV, lambda (if available) and hits. If dynamic maps are not saved in a file, they are lost at least when the EcmSpy application is terminated. Dependent on the data available the dynamic maps are:

Highslide JS

4 images, click image for an unscaled view

EGO
The EGO correction map contains average EGO correction values for each cell in the closed loop area. Only runtime data retrieved in closed loop is taken into account for the averages, all other data will be discarded. Average values are weighted, so that the fuel map cell, that is closer to the operating point (load and RPM combination) will get a higher weight than the more distant cells. When runnig a single O2 sensor only (DDFI and DDFI-2 default), it is assumed that this sensor is installed in the rear exhaust header. If the runtime data do not provide EGO correction data for the front cylinder, the values from the rear cylinder are copied to the front cylinder's map.
AFV
The AFV map contains average AFV for each cell that has been touched in open loop. Only runtime data retrieved during open loop are taken into account for the averages, all other data will be discarded. Average values are weighted, so that the fuel map cell, that is closer to the operating point (load and RPM combination) will get a higher weight than the more distant cells. When runnig a single O2 sensor only (DDFI and DDFI-2 default), it is assumed that this sensor is installed in the rear exhaust header. If the runtime data do not provide AFV data for the front cylinder, the values from the rear cylinder are copied to the front cylinder's map.
Lambda
An average wideband O2 sensor lambda value, if wideband O2 data was available in the log file (see also the Wideband O2 chapter above). These values are taken into account only, if the engine is not in acceleration or deceleration mode. When adding lambda values, the same weighting as for EGO correction is applied. If the runtime data do not provide data for two O2 sensors, the values from the first O2 sensor are copied to the second O2 sensor's map. If two O2 sensor are connected, it is assumed that sensor 1 monitors the front, and sensor 2 the rear cylinder. Please install wideband sensors accordingly.
Hits
The distribution of readings from the log file across the fuel map. If a operating point lies between multiple cells, each cell touched will get one unweighted hit added. Counting hits is independent from the engine's state, be it in close or open loop. For every remaining dynamic map hits are counted and weighted a second time, to allow a correct calculation of the averages.

The largest area in these windows is the data area, where the map will be shown, with editing buttons at the bottom. Data can be loaded from and saved to a file using the buttons at the right.

Buttons

Read and write map data files

Using the buttons at the right side of the window, map data can be loaded from or saved to a file. To burn single maps into the ECM is not supported, in case a modified map shall be transfered to the ECM, the EEPROM copy needs to be transfered to the ECM.

In some cases it seems quite handy to burn single map cells only, i.e. when adjusting idle timing or idle fuel. For this task the "Quick Burn" button is used.

Quick Burn Warning

If this button is active, then an adjusted cell value (fuel map or timing table) will be sent to the EEPROM immediately when the "Set" button is clicked. (Please note: this is still an experimental feature and should be used with great care. Please double check all data!)

Adjusting cell values

To edit a cell value, click on the cell to mark it for editing. The cell will then be displayed with a bright red background and it's value is copied into the edit field below the map cells. There always the decimal value is shown, when editing the EEPROM data the hexadecimal value is also displayed left to the editing field.

Select Cell

Click image for an unscaled view

By clicking on the arrow buttons or typing a new (decimal) number, the old value is changed. Furthermore some buttons are available for applying changes quickly and easily.

Edit Cell Quick edit buttons for maps

A new cell value will be applied by clicking the "Set" button, just aside the editing field on the right side. If the "Quick Burn" button is active, a message box pops up and once the new value is confirmed, it will be transfered to the ECM instantly. In addition the adjusted value will also be stored in the application's data copy.

Linked maps

Each map has a linked map: the front map is linked to the rear map and vice versa. When adjusting a map, four methods are available what shall happen to the same cell of the linked map:

unlocked
Each map (front and rear) is adjusted independently from the other one. Same changes must be applied twice.
locked diff
Each map (front and rear) is adjusted by the same absolute difference, adding +3 to one cell will increase the same cell of the linked map by the same amount.
locked value
Each map (front and rear) is adjusted to the same value. Changing the value to 123 at one cell will set the same cell of the linked map to 123 also.
locked percentage
Each map (front and rear) is adjusted by the same percentaged difference, adding +10% to one cell will increase the same cell of the linked map by the same percentage. All input will be converted into percentaged differences first and then applied to the linked map.

Cell info

The cell info field for map cells show cell values from the other maps in a compressed form, to allow a quick overview. This is a handy feature when adjusting cell values with the input from the average EGO correction or average lambda. In that case it's no more required to "zap" between the static and dynamic maps.

Cell Info
H
Hits: the weighted count how often this cell had been touched in the log file analysis.
F
Fuel: the fuel map value for this cell.
W
Weight: the average weight of this cell. If an operating point (load - RPM combination) is directly in the middle of the cell (RPM as shown in the X-axis, load as shown in the Y-axis), the the cell's weight is 1. If the operating point lies in the middle of 4 cells (half the RPM difference and half the load difference between neighbour entries in the axises), each cell get's a weight of 0.25.
C
Correction: the average EGO correction for this cell.
L
Lambda: the average lambda value for this cell.