Diesel particulate simulator

Hi all, have just ordered my first arduino and looking forward to playing with it. I have a vw toureg which the diesel particulate filter keeps on getting blocked. I wanted to try and use an arduino to simulate a similar signal to what would have come from the original dpf (diesel particulate filter) sensor. The original sensor measures the differential pressure across the dpf in the exhaust. When this pressure gets too high the engine ecu sees it and if it can't regenerate it puts the car into safe mode until the exhaust is cleared and the error reset. If you remove the dpf the ecu sees there is no differential pressure and no change when you are driving and also puts it into safe mode. The dpf sensor gives an analogue voltage signal of about 1.1 volts at idle with a clean filter and about 1.9 volts at full load with a clean filter. If it goes under 1 volt or over 2volts it puts it into safe mode. It needs to be able to increase the output voltage as the load increases and vary from 1.1 to 1.9 depending on the load although it can be directly proportional. I can take an engine load signal as an input from either the throttle position sensor or the fuel rail pressure sensor. Both of these also have a 5v supply which could run the arduino. Does anyone think this can be done? Looking forward to your thoughts.
Rgds

1 Like

Why does the filter get blocked? Are you using something other than ultra low sulfer fuel? I just got a Jetta TDI SportsWagon, seeing some very good MPGs with it - 50-54MPG to work, more like 45 going home when there is more slower traffic. All backroad/sideroad driving, I cross one highway, so 45 is about the top speed I seem, maybe 50 on one or two halfmile stretches.

Turbodiesel with 6 speed manual transmission.

Newbie to Arduino so can't help on that front, however I am a VW/Audi Specialist.

Just a thought for you; Are you sure the engine has been filled with the correct grade of oil for your engine. If it is a PD engine, it requires 5w-40 PD specific oil (this has extra zinc to stop the camshaft lobes from wearing away as they act directly on the injector to compress and inject the fuel into the combustion chamber). If it is a common rail diesel, which is most likely with a DPF, you require 5-30 Low Ash specific oil. This reduces the carbonization of oil that reaches the combustion chamber, this prevents the DPF from blocking as easily.

Bear in mind that if this project is something you decide against you can always have your vehicles ECU re-mapped to remove the DPF functionality. Saying that, it sounds like a really good project so I wish you good luck and hope you work it out :slight_smile:

Troy.

This sounds totally feasible.

As long as you can get some signal into the arduino to indicate the current load, this should be easy.

Since the Arduino doesn't have a DAC, you'll need an external part to generate the analog output. I'd use a digital potentiometer - The MCP4xxx0 series, or the MCP4xxx series would both work fine for this, and I think there's an arduino library for interfacing with them on the web as well. I'd be inclined to use the MCP4161/41 since it's got non-volatile memory in it so you can set the wiper position, and hence the voltage on power-up to something other than half-scale, which might be needed for your purposes (though you could also force half-scale to within that range by adding some resistors above the pot as needed)

Just read the current load, maybe do a rolling average over the last few iterations of loop(), and write an appropriate value to the pot.

One can raise questions about whether spoofing this is a good idea, or whether there is some other issue with the vehicle causing this problem - it looks like other people are covering this. Running without the filter is environmentally irresponsible, while running with a clogged filter might present a safety hazard, with toxic fumes backing up into the car. But that said it's definitely doable. If you wanted to actually do it right, and measure the pressure drop, that would be harder, mostly because you'd need pressure sensors that could survive the harsh environment of a car's exhaust system. The automotive environment is a very tough one.

Thanks for the replies. Yes I am afraid our diesel here is terrible still got a lot of sulphur in it along with who knows what else as we also have to add extra fuel filters in the line as well.
I buy the engine oil from the vw dealer so I know that is correct. It is a common problem here and I could have it turned off through the ecu but thought this would be more fun to try.

My car is an import which is why it came with the dpf. The vw's sold locally don't have dpf as they will not work here. We do not have any emission laws here yet as our fuel supply quality is very poor. I totally respect the environment but at the moment we do not have any other option here really.

It needs to be able to increase the output voltage as the load increases and vary from 1.1 to 1.9 depending on the load although it can be directly proportional.

Have you proven it is necessary for the voltage to vary?

Have you determined the amount of current the ECU sinks from the sensor?

Is the sensor connected to a common ground or is it isolated?

Yes I tried a fixed voltage with a couple of resistors at about 1.4v and it went into safe mode with sensor failure. I then tried with a rheostat and as I was driving tried to imitate what the original sensor does when it is all working well and it worked fine. I am not sure what the current is but it will be very small as it is just a signal from a 0-5 v pressure sensor. The ground comes from the ecu as well as the 5v they are both separate to the vehicles main ground.

In that case, you will be learning about pulse width modulation and first order filters. Start here...
http://www.thebox.myzen.co.uk/Tutorial/PWM.html
With two very inexpensive parts (resistor and capacitor) you will be able to control an output voltage using analogWrite.

If the loop timing is fast enough, you can actually get by without analogWrite. The code in loop will consist of...

• Read engine load (probably analogRead)
• Calculate output voltage
• Read output voltage (analogRead)
• If the output voltage is too low set the digital output high (pinMode and digitalWrite)
• If the output voltage is too high set the digital output low (pinMode and digitalWrite)
• If the output voltage is about right change the digital output to a digital input (pinMode) (if the current drawn by the ECU is more than a pittance skip this one)
• Start over

I did something very similar using an ATtiny2313 running at a modest 1 MHz. It worked very well. If you do decide to go with a similar solution I suggest turning off timer 0 (the millis / micros timer).

Thanks I was wondering whether the output from the arduino would be enough for a signal and to use the On my way! with a capacitor and resistor to smooth out the signal. Just got the bits time to start learning about the software and how to make it work.

I know this is an old thread but how did you get on?
I see a company is selling a similar DPF emulator device that does what you want. It seems to be somewhat specific to certain models that cannot be easily remapped:

http://www.ryansautomotive.ie/shop/special-automotive-parts/catalytic-converters/fittings/mazda-lexus-dpf-emulator/

He's getting on great with a custom card I designed for him using high temp rated components.

Interesting thread from before the VW meltdown :slight_smile:

But that is nitrous oxides related, not dirty diesel with particulates related.

Hi Crossroads,

Would you care to share your Custom card design, I have a Transporter with the exact same issue. I was looking to have a go to make an Arduino emulate.

Thanks

There's always a tradeoff..........

old fashioned diesel engines had no air restriction on the inlet and so had excess oxygen in the exhaust except at full throttle, so woud burn off most of the inevitable small carbon particles formed in the combustion process.

But, of course, that meant the engine was heating up a full cylinder load of air in each cycle even though it only used some of the oxygen - reducing efficiency.

Modern common rail engines restrict the air ingested according to the load - just as a petrol engine does - and so don't have loads of excess oxygen to burn up the particles. To compensate they use much higher injection pressures which means the particles are smaller . But still there.

you can't win. As usual.

regards

Allan

Yes i agree,

I have removed the DPF and fitted a Catalytic converter to reduce emissions as the fuel quality is questionable. I have spent $5k on repairs to resolve the issue New injectors pump, Airmass meter etc including replacement dpf.
But still issue.

Hense attempting to emulate the Differential sensor to keep the whole system happy:)

Where you able to complete the project on the DPF system?