Skip to main content

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?
Status: Completed35 comments

Log in to comment and vote

Comments35

  • Katya S. changed status to Awaiting Clarification
    Team•

    Mar 21, 2025

    Pinned

    Hi,

    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.

        Team•

        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;

        1. Select the actual model of your car, save it

        2. 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)

        3. Link the vehicle via OBD (details here; OBD Connection )

        4. Select the correct vehicle model again

        5. 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

            Team•

            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:

              1. SOC (PID: 2211091)

              • Telemetry key: soc

              • Equation: (A<<8+B)/10

              • Min: 0, Max: 100

              1. ODOMETER (PID: 2201011)

              • Telemetry key: odometer

              • Equation: A<<16+B<<8+C

              • Min: 0

              1. SOH (PID: 22110A1)

              • Telemetry key: soh

              • Equation: (A<<8+B)/10

              • Min: 0, Max: 105

              1. HV_A - Current (PID: 2211031)

              • Telemetry key: current

              • Equation: (A<<8+B)*0.5-1600

              1. 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-1600 is also correct, but if I set the telemetry key to current then it can’t read the data. But if I use a different telemetry key like ext_temp then 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

                Team•

                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

                    Team•

                    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

                        Team•

                        Oct 16, 2025

                        In the OBD pid editor there is a share button.

                      • Christopher Emmanuel

                        •

                        Oct 16, 2025

                        Email send @Samuel_ABRP

                        • Samuel_ABRP

                          Team•

                          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

                              Team•

                              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

                                  Team•

                                  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

                              Team•

                              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

                                  Team•

                                  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.