BMW has many different [VANOS] systems. Only the M car engines have dual solenoids.
The most interesting app is the double-vanos with 4 solenoids and 3 VR-sensors
- because all others are simpler
- the changes seem trivial: HALL signal is simpler than VR, disabling third trigger and changing "secignore" if necessary - easy after capturing triggerlog
- if you have 3 VR sensors, write in the order comment: "secondary=VR and thirdtrig=VR capable to trig even a lower amplitude ~70% extrapulse".
- before we found the torn flywheel-dampener in the test-engine, we suspected InputTrigger/RunOut above 6500 RPM (which wasn't the case). Doesn't hurt to specify this anyway.
Fero reported that Double VANOS works perfectly
- it follows the target cam position perfectly
- intake and exhaust cam follows target nicely and revvs and pulls like a charm.
- it is actually easier to set up than the PWM type actuator (eg. suzuki), because with the 2 solenoids per cam only direction has to be right (PID tuning not required)
- but high-side driver was required (so the protection-diode need not be removed from the solenoid-connector)
- a 4-channel low-Z-extension board was modified (4 tracecuts) to act as high-side PFET driver. Using 10k Rgs resistor, and driven from p259 (or other) outputs (p259/0,p259/1 and p259/6,p259/7, remember: pairs must be neighbors), with 510 Ohm.
- high-side driver is also required for Honda, where the solenoid has 1 pin grounded to the body
Information needs some cleanup from
especially trigger setup and initial cam-position target tables.
GintsK currently works at M5 S62 V8 project where we trying to keep intake side VANOS functionality. Exhaust - blocked at fixed position. So on one intake cam exhaust trigger gear installed for camsync functionality (it is not possible to sync from even spaced 6 tooth gear). Engine works so far. VANOS also! But with some oscillation problems. So I have some questions: http://vems.hu/vt/help/v3/v3_camshaft_angle_control.html says:
- Under 450 RPM : OutputA and OutputB inactive _and
- Measured = (target - 2 deg) .... (target + 2 deg): OutputA and OutputB active
Currently our solenoids also closed. But then it burn 4x40W at stalled engine! Or VEMS use different strategy with both solenoids open at target?
What is recommended pwming range?
The intake VR polarity was originally wrong (rising edge)
- interestingly, the intake actuation worked that way too. After swapping the intake-cam VR polarity (LM1815 likes VR falling edge on its input):
Note that
- exhaust-cam (which is 6+1 pulse) is connected to secondary trigger, the +1 pulse is toothcount=2
- intake-cam (6 evenly placed pulse every 120 crankdeg, tooth_cnt=4,24,44,...) is connected to third cam (therefore "exhaust target" table is relevant for intake).
- Originally 1 pulse was inside the missing-gap, so this is different: 1.1.97 implementation was changed to allow separate "measure tooth" parameter for sectrig and third trig
Watchout
When doing the test-install, we've seen several things that caused problem. This list is useful for installers.
- the 4 hydraulic solenoids must be powered from a strong supply.
- When power was stolen from insufficient node, TPS was raised by +0.3V when engine started (which the ECU showed correctly +8% .. scary!).
- the intake-VR (connected to third trigger) was reverse polarity. The signal looked perfect in triggerlog, and the engine worked perfectly, intake-cam position measurement was good and intake-cam control was good also.
- It only showed up on scope. Still, it's best to have it right. Only "Motorsport/camshaft angle control/third trigger measure tooth" had to be changed when polarity was corrected
- flywheel dampener was torn
- now we also understand why the engine behave better when it was cold (in first tuning session the problem didn't appear, than the flywheel-dampener deteriorated)
- prevented revving over 6500 RPM (ECU showed "less primtrig" trigger-error and exhaust-band). This gave us some headache for some time (especially after we've seen that setup with bench-RPM >11000 still didn't rev over 6500 on real engine).
- the 2 exhaust cam solenoid outputs were swapped originally. Setting any target angle other than extreme low (0) or highest (200?) => fluctuations started
- swapping the output wires fixed the issue.
Historical:
Before we identified the torn flywheel dampener (see above) we didn't understand what caused the trigger-error and unintentional "6500 RPM revlimit". We made intensive benchtests until the bench-RPM was beyond 11000 RPM, the VR-adaptive-hysteresis minimum ("runout") was well below 60% and all was confirmed good.
From engine-recorded ~1190 RPM triggerlog, Marcell extracted a 16 second section:
http://www.vems.hu/files/Fero/BMW_M3/BMW_doubleVanos_correctIntakePolarity_nicePart.zip
- this, speeded up ("600%" and "700" percent in audacity) 7 and 8 times respectively, played in endless-loop, triggered v3 perfectly on the bench (~8400 and ~9600 RPM respectively), including sectrig position measurement (3d trigger was not saved into the stereo wav by VemsTune triggerlog dialog), with no trigger-errors or RPM dropouts at all.
- later we made 3 trigger benchtests also, and found it good beyond 11000 RPM
- something is not right around the exhaust VR of the actual engine, because RPM occasionally drops to 0 around 6500 RPM. Maybe amplitude is too high ? (around +-6V at 1200 RPM, likely amplitude more than +-30V at high RPM). This is regardless of the intake cam (third trigger enabled/disabled)
- but this problem was not there earlier - we thought because the engine was earlier running off of primary trigger only, but it turned out the flywheel dampener was torn when compressor was coincidently removed at the same time when sectrig and thirdtrig was connected !
- we made firmware modification in the triggerlog code to only send the missing tooth primtrig (not all 58 teeth) at high RPM so we see all sectrig and thirdtrigt events in 115200 baud triggerlog upto 9000+ RPM.
- of course, stronger exhast-VR pulldown did not help either.
- fixing the real problem, the torn flywheel dampener helped