This is my first boost control application and I confess I had hard time to understand some of the literature on the topic and the results of a few of my bench tests.

OEM control valve

On the Biturbo, the waste gates (one for each turbo) are commanded by a SEM valve. This valve is controlled by the Marelli Microplex ecu according to the knock signal and other safety criteria.

In normal mode the valve is energized by the ecu which gives 12V (kind of watchdog). On this mode the boost signal is bleeded through a restrictor and also applied to the WG in such a way that the WG is fully activated (opened) when the boost reaches 1.75 bar.

In case of knock, the SEM is no more energized (to make simple) and the boost signal goes entirely for opening the WG.

This is similar to the "Connection option one" in Phat Bob's documentation.

Pierburg conrol valve

I have previously replaced the SEM valve by a Pierburg/Vems valve (a constant need to be patched on the eprom) with a set up similar (see remark below) to Phat Bob's connection option 2.

In normal mode the Marelli ecu still outputs 12V and energizes the valve. The WG having then to be inactive, this means, in my case, that the WG chamber has to communicate with the atmosphere.

When knock control or safety matter, the ecu de-energizes the valve and the boost signal entering the Piersburg is directed to the WG which opens.

Boost now goes straight to 1bar, it comes earlier and faster (no more bleeding - beware)


When installing the Pierburg valve sucessfully, I went through some depressive period where reality seemed to disappear.2 examples.

At some time I went testing the Pierburg valve. One day I saw accordance with the documentation (SI 0050 fro 721895.55.0 from Motor Service International), the other day I found the contrary, until I realized that I was looking to 2 similar MSI doc of the same valve where the respective explanation fig were contradictory!

Equally I came to disagree Phat Bob's Boost control schematic for the set up of a Pierburg valve (or kind of),

- connection option 1: there is no straight path from pressure connection 1 and 2, valve being energised or not,

- connection option 2: the boost signal goes to the WG when energised and indeed the WG chamber is at athmospheric pressure when de-energised (opposite logic than mine)but there here is no pressure bleeding.

Working with 2 boost controllers

I realized I can set the Microplex boost controller and the Vems boost controller in a serial link: In normal mode the Microplex should give the 12V and Vems the GRD.

Does this leads to set the boost contol output as INV or NON INV ? This is to see - time to launch VemsTune

Understanding how to tune the Vems controller

I choose the boost control signal to output on pin6 (I am still a bit confuse with the "channels" numbering)

Opening the boost control menu, after some search, I finally had a guess that

(or better "Pressure target" ...)

I also tried to understand what refDC stands for without success (see below)even after an extensive search in files global.h,, vemsv3.ini, even after reading the VemsTune Boost Control doc.

Never mind, I was ready for testing

Static tests: INV or NON INV? boost_minpressure?

I did the testing on the car (I had a bad fw upload on the ecu bench). Hopefully the engine does not need to be started.So MAP stays for the tests @ 100kPa.

I have selected the "Pressure offset for ..." Map Target (zero offset)

I had the output of the Piersburg v_vems (Vems control) connected to a scope

- Case NON INV

b_minP = 0kPa (b_minP is boost_minpressure)

PID = 255,255,0 Ilimit=255

BoostTarget? = 110kPa

Result: v_vems = 0V (solenoid energized)

b_minP = 200kPa

PID = 255,255,0 Ilimit=255

BoostTarget? = 110kPa

Result: v_vems = 11V (solenoid de-energized)

- Case INV

b_minP = 0kPa

PID = 255,255,0 Ilimit=255

BoostTarget? = 110

Result: v_vems = 11V (solenoid de-energized)

b_minP = 200kPa

PID = 255,255,0 Ilimit=255

BoostTarget? = 110

Result: v_vems = 0V (solenoid energized)

-> These results regarding b_minP are unexpected.

Indeed in the case where MAP < BoostTarget? and whatever the logic INV or NONINV,

- when the controller is active (MAP > min_P)the solenoid should let the boost to build up: this is the mormal mode with wastegate closed.

- when the controller is inactive (MAP < min_P),the wastegate is naturally closed since inactive, and the solenoid should have nothing to change.

This not the case here.

In the Version 3.2 Usermanual I read about boost-minpressure "the pressure level above witch the solenoid starts to act. At low pressure, eg cruise, it would make no sense to power the solenoid since it wouldn't help to close the wastegate, because he waste gate is surely closed anyway"

???Hmm the solenoid is used to open the wastegate when necessary.

-> Alright never mind if I do not understand: Set boost-minpressure = 0 and take NON INV.

First running tests

I set

- BoostTarget? = 130 kPa for all RPM

- TPS scaling = 1

- PID = 255,255,0 ilimit = 255 (saturate and do not bother with PWM freq at this stage )

I was surprised to get quite good results

at 90% TPS,3940 RPM, I get an overboost up to 142 kPa, 1-2 s long, before stabilizing at about 132-134kPa

To know PWM was set at 8Hz.

It do not know how to figure out the valve commands or solenoid loag. Possibly put a diode ?


"Boost DC" gauge or "Solenoid load"

Great! I found out the use of the VT gauge named "Boost DC''' Apparently it shows the activity of the solenoid in %. This translates directly (if frequency is high enough) in % WG opening.

"Boost RefDC? vs RPM curve" or "Pulse Modulation Range vs RPM"?

On the bench with a scope, I failed for a while to understand how the PID works until I pay attention for the "Boost RefDC?" parameter.

To make short I appears it sets the modulation time range of the pulses.

Indeed, when frequency is 8.3 Hz, each pulse is over 120ms and the PID has to decide the extend of the Low value and of the High value of the pulse, that is the time for the modulation between H and L.

If (say) PMR (Pulse Modulation Range)=100% the L and the H length are allowed to take value from 0ms to 120ms.

If PMR=0% the pulse stays either L or H during the full range of the pulse. L either H being decided by the sign of the error BoostTarget?-Map.

One can check this result by taking PID=255,0,0, BoostTarget?=110 (MAP=114 on my bench), and PMR successively = 100,70,20,0.

But this not that simple, our algorithm is more sophisticated: the PMR parameter does work the same on either side of the target. PMR=100% gives full modulation on one side of the target (sign of the error / target) and no modulation on the other.

Is it a bug? No, it allows hard limitation control.

One side and two sides PID

Certain pressure target at some TPS or RPM should better not overpassed while the target be reached smoothly.

PMR=100% (or 0% depending of your logic)allows exactly this spec. The control algorithm is PID proportional on one side and deadbeat (onoff, bang bang) on the other.

PMR= 0% on the other case could insure good control stability since the pressure does not drop sharply when overpassed the target being controlled by the PID.

Of course if one sets PMR= 50%, one should get 2 sides PID. To get better resolution one can then increase the pulse frequency.

How to tune

I have got already many parameters to play with, there are more offered by the Boost control menu, but this is enough to start tuning.

The first concern for tuning is to decide was is good control or bad control. Besides zero error to target and stability which are obvious aims, this is a specific matter.

For my part, I would take care

- to reach the target with WG being closed for the most extend of the path,

- not to overshoot too high depending of the level of the target (how is managed the integral term along the path - is it zeroed ?.)

- to have minimum activity for the solenoid and mainly for the actuator WG.

This is going to take days or months and many runs to fulfill ...