Bioadapter conversion kit (http://bioadapter.com) enables use of E85 fuel in normal gas engines. It extends injector pulses in MPI engines and adds cold start support. Bioadapter is build with ATMEGA8 MCU. Kit puts fake load instead of injectors, measures pulses produced by ECU and then drives injectors by itself. Original firmware (v3.0) was written very poorly - output pulses have very high jitter and sometimes output pulse was not extended at all. As result engine can't run smooth and has bad performance.
Project uses WinAVR GCC compiler distribution.
There are 4 LEDs and one button. After reset, one LED is on, indicating selected mode. Pressing button, you can cyclically select next mode:
Gas - SW do nothing, output pulse is equal to input pulse. Cold start function is disabled.
E70, E85, Auto - Output pulse is extended by value defined for each mode (default is defined in module tasks.cpp:
326 if ((g_cfg.mode >= MODE_MAX) || (memcmp(g_cfg.cookie, "E85_KIT", 8)))
327 { // cold,e70,e85,auto e70 mode is default!! (E70 = 30%, E85 43%)
328 Cfg def = {1, {12, 0, 0, 20}, "E85_KIT"};
Also cold start function is enabled
Note If you change mode while engine is running, writing into eeprom takes long time and engine can stall because this. It is better to setup device while engine is not running.
Cold start
Cold start is activated by turning ignotion (power supply) on and waiting before cranking:
less than 4s - normal start
least 4s, but no more than 7s - fast cold start.
more than 7s - slow cold start.
Fast cold start
Slow cold start
Config mode.
If you hold button for least 5s, config mode is entered. If you now press button (like in normal mode), you switch to next mode, but corresponding LED start blinking. Actualy configured value for selected mode is blinket out - for example if you select auto, LED 'auto' blinks 20 times (default value - 20% enrichment). Then led is turned off.
GAS mode in configuration is used to indicate value of cold start enrichment. Resolution is 10%, so default value 12 means additional enrichment 120% during cold start. Cold enrichment is ADDED to mode enrichment.
If you have selected mode which you want to modify, hold button for >5s. After 5s all leds are turned on and then start blinking. Each blink adds 1 to mode's value. When you relese button, value is stored to NVM (eeprom).
Example:
If you want to setup new value of 50% for cold start:
hold button for 5s
now cyclycly press button to select GAS mode (after changing mode, LED is on 1s and then blinks out value)
hold button for 5s. All LEDs turned on and then starts blinking. Wait for 5 blinks and release button.
selecting GAS mode again, you can check configured value.
There is bug in ISR of timer OC2, at the end, before calling TaskE85() i mean to enable intterupt. But timer does not produce another interrupt befor ISR ends. It is required to ack compare event to enable interrupts form OC unit. This should improve reaction on events received while TaskE85() is beeing executed. But unit works fine with this bug.