EcmSpy.com

EcmSpy for Mono

Introduction

Mono is the (Novell sponsored) open source implementation of Microsoft's .NET platform and a runtime environment similar to Java. When using Mono, source code is assembled into intermediate instructions running inside a virtual machine provided by the Mono application. As the assembled code is platform independent the same "assembly" (which is Mono speak for an executable program) can run one different machines and operating systems such as Windows, Linux or MacOS. Clever helper programs make the assembly look like a native program, that can be started with a double-click as usual, but the user interface will in many cases have a bit different look and feel.

Before installing the EcmSpy software the Mono Runtime Environment has to be installed on the computer. The Mono installer can be downloaded from the Mono download area. Please follow the installation instruction provided with the download. When installing the EcmSpy software after the Mono Runtime Environment all required adjustment will take place by the setup program, so that the assembly will be fully integrated into the hosting operating system. Regarding Windows this is mainly achieved by extending the user environment, so that the PATH variable contains the directory where the Mono executables and libraries are installed. The operating system will then find them automatically.

Philosophy of EcmSpy for Mono

EcmSpy for Mono knows two operating states: one is offline (not connected to the ECM), the other is online (connected to the ECM and EERPOM data fetched). Viewing live data, retrieving or clearing diagnostic codes, clearing the AFV and running tests is possible only in online mode, when your computer is connected to the ECM, all other actions are performed offline, so when you tick a checkbox or change a map value, this happens only in your computer's memory and changes are made only to the copy of the EEPROM hold in there. You must then burn the EEPROM to the ECM to transfer the changed data and activate the new setup. EEPROM data can also be read from or written to files stored on the computer's hard disk or whatever mass storage is connected to it. All actions that need direct access to the ECM are disabled while in offline mode. To connect to the ECM plug in the cable into the computer and the diagnostig plug of the ECM and click the "Connect" button in the leftmost position of the menu bar.

Disclaimer and Non-Warranty Clause

If you modify your ECM, you may be legally obliged to notify your insurance company. It may also be illegal in some countries to ride on the road with a modified ECM. It should also be stated that modifying your ECM will certainly void your manufacturer's warranty! All numbers shown in lists, tables and maps are purely fictious and MUST NOT be applied to any existing bike.



MODIFYING YOUR ECM WILL INVALIDATE WARRANTY, COULD DAMAGE YOUR ENGINE AND IS PERFORMED ENTIRELY AT YOUR OWN RISK! IN THE U.S.A., CANADA AND EUROPE, FEDERAL LAW MAKES IT ILLEGAL FOR ANYONE TO TAMPER WITH, DISCONNECT, REMOVE OR OTHERWISE RENDER INOPERATIVE ANY AUTOMOTIVE EMISSIONS RELATED CONTROL DEVICE. IN GENERAL, THE ENTIRE FUEL SYSTEM AND ALL ITS INDIVIDUAL COMPONENTS (INCLUDING THE EFI ECM) ARE CONSIDERED 'EMISSIONS RELATED CONTROL DEVICES'. THE PENALTIES FOR TAMPERING CAN BE SUBSTANTIAL.


Back to Top

Installation

For Mircosoft Windows

If EcmSpy for Mono is to be installed on a Microsoft Windows system, start the installation procedure by double-clicking the installer application. The installation procedure is quite similar to every other done on a Windows system. After the welcome panel you will get a menu to select the Mono version that shall run the EcmSpy assembly if more than one Mono version is installed. If no Mono runtime at all was found on your computer, you will get an informational screen which will tell you about the requirements to successfully run EcmSpy for Mono.

Next the license agreement will be displayed. Please read the license agreement carefully before proceeding. You must accept the terms of this agreement before continuing with the installation. Click the "Next" button to continue.

The following panels will ask for the destination path for the EcmSpy software (default path is "C:\Program Files\EcmSpy_Mono") and the name of the Start Menu folder ("EcmSpy for Mono"). Change the default entries if you want and confirm by clicking the "Next" button.

Now the setup program copies all the required files to the destination folder. After the copying is done the PATH variable will be adjusted, if it didn't contain the Mono path already. A message box will inform you about that. You will have to log off and on again after the installation is finished to activate this new setup.

If no Mono environment was found on your computer, instructions how to manually adjust the PATH variable will be shown next. Otherwise the installation is now completed, so click the "Finish" button to close the installer window.

Please log off and on now if the path had been adjusted during installation. You will find a new shortcut on the desktop, double-click it to start the EcmSpy for Mono program. On slow computers the startup will take up to 15 seconds while the Mono runtime engine is started, which is then executing the EcmSpy assembly. You will notice a lot of harddisk activity during startup, please be patient and do not double-click the shortcut again.

If you plan to connect your computer to the ECM, you have to get a connection lead and probably install some drivers to make the cable work and set up a virtual COM port to talk to. Please follow the installations guide provided with the driver software in that case.

