MembersPage/RobertOffner is thinking on a turbo-timer implementation. Note that IRC is not suitable to summarize ideas, and IRC communication is not supported if the extract is not written in wiki.
You can start a 2nd config page (don't forget storage.c to load/save config, and menu.c and comm.c related as well), a few bytes shouldn't hurt. But it would be nice to check stack usage, mdx.. command might be suitable as the whole SRAM is zeroed during startup.
Implementation thoughts
Thinking about
- 1 relay output
- 1 switch input
- 1 ignition sense input
- and one byte for time in seconds
- if the time is 0xff then it should be EGT related, if it is 00 it should be deactivated
Tricks
A toggle switch on the relay control line would be simple too.
Marcell remembers that MembersPage/Gabor once implemented a turbo timer (that hasn't been merged to mainstream firmware, not sure if it's been published at all since he had the habit of using telephone instead of wiki and forgetting about taking notes after problem has been solved).
He applied a trick, the ECU had 2 ways to be powered
- directly (well, fused, of course) from battery, through the ignition switch (well, throught the main relay)
- through 2 (ore more) diodes drop, through the turbotimer relay.
operation was simple:
- ECU powered the turbotimer relay continuously, right from bootup
- when the direct supply-path was cut (ignition off), the supply voltage fell under 12V (IIRC he used threshold=11.8V) => from this, the ECU knew it was running from the diode-dropped voltage of the turbotimer relay and set off counting the turbotimer. After turbotimersecs seconds it shut off the turbotimer relay, and therefore itself. Marcell didn't see implementation. There is good chance that turbotimercnt downcounted whenever supply < 11.8V (and shut down when reached zero). turbotimercnt was reset to original value if supply was > 11.8V (real supply came back).
If the turbo-timer is not needed, the turbotimer is simply not connected and the ECU is unpowered immediately with the ignition switch turned off.
I think turbotimersecs was wired in (120 secs?), just as the threshold voltage. Gabor said it worked great.
I think that turbotimer relay output was wired in as a p259 output, but even if it's configurable, we have max 2 config variables.