Home

Tomas

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.

User interface

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

  • additional enrichment is used 3s after start and then is smootly decreaset to 0 (but fast, takes few seconds)

Slow cold start

  • additional enrichment is used for 30s and then it is slownly decreased to 0 (takes ~30s). Useful if temperatures are bellow 5C.

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.

Bugs

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.


MongoDB Logo MongoDB