For Linux

Linux? What the heck is Linux?


Back to Top

Menu Bar

The menu bar contains several buttons (from left to right):
Connect"Connect" - connects to the ECM
Execute"Execute" - starts polling live data from the ECM
Stop"Stop" - stops polling live data from the ECM
Log"Log" - toggles logging live data to file
Info"Info" - no action yet
Register"Register" - exports your public key to a file (required for registration)
Quit"Quit" - quit this application

Some buttons possibly look different than shown above in your operating system, but the order stays equal.


Back to Top

"Overview"

The overview pane will always be shown when the EcmSpy assembly is started, covered by the connection dialog. Select the port you are using for the connector cable and the ECM installed in your bike. Click the &quo;OK" button if you want to connect to the ECM and automatically fetch the EEPROM data now, otherwise click the "Cancel" button to close the port selection dialog and remain unconnected. If you change your mind, yo can press the "Connect" button to connect the EcmSpy software to the ECM.


overview
Click image for a full scale view

Once connected to the ECM and the "Execute" menu button is pushed, the now empty text fields will then show a selection of live data, polled continously from the ECM.

overview
Click image for a full scale view


The "Stop" button will now be sensitive and the pane will be expanded that the tabs get covered. This is to prevent from changing to other tab pages while the polling is active. The overview pane is the only window that allows for continous polling. A working connection to the ECM is also reflected in the status bar at the bottom of the window. The ECM type is printed and the green checkmark next to it will be lit. If a trouble code is set while polling is active the warning sign will be switched on also. Time to stop polling and to proceed to the diagnostic pane then.


Back to Top

"Diagnostics"

The diagnostics window will accept input only when connected to an ECM, otherwise no button will respond to mouseclicks. You can fetch the trouble codes from the ECM (current errors as well as stored errors), run diagnostic tests on several devices, perform a TPS reset and reset the AFV to 100% in case it has run amok and prevents the engine from starting. Depending on the ECM type and the actual setup only the rear AFV (the one available with DDFI and DDFI-2) or front and rear AFV (DDFI-3 only) will be set to a new value. The new AFV will be written to the ECM immediately and will also stored in the active copy of the EEPROM that got fetched when connecting to the ECM.

Diagnostics
Click image for a full scale view

All device tests suitable for a special ECM type are described in the Service Manual. Select a test from the list and click the "Run Test" button. Unless the engine is running or the selected device is not available, a popup will appear while the test is running. The ECM does not send a test result, so it's your task to check if the tested device is working as expected.

To perform a TPS reset (DDFI and DDFI-2 only), follow the instructions and push the "Reset" button. The TPS voltage signaled to the ECM with a fully closed butterfly will then be stored in the EEPROM. To perform a TPS reset for DDFI-3 equipped bike follow the instructions in the service manual.


Back to Top

"System"

The system window is divided into three panes, which show the general configuration, the error mask configuration and some system information (readonly).

System
Click image for a full scale view

General Configuration

The general configuration is devided into system, noise abatement and airbox pressure sensor configuration. Each tab offers a number of checkboxes, that can be marked (switched on) or unmarked (switched off) to enable or disable a specific feature or setup. The various settings are explained in the following lists:

Sytem Config.
System Configuration:
 
Bank Angle Sensor
Activate the bank angle sensor.
Decel Fuel Cutoff
Cut fuel completely when decelerating.
Fuel Pump DC Lookup
Adjust fuel pump duty cycle according to the lookup table.
Idle Closed Loop
Activate closed loop in idle.
Idle Ignition Adjustment
Automatically adjust idle spark addvance in regard to engine temperature.
Open Loop Learn
Adjust AFV when mixture is lean at full throttle for too long.
Noise Abatement
Noise Abatement Configuration:
 
On Accel. Cond. Only
Activate spark advance reduction only during acceleration.
On Accel. And WOT
Activate spark advance reduction when accelerating and in WOT.
On WOT Cond. Only
Activate spark advance reduction only when in WOT.
No Accel. Enrichment while Red. Active
Do not apply acceleration enrichment while noise abatement is active.
Ramp Out Enabled
Fade out spark advance reduction.
Airbox Config.
Airbox Pressure Sensor Configuration:
 
Enable ABP Feature
Enable or disable the airbox pressure feature at all.
Enable Speed Correction
Correct airbox pressure according to speed (e.g. for compensation of RAM air effects).
Log ABP Sensor Data
Include airbox pressure sensor data into runtime log (if applicable).
Log MAP Sensor Data
Include manifold air pressure sensor data into runtime log (if applicable).
Use Baro (not MAP) Sensor
Switch between barometric pressur or mainfold pressure sensor.

Error Mask Configuration

