jan@dunkel.tech
dunkel.Tech

DPF-Monitor

Eine macOS-App, die über einen ELM327-OBD2-Adapter (BLE) Live-Daten eines Mazda 3 2.2 SKYACTIV-D ausliest — mit Fokus auf Überwachung und Logging des Dieselpartikelfilters (DPF).

DPF-Monitor

Der Mazda 3 DPF Monitor liest über einen ELM327-kompatiblen OBD2-Adapter (BLE) Live-Daten eines Mazda 3 2.2 SKYACTIV-D aus. Im Mittelpunkt steht das Monitoring und Logging des Dieselpartikelfilters — nicht das Ausführen von Servicefunktionen.

Das Dashboard im Demo-Modus: Live-Werte für Motor, DPF/Abgas und Regeneration — fehlende Werte konsequent als „N/A".
Das Dashboard im Demo-Modus: Live-Werte für Motor, DPF/Abgas und Regeneration — fehlende Werte konsequent als „N/A".

Was es beantwortet

  • Wie hoch sind Ruß- und Aschebeladung des DPF?
  • Wie hoch ist der DPF-Differenzdruck?
  • Wann war die letzte Regeneration — und wie häufig und wie lange regeneriert der Filter?
  • Welche Abgastemperaturen liegen während einer Regeneration an?
  • Gibt es Hinweise auf ungewöhnlich häufige Regenerationen oder erhöhten Gegendruck?

Funktionen

  • BLE-Scan, Verbindung und ELM327-Initialisierung inkl. Adapter-Info
  • Standard-OBD-II-PIDs live (Drehzahl, Geschwindigkeit, Kühlmittel, Motorlast)
  • Multi-PID-Batching, VIN sowie DTC-Lesen (read-only) und PID-Discovery
  • Raw-OBD-Log und Diagnose-Bereich für Rohkommandos
  • Demo-/Mock-Modus — komplett ohne Fahrzeug testbar
  • Fehlende Werte immer als N/A (nie 0); keine schreibenden ECU-Kommandos
  • Mazda-ECU-Client (UDS Service 22) mit read-only Mode-22-DID-Scanner

Architektur

  • Gesamte Kernlogik als eigenständiges Swift-Package (Transport, ELM327, OBD2, Provider) — ohne Fahrzeug testbar
  • Dünnes SwiftUI-App-Target; die UI spricht nie direkt mit Bluetooth, nur über den VehicleDataProvider
  • ReplayTransport für reproduzierbare Golden-Tests
  • macOS 14+ / iPadOS 17+, Swift, SwiftUI, Projekt-Setup über XcodeGen
# Kernlogik testen — ohne Auto
cd MazdaDPFMonitorCore && swift test

# App-Projekt erzeugen und starten
xcodegen generate --spec MazdaDPFMonitor/project.yml
open MazdaDPFMonitor/MazdaDPFMonitor.xcodeproj   # dann ⌘R