# ## # # # # # ###
# # # ### ## # # # # # # #
#### ### ## # ## # ## # ### ##
______ ( __ \ | ( \ ) | | ) | | | | | | | ) | | (__/ ) (______/
_____ / ___| \ `--. `--. \ /\__/ / \____/
IMPORTANT: enter the case-INsensitive alphabetic (no numbers) code AND WRITE SOME SHORT summary of changes (below) if you are saving changes. (not required for previewing changes). Wiki-spamming is not tolerated, will be removed, so it does NOT even show up in history. Spammers go away now. Visit Preferences to set your user name Summary of change: I installed a GenBoard v3.0 on a Suzuki Swift 1.3 8V. Now the stock ECU handles only the ignition. A self-built GenBoard/VerThree v3.0 handles injection. '''VE Learning experiences''' I logged the factory ECU at almost all RPM-MAP area, and experienced, that lambda is 0.5V at low MAP and it is _ALWAYS_ 0.7-0.75V at high MAP (1 wire narrow band lambda sond). After I did some log with AVR in open-loop (my j[] table tuning) and saw that lambda variables between 0V and 0.9V depending on VE value. I did the logs above more times and draw the lesson: I should try to operate my EGO correction in closed loop mode always. I completed the firmware (not committed, it is only in my firmware): <code> static inline void bangbang_ego(void) { uint8_t target, ego_volt; if (engine.kpa250<260) target = config.ego_target; // 0.5V, 1kpa=4, 65kpa=260 else if (engine.kpa250<320) target = 0x1F; // 0.62V, 80kpa=320 else target = 0x26; // 0.75V ego_volt = ego_voltage(); </code> Maybe you think this is dummy, but it works. There was a better solution a year ago (it was dropped when WideBand was proven; maybe it could come back instead of above hack): get the target voltage from l[] table. ---- '''Trigger in detail''' I always had problem with cranking. I noticed that usually AVR doesn't get trigger at low RPM < 500 (LCD and logging with megatune confirms this). This installation problem is explained above. I examined my trigger. I have two trigger wires (purple and green) which come from the distributor. I used ONLY the stock ecu for this measurement. The results: * There are no voltage on both wires at stopped engine but runnig ECU (this is a VR sensor anyway, isn't it?) * Resistance between ground: purple 1k, green 20k * Alternating Voltage at cranking: purple 0mV, green 40mV * Alternating Voltage at 1200rpm: purple 8mV, green 800-1000mV * DC Voltage (independent of rpm): green 660-670mV it seems the Japanese ECM keeps it a diode drop above GND. Alternating Voltage values measured with a simple DVM in V~ mode are peak2peak values divided by 2.82 (fake-RMS). The lower-peak voltage must go below 0V. With 665mV DC and 60mV amplitude it obviously will stay above 600mV (not go below 0mV in any way). Obviously not good. Take 8 mins to review InputTrigger/AnalogSide and LM1815 datasheet. You need to use a series capacitor: eg. the 10uF 35V 1210 size cap that has pads onboard (from v3.1) so the signal on LM1815 input goes below 0V. Unfortunately this board is a v3.0, and it has no pad for this series cap - because normally this is not needed at all (series cap added from v3.1 exactly for such hacks). Just put the cap in instead of the 5k6 resistor, or cut a trace, or put into the external wiring. PROBLEM SOLVED. I put a series 1uF cap into the external wiring, and now I have trigger at all rpm. I will change the 5k6 resistor soon to cap, but I have to buy one before. Good. Could you please write 10..15 lines about ve-learning for newbies? Maybe onto page GenBoard/Manual/Fuel/VeLearning. '''Stealing the trigger signal''' The switched ignition signal (B16 on the schematic below), is tapped, and connected to AVR as primary trigger (trigg1). The service manual, with the wire tapped and connected to AVR: http://www.vems.hu/files/Gabor/trigger.png '''The circuit that I use to get this into the AVR 3.0''' http://www.vems.hu/files/Gabor/LM1815.jpg OK, I see this is an early v3.0 with LM1815 soldered by you as the very first SMD soldering in your life :-) ==== MAPDOT ==== MAPDOT is working now and has been already in the firmware. ==== AVR vs stock ECU ==== I compared the stock ECU with a roughly tuned Genboard 3.0. I did some kickdowns and tuned the VE table at max MAP to be the NBO value about 0.7-0.8 V. So there are some more HP in the engine. I my opinion it will be at least 2-3% stronger above 5000 RPM. I did the measure with street dyno 0.6.0 http://www.vems.hu/files/Gabor/AVRvsSTOCK.png http://www.vems.hu/files/Gabor/AVR-STOCK.png ==== My wiring ==== I have throttle body injection so I used INJ_A (pin7 on Econoseal 36) on AVR. The connected an 5 ohm resistor to the injector channel of stock ECU (check engine don't lights). The wiring of the injector could be simpler but now I can change the injector control from AVR to Stock ECU or v.v. in 30 secs. Of course the +13.8V RED wire is not directly connected to the battery, it is after the main relay. The injector's common should be after the relay of fuel pump, but if you don't want to wire a lot, you can connect it directly to AVR's 13.8V (RED wire). Stock sensors on the car: * unheated NBO2 lambda sensor * MAP (MPX4115): I simply wired its signal to the avr's MAP sensor signal net * TS: Only throttle switch. It's signal is 0V at idle, else 12V. I divided it's voltage to avr's TPS signal net. I had to use big resistances, because else the voltage on stock ECU's TPS signal fell and the engine didn't work well. * note that the 2k49 pullup resistors for CLT and MAT are not populated on the v3 PCB, so the AVR does not interfere with the measurement (pullup R) of the factory ECU So here is my wiring. It's customized to my car so maybe you have to modify a little bit for yours. http://www.vems.hu/files/Gabor/Genboard_3.0_suzuki_wiring.gif --- Could you upload your config and tables? Would like to take a look at the NBO2 config.. //Emil Optional: Add document to category: Wiki formatting: * is Bullet list ** Bullet list subentry ... '''Bold''', ---- is horizontal ruler, <code> preformatted text... </code> See wiki editing HELP for tables and other formatting tips and tricks.