After 2 major filter problems I have decide to build a small device to monitor the DPF (Diesel Particulate filter) status while driving. A small device is plugged in the OBD diagnostics socket and a tiny OBD display is placed in the air vent. Picked an Arduino Nano to get the CAN codes and process the status. A blinking message is displayed as alert every time the REGEN is active. (or REQUESTED). Additionally, several values are also displayed: Engine temperature, Exhaust temperature, Soot and Ash mass, Back-Pressure (between the Turbo and the DPF) and Mileage since last successful regen.
Driving short distances every day, sooner or later, the filter will be clogged. With this monitor it is possible to check the current DPF status and, if needed, make a few highway Kms to allow a complete REGEN.
Note: only tested with the N47D20 engine.
Details
(This project is not finished.)
The annexed file "BMW_DPFmon_debug.ino" can be used to debug.
Hi. Great project. Where did you get this data? Thanks
//Motor temperature 84 12 F1 2C 10 0A F1 2801 factor_mul=0.1f factor_add=-273.14f (ºC)//Oil temperature 84 12 F1 2C 10 04 58 1112 factor_mul=0.01d factor_add=-100.0d (ºC)//Distance traveled since the last successful regeneration 84 12 F1 2C 10 03 EB 1003 factor_mul=0.001d factor_add=0.0d (Km)//Regeneration requested 84 12 F1 2C 10 04 04 1028 factor_mul=1 exactMatch(6) (Y/N)//Regeneration status 84 12 F1 2C 10 05 AA 1450 factor_mul=1 maskMatch(2) (Y/N)//Exhaust gas temperature upstream of the catalyst - corrected value 84 12 F1 2C 10 04 1E 1054 factor_mul=0.031281f factor_add=-50.0f (ºC)//Ash mass 84 12 F1 2C 10 03 E9 1001 factor_mul=0.015259f factor_add=0.0f (g)//Soot mass 84 12 F1 2C 10 03 EA 1002 factor_mul=0.015259f factor_add=0.0f (g)//Differential pressure 84 12 F1 2C 10 04 26 1062 factor_mul=0.045777f factor_add=-1000.0f (hPa)
Hi. great project. trying to modify the code for my BMW e83. I have a different engine. please where would I get orders for my car? my CAN BUS communication unit will probably be the IKE Dashboard
I tried to use your code, but on my BMW E90 2010, the bus can seat 1000kbps, 16 Mhz. So, I downloaded the library from https://github.com/Mebus/CAN_BUS_Shield-1.git, I made the necessary changes in code.
Hi. Great project. Where did you get this data?
Thanks
//Motor temperature 84 12 F1 2C 10 0A F1 2801 factor_mul=0.1f factor_add=-273.14f (ºC)//Oil temperature 84 12 F1 2C 10 04 58 1112 factor_mul=0.01d factor_add=-100.0d (ºC)//Distance traveled since the last successful regeneration 84 12 F1 2C 10 03 EB 1003 factor_mul=0.001d factor_add=0.0d (Km)//Regeneration requested 84 12 F1 2C 10 04 04 1028 factor_mul=1 exactMatch(6) (Y/N)//Regeneration status 84 12 F1 2C 10 05 AA 1450 factor_mul=1 maskMatch(2) (Y/N)//Exhaust gas temperature upstream of the catalyst - corrected value 84 12 F1 2C 10 04 1E 1054 factor_mul=0.031281f factor_add=-50.0f (ºC)//Ash mass 84 12 F1 2C 10 03 E9 1001 factor_mul=0.015259f factor_add=0.0f (g)//Soot mass 84 12 F1 2C 10 03 EA 1002 factor_mul=0.015259f factor_add=0.0f (g)//Differential pressure 84 12 F1 2C 10 04 26 1062 factor_mul=0.045777f factor_add=-1000.0f (hPa)