OBD Support for Xpeng G6
Hello,
the developer of the "Car Scanner" app has succeeded in implementing a functioning data query via OBD with a separate profile for the above vehicles in his app - in particular for SOC and consumption.
Would it now be possible to integrate vehicles from the manufacturer XPeng into ABRP?
Then the power-hungry alternative via "Enode" (consumes 1% battery capacity per day, as Enode constantly sends data queries to the vehicle 24/7, which "wakes it up" and consumes power) would no longer be necessary. I had already made a request about this to improve the "24/7 bug").
I kindly ask for a short answer to the question.
Please find attached a screenshot from "Car Scanner" of the data from an XPeng G6 that can be read out via OBD dongle.
Thank you very much!
Yours sincerely
Uwe Loewer

- What type of vehicle connection is this?
Log in to comment and vote
Comments35
Mar 21, 2025
PinnedHi,
We need the OBD PID commands and how to interpret the returned data. Since this is not easily available for most vehicles there is not possibility for us to provide a time estimate.
You can check our telemetry API for relevant properties:
documenter.getpostman.com/view/7396339/SWTK5a8w
Also, you can check our (partially outdated) OBD repository to see what other cars report:
https://www.github.com/iternio/ev-obd-pids
If you find that an existing vehicle profile reads data correctly, please let us know, but please DO NOT keep using the incorrect vehicle model with live data.
Christopher Emmanuel
Apr 7, 2025
How do we tested the existing vehicle profile? Is it through the ABRP app?
Katya S.
Apr 7, 2025
Could be that the PIDs we use for an already supported vehicle model could work. Here’s what you can do once you have access to the vehicle and a dongle;
Select the actual model of your car, save it
In vehicle settings, change the model of the saved vehicle to one that you suspect has compatible OBD commands (just any model will not work, it needs to be compatible)
Link the vehicle via OBD (details here; OBD Connection )
Select the correct vehicle model again
After verifying that the data is read correctly (or even partially correctly) notify us that the OBD commands for vehicle model X also works for vehicle model Y.
Josep
Oct 9, 2025
@Katya S. here you can find the list of PIDs for the XPeng G6:
https://github.com/meatpiHQ/wican-fw/blob/main/vehicle_profiles/xpeng/xpeng_g6.json
There is at least the SOC and odometer PIDs which I guess are important for ABRP, plus a few others. The rest are still being reverse engineered. Would it be possible to add those to ABRP? Thanks!
Samuel_ABRP
Oct 10, 2025
Hey,
SoC, voltage and current are the most important ones, and those seem to be available. I’ll add a task to add those to the app and let you know, once we have something for testing.
Do you by chance also have sample data, that is returned from these commands so we can use it to write tests?
Best
Samuel
Josep
Oct 12, 2025
Hey @Samuel_ABRP, I was testing with the app’s “OBD PID Editor” mode and managed to get some things working, but not everything.
First of all, I used the following commands to test. The github link I provided in the previous message had a couple of errors, so it’s better to use this list instead:
Protocol: 6
Keep alive: (I didn’t put anything here)
Init:
ATH1
ATSP6
ATS0
ATM0
ATAT1
ATSH704
ATCRA784
ATFCSH704
ATFCSM1
Data fetching:
SOC (PID: 2211091)
Telemetry key: soc
Equation: (A<<8+B)/10
Min: 0, Max: 100
ODOMETER (PID: 2201011)
Telemetry key: odometer
Equation: A<<16+B<<8+C
Min: 0
SOH (PID: 22110A1)
Telemetry key: soh
Equation: (A<<8+B)/10
Min: 0, Max: 105
HV_A - Current (PID: 2211031)
Telemetry key: current
Equation: (A<<8+B)*0.5-1600
HV_V - Voltage (PID: 2211011)
Telemetry key: voltage
Equation: (A<<8+B)/10
Min: 200, Max: 480
Same thing but in shorter format shared from the app:
typecode: xpeng:g6:25:88:rwd pids: {"data_commands":{"command":["2211091","2201011","22110A1","2211031","2211011"]},"init_commands":{"command":["ATH1","ATSP6","ATS0","ATM0","ATAT1","ATSH704","ATCRA784","ATFCSH704","ATFCSM1"]},"obd_protocol":"6","isVerified":true,"soc":{"command":"2211091","equation":"(A<<8+B)/10","type":"Number","minValue":0,"maxValue":100},"odometer":{"command":"2201011","equation":"A<<16+B<<8+C","type":"Number"},"soh":{"command":"22110A1","equation":"(A<<8+B)/10","type":"Number"},"voltage":{"command":"2211011","equation":"(A<<8+B)/10","type":"Number"},"ext_temp":{"command":"2211031","equation":"((A<<8)+B)*0.5-1600","type":"Number"}}Now the bad news, I was not able to make the “current” telemetry key work. It is very odd, because the PID 2211031 is correct and the equation
(A<<8+B)*0.5-1600is also correct, but if I set the telemetry key tocurrentthen it can’t read the data. But if I use a different telemetry key likeext_tempthen the current is shown correctly but as temperature!Here you can see all the data correctly reported, even the current but it’s categorized as “Outside temp” because of the problem I mentioned.
Do you know why is this happening? Am I doing something wrong?
Here you have some sample data for the tests you mentioned, hope it’s useful:
And now the same but setting the telemetry key to current so you can see the issue:
Samuel_ABRP
Oct 13, 2025
Not sure why it doesn’t show current, but you have no min/max values as for example in here:
https://github.com/iternio/ev-obd-pids/blob/main/hkmc/Ioniq5.json#L24-L25
If you can read it via ext_temp property it should eventually show up as current as well…
Maybe try again with the min/max values, we usually have -2000/+2000 for these as we noticed that many of the cars have pretty high spikes for very short amounts of times, that we still need for proper calibration.
Also for SoC better use -5…105 as some cars have a secret hidden buffer and we sometimes get these kind of values too, even if you don’t see them often in the app.
Christopher Emmanuel
Oct 15, 2025
Here are the screenshot using 7 PIDs
Samuel_ABRP
Oct 15, 2025
Nice, can you please send me the json file to samuel@iternio.com, then i’ll deploy it for everyone.
Christopher Emmanuel
Oct 16, 2025
Is that the file where I click Share on the OBD PID Editor?
Samuel_ABRP
Oct 16, 2025
In the OBD pid editor there is a share button.
Christopher Emmanuel
Oct 16, 2025
Email send @Samuel_ABRP
Samuel_ABRP
Oct 16, 2025
Thanks, i’ll let you know when it is available
Christopher Emmanuel
Oct 16, 2025
Thank you. Can’t wait.
Christopher Emmanuel
Oct 16, 2025
Hi @Samuel_ABRP just a quick question with the soe in the OBD PID Editor. I did a formula using the SoC sensor. The sensor returns a correct value, but it shows in the app not correct no matter what I do.
Samuel_ABRP
Oct 16, 2025
Please provide more details on that, so we can follow up on that. You can also send a bug report so we can check the actual data.
Christopher Emmanuel
Oct 16, 2025
Hi @Samuel_ABRP
I create the telemetry key “soe” and use sensor from “soc” (same sensor) as this will result in a % value. Then I multiply it with the battery capacy.
So the formula for SoE: (A<<8+B)*0.0875
You can see from the Telemetry response result is correct nominal of 62.475 kWh, which is 71.4% of 87.5 kWh.
But on the app it is showing as 0.06 kWh.
Samuel_ABRP
Oct 16, 2025
If you just use a static value multiplied by soc, then SoE is not needed, as it does not provide any value. SoE should be a value you get from the BMS without using the soc.
Christopher Emmanuel
Oct 16, 2025
Hey @Samuel_ABRP I have now mapping more PIDs from my CarScanner OBD Log with the formula for JSON.
There are 14 BMS PIDs and 15 VCU PIDs.
I don’t know whether ABRP uses VCU PIDs or not.
Let me know if you want more data.
Samuel_ABRP
Oct 16, 2025
You can find the supported properties here:
https://documenter.getpostman.com/view/7396339/SWTK5a8w#fdb20525-51da-4195-8138-54deabe907d5
Not sure what VCU means. But looks like you can add more from the BMS Board.
Josep
Nov 7, 2025
@Samuel_ABRP I would like to fix a few things with the current formulas that were added to the app, would it be possible for you to share them here so I could propose some changes on top of them? Thanks!
Samuel_ABRP
Nov 10, 2025
You can use the custom OBD pid editor in the app to adjust them and then send us the json file or the adjusted equations.
Christopher Emmanuel
Oct 17, 2025
@Samuel_ABRP I have sent an updated json
ABRP User #53153
Oct 9, 2025
Hello,
I gan cet these form the CarScanner app.
Is this usefull?
Uwe Loewer
Mar 25, 2025
For clarification purpose /OBD Support for XPeng G6:
The ABRP-Team may contact & ask the Developer of „CarScanner“-App, Mr. Stanislav Svistunov, Email:
admin@carscanner.info
if he would provide the necessary PID‘s for use with ABRP.
As he is very supportive, the request shouldn’t be a problem.
Thank you!
ABRP User #53153
Oct 18, 2025
Can’t get the new default connection to work. If I link the car it connects and get data, but after that there is no connection.
Reverted back to my own setting whit the PID-editor.
ABRP User #53153
Oct 21, 2025
Looks like it works with another OBD2 dongle. Will the consumption data based on speed work?
Przemysław Przestrzelski
Jan 28
Hello, could you please advise me on how to update the car's online data to the app? I managed to connect to the Xpeng G9 using the PID editor and read the data via OBD, but this only happens once during the connection; the data isn't updated continuously while driving.