The error mask configuration controls which errors will make a trouble code set and the CEL lit. The error mask configuration is split into several sections, each covering a part of the potential sensor, actor or ECM errors. Trouble codes not supported by the ECM (e.g. front O2 sensor, MAP sensor) will be deactivated and not response to mouse clicks.

System Information

The system information pane shows some detailed data describing the ECM. Not all data is available for all ECM types.


Back to Top

"Limits"

All RPM and engine temperature limits as well as cooling fan switching points are configured in the limits window. Like the system configurion window this one is divided into three panes also. The RPM and temperature limits panes are divided into several subwindows as theses configurations are quite substantial, especially the RPM limits.

Limits
Click image for a full scale view

When the engine hits a RPM or temperature limit, one of three different limits - depending on their "severity" - might apply:

Soft Limit
lowest severity, by default every fourth spark will be skipped (configurable spark pattern)
Hard Limit
medium severity, by default every second spark will be skipped (configurable spark pattern)
Kill Limit
highest severity, spark will be switched off completely (not configurable)
Fixed Limits Lowspeed Limits Highspeed Limits

Limits can apply directly when they are hit, and are called fixed limits then, or they get applied after a countdown had been running before, then they are called delayed limits. Limits and timers have a trigger value where they are activated and a reset value, where they are released. RPM limits are different for high and low speed conditions (they differ dependent on the gear, the bike is in) and DDFI-3 type ECMs also apply a cold engine RPM limit.

Temp. Limits Temp. Conditions

Temperature limits consist of the limits themselfs (the temperatures, that will trigger a limit) and conditions, that control how and when limits may get tightened or relased. The conditions also control when the CEL starts and stops signaling an overheating condition.

The third and rightmost panel controls the cooling fan action, either with the engine switched off ("Key-Off") or on ("Key-On").


Back to Top

"Corrections"

The fuel correction setups are bundled in the corrections window, which is devided into several panes also. The left panes contain those tables, which keep data for corrections regarding to engine temperature. The most common table will probably be the warmup enrichment table, accompanied by the front cylinder correction and the idle correction, which is similar to the warmup correction, but active in idle only.

Fuel Corrections
Click image for a full scale view

The right pane shows tabs for other corrections that are not temperature dependent or needed more than only one table

Various Corrections
Various Corrections:
 
OL Correction
Open loop correction is active in every operating point that is not in closed loop, idle closed loop or the WOT area.
WOT Correction
WOT enrichment gets activated, when the engine operating point is above the WOT boundary as defined inside the WOT region table.
Global Correction
Global correction is a feature available in DDFI-3 typ ECMs only. Gobal correction is active everywhere on the map, it's shifting all map values up and down. The other corrections are applied additionally if required.
WOT Region
The WOT (wide open throttle) region is above the boundary described in the WOT region table. The line is extended from the two points to the left or right edge of the fuel or spark advance map.
Accel. Correction
Acceleration Corrections:
 
Acceleration Correction
The acceleration correction table defines the maximum amount of fuel added. The real amount depends on engine temperature, the acceleration condition and throttle speed.
Temperature Correction
Because of wall wetting the acceleration correction requires to be temperature corrected, the corrective values are shown in this table.
Acceleration Region
The region where acceleration correction will be applied.
Light/Full Acceleration Condition
A light or full acceleration condition exists, when the actual throttle position less the filtered throttle position exceeds the value shown (in degree * 10). The acceleration enrichment is first multiplied with and then added to the fuel pulsewidth. With a light acceleration, a percentage of the temperature adjusted enrichment is used, based on the speed of throttle movement. In a full acceleration, 100% of the temperature corrected enrichment will be added. If the full condition value is less than 128, the amount of fuel is also injected on the opposite injector at the same time.
Duration
The number of crankshaft revolutions the acceleration correction lasts.
Decel. Correction
Deceleration Corrections:
 
Deceleration Correction
The amount of fuel provided during a deceleration conditon.
Deceleration Region
This table defines the deceleration region, engine operating points below this boundary trigger a deceleration correction.

Back to Top

"O2 Setup"

The O2 setup window contains all O2 sensor related setups, sensor data as well as closed loop and calibration mode area definitions.

O2 Setup
Click image for a full scale view

The left pane shows the O2 sensor's hardware setup, voltages which signal a rich or lean condition and the midpoint voltage, which represents the target of an inactive O2 sensor (midpoint voltages are not displayed for DDFI-3). The right pane is divided into three tabs for configuration of the closed loop and calibration mode areas and the (yet very experimental) wideband O2 sensor setup. The two boundary tables build an area, where the closed loop or calibration feature will be active. The results of these to areas (EGO correction in closed loop, AFV in calibration mode) can be limited to not exceed specific values, in case a defective sensor might signal wrong data. For ECM types that support the simultaneous operation of separate rear and front O2 sensors (DDFI-3 only), the closed loop operation can be limited to use the rear cylinder's sensor only, or switched off completely. Bikes that have two O2 sensors installed, will by default run an independend closed loop for the rear and the front cylinder.


