My daily driver, Audi S6 avant -95, 2.3L inline 5, 20 valve turbocharged engine (AAN).
Installed VEMS as direct replacement of original ECU (see PlugAndPlayMotronic) using factory wiring. Extra wires are needed only for WBO2. There are some modifications with the trigger wires as well (swap secondary VR signal wires in 3pin JPT connector on firewall).
Megatune settings for slightly modified 1.0.53 firmware, including new BoostController code (Update 09-Oct-2006): [MT config]
mcd.txt and mct.txt (09-Oct-06):
The engine is now running well, some tuning is still ahead.
- Lost spark around 6k with auditrigger setup is still valid, reason is now probably known
Going to test overlapping dwell with 135-tooth, please review configuration\n
# reftooth array (mod 135), traversed backwards (0, 54, 108, 162, 216) h[1]=00 51 1B 6C 36 00 00 00 # for cyl order 5,3,1,2,4 (ignchannels 4,2,0,1,3 in Miska's wiring) h[2]=04 03 01 00 02 00 00 00 # tooth width in quarterdegrees, 360/135 = 2.667 # 0x0B = 2.75 degrees -> the correct 2.6667 deg will be used. Important to use 0B because 0A is reserved for the volvo 142-tooth. tooth_wheel_twidth1=0B tooth_wheel_twidth2=00 # with camsync, 270*11 = 2970 mod 256 = 154 reset_engphase_after=9A another_trigger_tooth=36 # 60deg # rpmk=12000/10cyl rpmk[0]=04 rpmk[1]=B0 trigger_tooth=1B ign_tdcdelay=78 # 60 degrees
The h[2] and trigger_tooth, ign_tdcdelay need more thoughts.
- the tooth (1..2 degrees) after the cramhome is numbered tooth0.
- review carefully:
- 132 degrees after tooth0 (134 degrees after cramhome) comes cyl5 (ignch4 in h[2]) that can be written as
- 27 (0x1B) tooth + 60 degrees
27 tooth == trigger_tooth (0x1B) + 0 (h[1] is 0 in the same /"first"/ position where h[2] has ignch4)
Tried to crank with LEDs connected to coil outputs, looks promising; all 5 leds are blinking like expected.
- I also added some small extra debug code to log trigger events
- tooth number is printed from cramsync interrupt
- 'P' is printed out from primary trigger interrupt after readTMR(). This happens at TW_TRIG (every 27th tooth, that is 10 times per camrot), and every dwell and sparktooth (5+5 times). Since the dwelltooth of one pulse can be the same as the sparktooth of previous cyl (but this should not be the case at low-RPM, right ?), the number of printed P-s can be less. Marcell expects 19..21 P-s between camsync.
http://kapsi.fi/~mpeippo/vems/v3.x/firmware/stable1_1/trigger2.txt
Config can be found there too.
Some help needed for NTC curvefitting. I'm using pre-generated clt 2063_256.hex table from ntc_properthem.zip and it is a pretty close match already. However there is a minor mismatch between the temperatures:
real temp | MT display | Fahrenheit | temp_internal | adc | temp_internal_wanted |
+4C | +9C | 48 | 88 = 0x58 | 157 or 158 | 79 = 0x4F |
+84C | +79C | 174 | 214 = 0xD6 | decimal 23 | 223=0xDF |
- I can provide a few more measured points if needed. Board AREF=256
- instead of more points, real NTC resistance would be nice, at same points (and voltage if easy to capture)
- I think this is impossible with AREF=256 (because the error signature is different at the two ends). Something like 1900 Ohm, aref=265 would be close.
- since this suggest non-standard AREF, grep -e Using -e adc=158 -e adc=23, propertherm_ntc.out |less will not get any curve that is extremely close
- Are you sure aboute the +79C point ?\n
perl propertherm.pl </svn/firmware/firmware/branches/stable1_0/inc/matfactor.inc >ntc_propertherm.out 2>ntc_propertherm.err iterate ended: 2849.40993369509 216.175797314667 SimulatedAnnealing calc_weight() started 23 => 83.1467687787838 (should be 83.8888888888889 so error=-0.742120110105063) 158 => 4.41775074921436 (should be 3.88888888888889 so error=0.528861860325467) errsqr=0.830437125129265 adc=23, old=232, new=222, diff=-10 adc=157, old=104, new=81, diff=-23 adc=158, old=103, new=80, diff=-23 (the old is not your old, but old standard curve) result: # automatically generated by propertherm, type=clt # modelparam = 2849.40993369509 Ohm 216.175797314667 aref # 2252 Ohm in modelparam means that the actually used thermistor exactly matches the reference CURVE, 2297 means that the real thing is +2% higher resistance (at given temp) than the reference CURVE :10030000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF904 :10031000F5F1EDEAE7E3E0DEDBD9D6D4D1CFCDCB02 :10032000C9C7C5C4C2C0BEBDBBB9B8B7B5B4B2B108 :10033000B0AEADACAAA9A8A7A6A5A4A3A1A09F9E54 :100340009D9C9B9A99989796959493929291908F51 :100350008E8D8C8B8A8A8988878685858483828125 :1003600081807F7E7D7D7C7B7A79797877767675E2 :100370007473737271706F6F6E6D6D6C6B6A696997 :1003800068676665656463626261605F5F5E5D5C4D :100390005C5B5A5A59585756555453535251504F03 :1003A0004E4D4D4C4B4A49484847454443424140D5 :1003B0003F3E3D3C3B3A39383735343331302E2DD2 :1003C0002B2A2827252422201E1C191715120F0C52 :1003D0000804010000000000000000000000000010 :1003E000000000000000000000000000000000000D :1003F00000000000000000000000000000000000FD
As you see 2849.4 Ohm, AREF=216.175 was found by the simulated annealing iteration (after some tries, for first run the error-square was slightly higher. Commited to SVN so you can play with it yourself (if you measure again).
216/256 * 5= 4.22V : It seems you pullup NTC-s to less than 5V (or aref is higher than 5V). Or there is a measurement error.
Some old things below:
Some open issues to solve
- Tachometer is not always showing proper rpm value, sometimes it falls down to near zero for a very short periods of time. Needs still verification of original tachometer signal with scope.
Note about the time-saving effect of wiki-written documentation
It's notable that this install was carried out before other competing installs (despite that it was done in the cold, while competing installs had a warm garage host), because documentation discipline was appr 60%.
Competing installs have 10 and 40% documentation discipline so they lost, and might struggle for a few more days or weeks.
Even for this install, 3..5 days could have been saved with 90..100% documentation discipline, the firing order alone could have saved 1..2 days.
Airtemp sensor data:
Some values to make verification easier: Note that pullup is 470 Ohm not 2700 Ohm
- -40,395 temp_internalformat=0, adc_read=117 (256/ (470+395) * 395)
- -20,425
- 0,457
- 20,490
- 30,503
- 40,520
- 60,555
- 80,585
- 100,620 temp_internalformat=254, adc_read=146 (256/ (470+620) * 620)
Note that the tables are quite steep. The MAT goes from min to max from position 0x75 .. 0x92.
For the prepared tables, look for "PTC" on EasyTherm
Flying wire adaptor for basic functionality from genboard (v3.3) towards motronic connector (pins Mxx)
- 5x high-Z injectors (INJA..E to M36,M17,M34,M35,M16, INJA = cyl #1 and so on)
- 5x ignition coils (with power output stages) (IGN00..04 to M01, M02, M23, M20, M21, IGN00 = cyl#1 and so on)
- so h[2]=03 01 00 02 04 ... required to match 53124 fire order as requested on InputTrigger/AudiTrigger !!!
- BoostControl solenoid aka WGFV (INJG to M33)
- Idle air controller (INJH to M04)
- Fuelpump relay (P259/5 to M03)
- Trigger signals
- 2x VR (M47 home signal, M49 rpm, M48 GND), home signal has inteverted polarity!
- 1x Hall for camsync (M08), InputTrigger/AudiTrigger setup
- GND and Supply voltages
- 12V supply
- M18 has 12V, M27 switched, to additional relay
- to board itself (EC18/25), from additional relay
- supply for injectors, relays (M37), from additional relay
- 5V to hall, TPS etc (EC36/28 to M12)
- 3x GND5 wires (M21, M24, M32)
- GND wire (M10, connected to engine), connect back to M30, GND for sensors
- 12V supply
- TPS sensor signal (M53)
- CLT (M45), IAT (M44) sensors, for IAT
- Tachometer (I259/7 to M40), 5V signal, divider=01
- Knock sensor (EC18/03 to M11 #1, M29 #2 unconnected)
- WBO2 sensor
- 5x extra wires needed
- original MAF connector is not used with VEMS. There are only 3 signal wires + gnd + supply, so MAF wiring is not usable for WBo2. Anyway, MAF uses 6-pin JPT connector, VAG part 022906233A for housing + 022906102B boot
Hardware changes made to V3.3 board (inside ECM)
- Trigger related
- R182 shorted (instead of 100k in primary trigger, to charge peak capacitor from single pulse) this improves noise immunity
- added 1uF cap in parallel with C40 (longer peak hold time)
- 10k pullup to 5V for crankhome VR signal (~40k seems not to be enough in all cases)
- crankhome VR inverted, not as in original motronic (inverted works with motronic too). Easiest to do this on black 3-pin connector located to firewall, one pin is shielding, 2 for signals.
- C103 replaced by 1nF (instead of original 220nF on board).
- All ign channels changed to logic level (2+6 setup is ok as well)
- MAT pullup (R10) changed to 1k+1k in parallel (500 ohm) in order to work better with stock MAT sensor
- AREF shorted to AVCC (AREF=256)
- Resistor for primary trigger reference pulse 75k -> 33k
28.8.2006
Hallo Miska,
now your car is running well? How is the start-up, idle and warm up? How does your car behave in Part and WOT?
Do you managed to get the Knock sensors to Work?
What ignition system are you using? The same as ABY and ADU? Your cylinder head seems like the 3B one.
Can you please post your latest MT file?
Thanks
Vasilis, MembersPage/Billman
Hi Vasilis,
see MembersPage/Billman/PlugNPlay page for some comments