Audi S2
This car is owned by a friend and I have been able to use it for some AudiTrigger testing. It has been a slow project as it's hard to allocate garage cycles.
It's a clean car with mostly handling and brake modifications but the 3B engine was recently upgraded with some RS2 parts and a slightly bigger then RS2 turbo. The car is used on the road and for trackdays.
Engine managment specifics:
Ignition type: Distributor with Audi stock coil and stock powerstage. Driven with Stepper output A with no resistor in between. This is very similar to how Autronic drive ignition modules and active coils in all applications.
Ignition set up like if it was a coil on plug setup but with the same output for all positions. I think that we need an ON/OFF for overlapping dwell.
10+1 bench testing: 2007-03-18
Config for 1.1.11 firmware 24+1
1.1.x firmware
- early 1.1.0 to 1.1.10 only supported missing tooth wheels (with or without camsync) and 135 tooth auditrigger
- since 1.1.11 also supports the simple none_missing toothwheel. This is actually simpler than the missing tooth code. It is configured as "coiltype", but several variable that were "don't care" earlier now are important
- primary_trigger=07 # coil type, filtering, rising edge. Alternatively 06 would be falling edge (could be suitable for HALL, but not for VR)
- secondary_trigger=19 # camsync, rising edge; alternatively 1d is same, but with filtering
- tooth_wheel=18 # decimal 24 tooth (between cam pulses)
- trigger_tooth=01 # or upto 03
- ign_tdcdelay=C4 # 98 crankdegrees
- another_trigger_tooth=04 # 24 tooth / 6 cylinders
- tooth_width is allowed to be higher than 64 degrees. The missing tooth width is the upper byte. (there is no missing tooth anyway). Use 0 if the tooth distance is less than 64 degrees.
- tooth_wheel_twidth2=00
- tooth_wheel_twidth1=78 # decimal 120, that is 30 crankdeg per tooth
These should not surprise anyone:
- RPM constant for 6 cyl = 2000 (=0x07d0)
- rpmk[0]=07
- rpmk[1]=d0
- alternate=15 # injgroups 5 .. 0 (fire all banks during cranking)
- ignchmax=05 # ignition 5..0
- reset_engphase_after=40 # since camsync is used
- h[1]=00 14 10 0C 08 04 .. ..
- h[2]=10 60 50 40 30 20 .. ..
- This table assumes that after ignch1: ignch2, ignch3, ignch4, ignch5 and ignch6 fire in this order. Which is recommended, but not actually wired this way in the Supra installed by Fero.
After the (secondary trigger) campulse (taken from the middle cam transceiver; not the other cam transceiver at cyl6 that was 360 crankdegrees offsetted), the (primary trigger) cranktooth is named tooth0 (first, topmost entry in the example h[1] reftooth table). Tooth 4,8,12,16 and 20 follow, in this order (going from bottom to top in MegaTune).
128 degrees (trigtooth=1 + ign_tdcdelay=98 crankdegrees) after tooth0 we have the TDC of cyl2 (connected to channel 1 in our example, that is 0x10 in the first entry of the h[2] ignition output table ).
Config for 1.1.11 firmware 10+1
- primary_trigger=07 # coil type, filtering, rising edge. Alternatively 06 would be falling edge (could be suitable for HALL, but not for VR)
- secondary_trigger=19 # camsync, rising edge; alternatively 1d is same, but with filtering
- tooth_wheel=0A # decimal 10 tooth (between cam pulses)
- trigger_tooth=01 # or upto 01
- ign_tdcdelay=C4 # 98 crankdegrees
- another_trigger_tooth=02 # 10 tooth / 5 cylinders
- tooth_width is allowed to be higher than 64 degrees. The missing tooth width is the upper byte. (there is no missing tooth anyway). Use 0 if the tooth distance is less than 64 degrees.
- 720/10=72 tooth_width=72*4=288=0x120
- tooth_wheel_twidth2=01
- MembersPage/PhatBob I think if you're not missing any teeth then tooth_wheel_twidth2=00
- tooth_wheel_twidth2 is reused as an upper byte for the degrees between trigger teeth in this configuration. Needed for all configurations where there is more then 64 deg distance between the teeth.
- MembersPage/PhatBob I think if you're not missing any teeth then tooth_wheel_twidth2=00
- tooth_wheel_twidth1=20
- Also 10/360 = 36/0.25 = 144 = 0x90
These should not surprise anyone:
- RPM constant for 5 cyl = 2400 (=0x0960)
- rpmk[0]=09
- rpmk[1]=60
- alternate=04 # injgroups 4 .. 0 (fire banks sequentially during cranking to minimize current draw during cranking.)
- ignchmax=04 # ignition 4..0
- reset_engphase_after=40 # since camsync is used ?????
- h[1]=00 08 06 04 02 .. .. ..
- h[2]=10 50 40 30 20 .. .. ..
- This table assumes that cylinders are wired in fire order: ignch1, ignch2, ignch3, ignch4, ignch5.Note that the IGBTs are moved to upper nibble in 1.1.x firmwares (and 1.0.69 and above for 1.0.x firmwares.)
1 A 10
2 B 20
4 C 30
5 D 40
3 E 50
Auditrigger testing 2007-03-11:
- Today it was discovered that H[1]must be h[1]=00 51 1B 6C 36 00 00 00. It actually said so on the auditrigger page. This made the changes to the timing a bit more predictable.
- trigger_tooth was changed from trigger_tooth=1B to trigger_tooth=16 to get the timing about right while cranking (+-5deg)
- The engine started up on the first start attempt and after fitting the forgotten MAP sensor hose it idled. After some minor tuning of the area up to 2000rpm or so it would start up and idle when only turning the key. It syncronized and started supprisingly fast! It did however pop once in a while. The triggererror light in mt did NOT light up which make me wonder if something has gone bad in vemsv3.ini recently.
- The ignition timing was not stable, it would roll back and forth slowly maybe 15-20 degrees, it could then start to scatter sparks over the same 15-20 degee window. Only to go pack to rolling back and forth 15-20 degrees again. I haven't seen a pattern in this yet.
- I checked the wheelerror counter in terminal mode, at first I found that there was no wheel errors. Then I started the log to capture this and found that it started running rougher and now there was wheelerrors! I tried starting the car up again but could not get it to start without wheelerrors. It took a few more turns to start the engine now.
Final configuration taken from the car + log + mlp02mll capture of wheelerror: http://www.vems.hu/files/MembersPage/JorgenKarlsson/AudiS2/AudiS2_2007-03-11_bad_igntiming_wheelerrors.zip
Auditrigger testing 2007-03-10:
The more or less undocmunented 1.1.18 auditrigger configuration caused some trouble initially but it was solved after making some questions on IRC questions.
- The main difference is the lack of distributor support in 1.1.18, this means that ignchmax has to match the number of cylinders even on a distributor engine. So it's set to 4 instead of 0 in this case. The 4-0 channels then has to be set to the same output.
- The addition of overlapping dwell also cause some trouble as you currently have to limit the max dwell so it will never overlap in a distributor application. If it overlaps the output will stay on. I'm sure this will be fixed shortly as a distributor is a very common on high power engines.
- I didn't have time to fanny around when hearing that the H1 table previously had to start at 0, so I changed it at once and don't know if that was an issue in Kalske's configuration.
- There is still issues with this configuration, we ran out of battery and the timing light started resetting when cranking so we had to stop testing before we could get the base timing right. Timing issues seem to be related to low voltage to the timing light. Makes more sense now. Will see if I figure the rest out
Auditrigger testing 2007-02-23:
Secondary trigger
Tested secondary trigger and found that even with C40 upgraded to 1.2uF it does not prevent false triggs during the last third of the rev. This was very clearly seen on the scope.
A weak pulldown of 2.7k was fitted (1k resistors not available during the test) and the mode jumper was used to connect pin 5 of the secondary trigger 1815 to 5v. This removed most of the magnetic noise from the speed sensor wheel and improved signal quality a lot.
Signal was still very strong and for the next test a 1k resistor will be used.
Primary trigger
I forgot about that I configured the pulse length for the output signal to be shorter on the primary trigger, this resulted in a scope setting that was to slow to reliably see all pulses. The pulselength is now ca 30us with R57=33k, R57 is normally 75k which will prevent high rpm operation with Auditrigger.
This had the benefit of me scoping most signals around the LM1815 chip. The signal on the adaptive thresold pin (pin7) was interesting:
Add pin7 scope plot here.
When charging the capacitor the current is pulsed, with R181=150k this results in a very strong sawtooth signal. For Auditrigger R181 is most likely not needed and I bridged it in this application. We need to review this to check if it can cause problems!!! An additional capacitor to even out the signal could improve performance.
So far the tests has been run with R56=18k (has to be changed to 10k), no pulldown (1k will be fitted, signal is VERY strong at cranking).
Ignition:
Something is wierd with the ignition output, possibly an inductive load somewhere on the wire to the ignition powerstage. I didn't have time to investigate in the middle of the night. It produced a 0.5v negative sharktooth instead of a 5.6v positive square pulse. Very tired...