Back to Top

"Exhaust"

The AMC (active muffler control) setup is available on this page. The valve in the silencer is opened and closed depending on engine speed and optionally load. The AMC setup supports three switching points.

AMC Setup
Click image for a full scale view

The actuator is triggered by passing a RPM switchpoint, but the action can be suspended if a load condition has been set and is not fulfilled. In that case the valve position won't change. If the control voltage polarity is reversed, the switching point results are reversed too, instead of opening the valve it will now be closed. This allows two different control pattern. The default is to close the exhaust valve at idle or middle speed and open it at low or high engine speed.


Back to Top

"Maps" & "EEPROM"

The maps and the EEPROM pages are very similar, therefore get both covered in one section. The largest area in these windows is the data area, where the map or the EEPROM data will be shown, with editing buttons at the bottom. Data can be loaded from and saved to a file, and EEPROM data can also be fetched from or burnt into the ECM.

EEPROM
Click image for a full scale view


Fuel Map
Click image for a full scale view

As more than one fuel map or spark advance table is stored within the EEPROM data, a pull-down menu lets you choose a map. Fuel maps and timing tables can be adjusted in three different kinds, selectable from the pull-down menu at the lower left:

"unlocked"
Each map (front vs. rear) is adjusted independently from the other one. Same changes must be applied twice.
"locked-diff"
Each map (front vs. rear) is adjusted by the same difference, adding +3 to one cell will increase the same cell of the "sibling" map by the same amount.
"locked-value"
Each map (front vs. rear) is adjusted to the same value. Changing the value to 123 at one cell will set the same cell of the "sibling" map to the same value.

To edit a cell, point to and click it. You will see the cell highlighted and it's value is shown in the spin-button entry at the bottom. This entry always shows values in decimal, EEPROM data got a text field at the left showing the value in hexadecimal also. By clicking the up and down spinbuttons or by typing a new number the entry can be changed. There are also some editing buttons available, to aid in adjusting the cell. The new value get's written back to his cell by clicking the "=" button right aside the entry. To "unhilight" a cell, click into the header row or into some free space around the data grid.

Some changes do not get reflected immediately (e.g. boundary changes), in that case click into any cell to start editing and confirm the unchange value by pushing the "=" button, this forces a map redraw with the current values.

To load or save a map or EEPROM data, push the apropriate button. A file selector appears and let's you choose a file. The last used directory will be stored until the application is quit. EcmSpy for Mono accepts .epr and .xpr files for EEPROM data and .msq files for map data. Text files for EEPROM data are not supported.

Back to Top

EcmRead for Mono

Overview

EcmRead for Mono is a little helper, whose only task is to fetch EEPROM data from any DDFI-ECM (even those not currently supported by EcmSpy for Mono) and save these to file or, vice versa, read a data file and write that content to the ECM's storage. It can run without EcmSpy for Mono installed, but requires a Mono runtime environment. It's usefull in all situations, where an offline access to the EEPROM data is sufficient, for example when using Mark Mansur's excellent TunerPro software as an offline editor for EEPROM contents.

EcmRead
Click image for a full scale view

The user interface is almost self explaining: select the interface, which the cable is connected to, and the type of ECM that will be accessed. Then klick the "Fetch" or "Burn" button, depending on what you want to do.

Fetch
Click image for a full scale view

Data fetched from the ECM will be stored to file, whose name starts with the ECM typ followed by a timestamp, and which will have a ".xpr"extension. By selecting such a file when sending data to the ECM, the file content will be transmitted and written into the ECM's storage. The message box above the buttons will show messages for all read and write activities, and, more important, show errors that might have occured. Recoverable errors, such as checksum errors or transmission timeouts, will stop the whole proccess if they appeared more than five times.


Back to Top

Logfile-Konverter

Overview

Logfile Conversion is the second helper wich is part of the EcmSpy for Mono application. EcmSpy for Mono and EcmSpy for Palm store logfiles in a binary format, which is not useable for logfile viewing programs as Phil Tobin's very helpfull MegaLog Viewer application. With the help of this conversion program binary data can be written to a text file, which could then be used as an input file for logfile viewers. It's always recommended to store the binary files for backup, as they can not be rebuilt from the text files, but vice versa it's always possible. The logfile conversion needs a working EcmSpy for Mono installed, as it's accessing the databases that come with EcmSpy for Mono.

Logfile-Konverter
Click image for a full scale view

After starting the program push the "Select File ..." button and choose a file to be converted. After conversion is completed, a message box will show the path and name of the text file created. The output file has the same name and the same path as the input file, just it's extension changed from ".bin" to ".msl".

Fetch
Click image for a full scale view


Zum Seitenanfang