useful for
- LPGandBiFuel
- air-conditioner (higher iac reference positions)
- wallet/lady mode (lower power, eg. boost settings)
- limp-home mode (without coolant sensor, without camsync, etc...)
- lots of other
Note: setting up this feature is much easier in new VemsTune. Read [ help]
The Important Hardware Warning below is still important (don't smoke the analog input). The remaining should not normally be necessary (except for older firmwares).
Important Hardware Warning
- Same outputs must be used in same positions, especially ignition and injection outputs
- otherwise operation is undefined (eg. output might be left on) => risk of blowing ignition fuse and flooding cylinders with gasoline.
- use existing staging functionality if you need that, don't try to enable more (or different set of) injectors with table-switching
- changing injector PWM duty (eg. 100% => 45%) and time (eg. 25.5msec => 1msec) is allowed if the HW supports PWM-ing (eg. low-Z-extension board is installed)
The switch that switches a relay MUST NOT be connected directly to mcp3208 input. The mcp3208 would be blown immediately. Use a diode (eg. 1n4007) to protect the mcp3208 input.
- diode Anode connected to mcp3208 input.
- diode (stripe-marked) Cathode connected to switch, that pulls to GND.
TODO: upload video of
- exit VemsTune
- switching from LPG to gasoline (engine idling)
- start VemsTune and check that tables are switched over
INFORMATION BELOW SHOULD NOT be necessary with 1.1.84 or newer firmware with recent VemsTune. Kept for old firmwares, or the curious or for special occasions.
Switching over tables
- TABLESET 0: basic (eg. gasoline) config and tables up on ECU, tested OK
- confswitch=C6 (vemstune Outputs/confsw dialog "Map switch"=198)
- note that this is for mcp3208ch6. You would use 197 for mcp3208ch5, or 199 for mcp3208ch7
- exit VemsTune (or MegaTune)
- issue "ManmcS1" manually to initialize second set of tables for sane initial values. Might not be needed if we upload a FULL set of config and tables
- remove injector connectors, fuelpump and ignition fuses the same way needed for a firmware upgrade. Take this seriously. Do NOT risk blowing ignition coils or filling engine with fuel.
- SWITCH mcp3208ch6 from 5V to 0V (pull down to GND with a switch)
- start VemsTune
- TABLESET 1: upload new tables
- set confswitch=D6 (vemstune Outputs/confsw dialog "Map switch"=214)
- this is needed, so switching off confswitch will actually go back to tableset 0
- note that this is for mcp3208ch6. You would use 213 for mcp3208ch5, or 215 for mcp3208ch7
- burn ("basic settings" dialog).
- verify.
- Always exit vemstune before switching confswitch on/off. VemsTune or MegaTune does NOT know about the different set of tables. You do not want it accidentally write to the other set, or making switching impossible by changing confswitch=.. value
- we recommend that you keep list (on paper!) of variables that vary between the 2 tablesets. This makes it easier to see what's going on, or revert in case something goes wrong.
- repeat the dual-table procedure a few times on the bench before going to real engine.
A more complex method to upload data to tableset1 is found on MembersPage/GolfGtiLpg/KapcsLpg
Indication flag (to differentiate between tableset0 and tableset1) was implemented
for Power-users - text stolen from GenBoard/UnderDevelopment/FirmwareChanges
- switch-activated full-table-and-config-swap see TableSwitch. Expert feature, must upload valid config+tables to both storage (2 completely different permanent storage area inside the ECU) separately. Configuration of storage0 (eg. confswitch=C3) can allow to change to storage1. If you want to be able to switch back to storage0 without reboot, config of storage1 (eg. confswitch=D3) must allow to change to storage0. MegaTune does not know about which storage it reads/writes (closing megatune windows before switching to alternate storage seems wise). Useful for bi-fuel, or special different tables like N2O or similar. Switching can also depend on misc1 condition (TPS, RPM, MAP). After switching, the misc1 condition of the new storage will be used (which can be slightly different, eg. to allow hysteresis). For most applications, rpm < 100 (engine off) is recommended, or at least rpm < 1500 (idle). For N2O, the condition will be different of course.
- confswitch=00 disables switching
- confswitch=C3 does load_variables(1) if mcp3208 ch3 goes low
- confswitch=D3 does load_variables(0) if mcp3208 ch3 goes high
- confswitch=83 does load_variables(1) if mcp3208 ch3 goes low AND misc1 condition is true
- confswitch=93 does load_variables(0) if mcp3208 ch3 goes high AND misc1 condition is false
- any mcp3208 analog input channel (mcp3208ch 0..7) can be chosen with confswitch bit 0:3