Safety Mode - prevent engine flooding caused by not following firmware upgrade steps
Usage - for firmware 1.1.83 (or newer)
From firmware version 1.1.83 the Injector and ignition outputs are disabled after firmware upload.
- but stepper outputs aren't disable. Lots of cars have ignition coils connected to stepper outputs. IMHO stepper outputs should be disable also. And p259. And specfet.
To reenable the ECU:
- easy way: In "firmware upload" press enter (not "cancel" !) in the "upload saved config" step.
That's all. Nothing special needs to be done in the normal case. For advanced users:
- if you cancelled that step, you can also do it later: upload a proper config and VemsTune (newer than 2010-11-04) sets automatically.
- OR manually: set prohibit/iButton hign and low byte manually (do it only if the config on the ECU is verified and totally good)
Background information: - for the curious
After firmware upload the config is usually absolutely wrong.
- If the recommended firmware upgrade process was not followed (eg. fuses not removed), in the past it could result in injectors open after boot
- => engine flooded with fuel or ignition fuse blown.
- this cannot happen with the correct procedure. But the procedure was inconvenient and some steps sometimes got forgotten.
Solution:
From firmware version 1.1.83 the Injector and ignition outputs are disabled by default, until they are enabled by
either
- a special firmware-version dependant configuration word (named prohibit, 2 bytes) re-enables it
- naturally, after firmware upgrade, this word will be wrong, and need to be set. (VemsTune newer than 2010 november 03 set automatically after config upload).
- OR - if using iButton anti-theft - , enabled by touching on the configured I-Button.
- needless to say, do NOT touch on, until uploading the correct config
Advanced users - will not be needed since VemsTune 2010-11-xx and newer calculates this and sets after config upload.
Calculation example for prohibit variables:
- bit 15: PS2-type
- bit 14..13: 0 not using now
- bit 12..10: firmware version first number
- bit 9..7: firmware version second number
- bit 6..0: firmware version third number
- example:
- non ps2 1 .1 83:
- 000 001 001 1010011= 0x04D3 -> prohibit high byte is decimal 4, prohibit low byte is decimal 211
There is a special code to prohibit variables which works with any firmware for developing, Use it only if nothing else works: 0xBEEF