Skip to main content

Kia PV5 – official OBD BLE support (working live SoC PID and logs available)

Hello ABRP team,

I would like to request official OBD BLE support for the Kia PV5. I am using an iPhone with a Vgate iCar Pro Mini BLE 4.0 adapter (reported as ELM327 v2.3). Kia/Enode cloud data is often delayed by 15 minutes or more, which makes long-distance live planning unreliable.

The PV5 communicates successfully using ISO 15765-4 CAN (11 bit), OBD protocol 6. Car Scanner can already read live BMS data when using the newer Hyundai/Kia/Genesis e-GMP profile (IONIQ 5 model year 2026+, IONIQ 9 / EV9).

I have also achieved a working direct ABRP OBD connection for the dashboard/display SoC. The following custom configuration produced a parsed soc value of 74%, matching the vehicle display, and ABRP subsequently showed the vehicle as connected with 74% live SoC on the normal map screen.

Initialization commands:

ATE0
ATH1
ATSP6
ATS0
ATM0
ATAT1
ATSH7E4

Data commands:

2201019
2201057

SoC telemetry equation:

key: soc
command: 2201057
equation: AF/2
type: Number
min: 0
max: 100

The request header is 7E4, and the BMS response address is 7EC. The response to DID 220105 is multi-frame. The final 7 in 2201057 is the ELM expected-response-count modifier; this was necessary for reliable retrieval with this adapter.

Additional values have also been identified in the successful 220101 response:

current:   ((Signed(K)*256)+L)/10 A
voltage:   ((M<<8)+N)/10 V
power:     (((Signed(K)*256)+L)*((M<<8)+N))/100000 kW
batt_temp: Signed(O) °C
soc_bms:   E/2 %

Example decoded values from an actual PV5 response were approximately 432.9 V, 0.6 A and 19 °C, all plausible for the vehicle state at the time.

There appear to be two issues that would benefit from an official vehicle profile:

  1. The first 220101 request after initialization commonly returns CAN ERROR; an immediate retry succeeds. Car Scanner performs this retry automatically. Using 2201019 as a warm-up before 2201057 made live display SoC work in ABRP.

  2. When several telemetry equations are added in the iOS custom PID editor, the raw multi-frame responses arrive but are not parsed. The test log sometimes labels them with unexpected command values such as 220101E or 2313121, and some 220105 ISO-TP frames appear concatenated out of sequence. Adding ATCRA7EC filters unrelated ECU responses but does not resolve the custom parser issue.

This demonstrates that the vehicle, adapter and PIDs are capable of providing the data; the remaining work appears to be retry/timing and multi-frame handling in an official ABRP configuration.

Could you please add an official Kia PV5 OBD BLE profile, initially at least for reliable live display SoC, and ideally also current, voltage, power and battery temperature? I can provide the complete Car Scanner log, ABRP test screenshots and perform further tests if required.

Platform: iOS / Apple CarPlay
Vehicle: Kia PV5
Adapter: Vgate iCar Pro Mini BLE 4.0, ELM327 v2.3

Thank you.

What type of vehicle connection is this?
1 comment

This request was merged into another request

Comments1

  • ABRP User #2438832

    •

    Jul 20

    WORKAROUND FOR KIA PV5 OWNERS (tested on iPhone)

    This is a temporary user setup for live dashboard SoC in ABRP until an official PV5 profile is available.

    Tested with: • Kia PV5 • iPhone / iOS / Apple CarPlay • Vgate iCar Pro Mini BLE 4.0 (ELM327 v2.3)

    In ABRP select the generic/developer OBD PID editor and enter:

    OBD protocol: 6 Keep-alive commands: leave empty

    Initialization commands, one command per line: ATE0 ATH1 ATSP6 ATS0 ATM0 ATAT1 ATSH7E4

    Data commands: 2201019 2201057

    Equation: Telemetry key: soc OBD command: 2201057 Equation: AF/2 Data type: Number Min: 0 Max: 100 Mapping: none

    Press “Test PIDs”. A successful test should show a parsed soc value matching the vehicle display. Save the configuration. In normal use ABRP should connect automatically when the dongle is inserted and the car is ready; the PID test is not required again.

    Notes: • 2201019 is intentionally used as a warm-up request. The first BMS request can return CAN ERROR, while the following SoC request succeeds. • This setup has so far been confirmed on one Kia PV5 with the adapter above. Other adapters or firmware may behave differently. • Only the stable display-SoC configuration is recommended. Current, voltage, power and battery temperature are not included because ABRP’s custom iOS parser did not handle the additional multi-frame data reliably. • These are read-only diagnostic commands, but use any custom OBD configuration at your own risk. • For security and 12-V battery protection, remove the dongle when it is not needed.

    ———

    ANLEITUNG FÜR KIA-PV5-FAHRER (auf dem iPhone getestet)

    Dies ist eine vorläufige Einrichtung für den Live-Ladestand des Kombiinstruments in ABRP, bis ein offizielles PV5-Profil verfügbar ist.

    Getestet mit: • Kia PV5 • iPhone / iOS / Apple CarPlay • Vgate iCar Pro Mini BLE 4.0 (ELM327 v2.3)

    In ABRP den generischen/Developer-OBD-PID-Editor öffnen und Folgendes eintragen:

    OBD-Protokoll: 6 Keep-alive-Befehle: leer lassen

    Initialisierungsbefehle, jeweils eine Zeile: ATE0 ATH1 ATSP6 ATS0 ATM0 ATAT1 ATSH7E4

    Datenbefehle: 2201019 2201057

    Gleichung: Telemetrieschlüssel: soc OBD-Befehl: 2201057 Gleichung: AF/2 Datentyp: Number Min: 0 Max: 100 Zuordnung: keine

    „PIDs testen“ drücken. Bei erfolgreichem Test erscheint ein geparster soc-Wert, der dem Fahrzeugdisplay entspricht. Anschließend speichern. Im Normalbetrieb sollte ABRP automatisch verbinden, sobald der Dongle eingesteckt und das Fahrzeug fahrbereit ist; der PID-Test muss nicht wiederholt werden.

    Hinweise: • 2201019 dient absichtlich als Aufwärmabfrage. Die erste BMS-Abfrage kann CAN ERROR liefern, die folgende SOC-Abfrage funktioniert dann. • Bisher wurde diese Einrichtung an einem Kia PV5 mit dem genannten Adapter bestätigt. Andere Adapter oder Firmwarestände können sich anders verhalten. • Empfohlen wird nur die stabile SOC-Konfiguration. Strom, Spannung, Leistung und Batterietemperatur sind nicht enthalten, weil der benutzerdefinierte iOS-Parser die zusätzlichen Mehrfachrahmen nicht zuverlässig verarbeitet hat. • Es handelt sich um lesende Diagnosebefehle; die Nutzung einer benutzerdefinierten OBD-Konfiguration erfolgt dennoch auf eigene Verantwortung. • Aus Sicherheitsgründen und zum Schutz der 12-V-Batterie den Dongle bei Nichtgebrauch abziehen.

    Gruß, Dominik