5

Support for OBD on BMW IX3

  • Done

Avatar
Yves Van Beethoven

obd-debug-data-c3787f89-2379-4921-8deb-fc39024f8f72


Activity Newest / Oldest

Avatar

Samuel_ABRP

Status changed to: Done

Avatar

Samuel_ABRP

As this seems to work quite well now i will mark this as done. If there is anything else left please send me a mail or open a new issue.


Avatar

Samuel_ABRP

Merged with: BMW iX3 - Calibrated reference consuption

Avatar

Paulo Barata

Hi Samuel
After your last update, I did a few tests and the Reference Consumption that was already low (but possible because I am in the mountains) has now dropped to an impossible value.
In the first image the new value is 17 Wh/km @ 110km/h

this happened with the last update, remaining values look good now

thanks
Paulo


Avatar

Samuel_ABRP

As the ix3 integration is still in progress let's keep the discussions in here.


Avatar

Yves Van Beethoven

Hi Paolo, Samuel, same for me. Despite resets, I get negative values for consumption... Can't share debug files though, always getting null IDs. Still investigating. And have not charged my car since our last conversation.


Avatar

Samuel_ABRP

In that case maybe the consumption is inverted and initially it looked still ok as it applied the values to the default consumption first and slowly dropped.

Just to be clear... When the car charges, the value should be negative, when the car drives (no recuperation) it should be positive. Can you verify that with the Deep OBD app?


Avatar

Samuel_ABRP

From a screenshot below i can see that discharge is negative and charge is positive. Please verify that, it would explain the issues here. We can easily invert it if that's the case.


Avatar

Yves Van Beethoven

DeepOBD shows negative Current values while driving indeed.


Avatar

Samuel_ABRP

Ok that one was easy then. Please reset your consumption, it will download the updated OBD list again on next connection attempt.


Avatar

Samuel_ABRP

BTW this also explains why charging did not work, so now you can also try charging and check if that properly works.


Avatar

Paulo Barata

what do you mean by Reset Consuption?


Avatar

Samuel_ABRP

On the page where you see the car data you can reset the consumption in the settings at the bottom. This will start with a fresh consumption and reset the wrong data. But the longer you drive, the more the old wrong data will not be used anyways, so you could as well just continue driving to see if it improves again after a few drives. However if you reset the consumption in the app you will see faster results.


Avatar

Paulo Barata

HI. I tried several OBDs and it seems that Veepeak OBDCheck BLE+ is getting most of the values from BMW iX3.
I did one trip to test and the values are good.

The only problem I can see is the calculation of the Battery percentage. I get 4points more than the my BMW app.
But looking at the OBD number both seem correct (available energy and size of the battery) so the issue should be the calculation


Avatar

Yves Van Beethoven

Hi Paulo, Your reference consumption is a bit on the low side as well, no? The best I got out of my IX3 was 165Wh/km...


Avatar

Samuel_ABRP

So just to confirm, Yves the SoC is correct for you but off for Paulo. Could this be related to different battery sizes maybe?


Avatar

Paulo Barata

Hi. Its possible. I am in the mountains and I was going down. Tomorrow I will do 100km to test, and next weekend I am traveling to the south of Portugal, so I will do one trip of 600km


Avatar

Paulo Barata

Hi. Its possible. I am in the mountains and I was going down. Tomorrow I will do 100km to test, and next weekend I am traveling to the south of Portugal, so I will do one trip of 600km


Avatar

Paulo Barata

Yves, so you are getting the correct SOC and aligned with the car value?


Avatar

Yves Van Beethoven

Yes, that's right. In my case, they align perfectly. Weird.


Avatar

Paulo Barata

Should I charge the car to 100%? and see if I get the same value?


Avatar

Yves Van Beethoven

The only explanation I can think of to explain the difference is that the soc PID returns 3 values A B and C. A is the average SoC. B the max and C the min. Perhaps for some reason, the dongle or the abrp algorithm reads the wrong value... ?


Avatar

Yves Van Beethoven

Yes good idea


Avatar

Samuel_ABRP

Both of you please check what soc the car shows and compare to what ABRP shows. Make a screenshot or document it. After that go to settings (while still connected to OBD) go down to contact and then click the first button contact/support. In the next step click yes to attach the logs and then open the report with Gmail or any other mail app and send the generated mail to samuel@iternio.com, I'll check the data and compare from both of you to see if there is a difference.


Avatar

Paulo Barata

Hi Samuel. I charged the car to 80% as you can see in my BMW app. I connected the Samsung to OBD using Deep OBD and i have the following screen

looking at the Current available energy of the high voltage battery = 59.53
my battery is 74Kw

59.53 / 74 = 80%

so why do I have 3 lines in the end with
Average State of Charge = 83,6
Min State of Charge = 83.5
Max State Charge = 83.7


Avatar

Samuel_ABRP

Ok so in that case the SoC we read could indeed be BMS SoC values then. Yves, how do your values compare to that? Do you also get the correct display SoC by dividing current available energy by total ernergy? However in that case we also need to read the value for total energy, as that might change with SoH. Is that value available somewhere?


Avatar

Yves Van Beethoven

If you are looking for the max charge of the battery in kWh, yes that PID exists. So the calculation Paolo performs to obtain the soc, is possible. I'll send the info on monday. I'm on a journey for the weekend.


Avatar

Paulo Barata

Good Morning Yves. That is exactly what I was looking for, and I was able to find it
On the left side we can see the max size of the Battery - 74,05 kWh
the 2nd image we see the current value - 59,53kWh
59,53 / 74,05 = 80%

the numbers are correct and align with my BMW app

is it possible to use these numbers in ABRP and not the calculated percentage?


Avatar

Samuel_ABRP

Sure we can use whatever we want.


Avatar

Yves Van Beethoven

Samuel, take a look at the PID 22E5C7 in the last JSON file I sent you. A,B value is the current Power of the battery. C,D is the Max Battery charge.


Avatar

Samuel_ABRP

22E5C7 contains SoH from what we have in the pid list. So AB is SoH and CD is max available energy?

That is good, but we still need the currently available energy, so we can calculate soc = currently available / max available.

So could you please provide the calculation for both?

SoH was
"soh": {
"equation": "(0,01*INT16(A:B))-50",
"minValue": "0",
"maxValue": "100",
"type": "Number",
"command": "22E5C7",
"ecu": "607"
},
so maybe you can provide the same for maxAvailableEnergy and currentlyAvailableEnergy? I will do the SoC calculation then.


Avatar

Yves Van Beethoven

Well actually, AB is the currently available energy expressed in KWH. CD is the Max available energy (also in KWH). So SOH can be obtained by dividing CD by 74,05KWH. And SOC by dividing AB by 74,05. The equation in the json will return you the AB values expressed in Integer representing KWH (not in percentage as you may have understood, sorry for the confusion).


Avatar

Samuel_ABRP

Oh so SoH here is actually wrong? Because that could explain funny consumptions you mentioned earlier. SoH is used by us to determine the battery degredation and taken into account for the range calculation.


Avatar

Yves Van Beethoven

Yes clearly SOH is wrong in the last json. It gives you the Current Available Energy in kWh.


Avatar

Samuel_ABRP

Ok understood. Will adjust this then.

kwh_available = (0.01*INT16(A:B))-50
kwh_total = ?
soh = kwh_total / 74.05

Does total kwh use the same calculation as currently available but with C:D?


Avatar

Yves Van Beethoven

Yes, so therefore kwh_total = (0.01*INT16(C:D))-50
SOC = kwh_available / 74.05 and SOH = kwh_Total / 74.05
Should be right 👍


Avatar

Samuel_ABRP

Thanks, just deployed the update. Now you should be able to see as new params
- soc (calculated from available / total capacity)
- soh (calculated from total capacity / 74.05)
- capacity
Additionally to that you will be able to see charged kWh in mydrives if you let OBD running during a charge

Please try it out and let me know if SoC is a better fit now. I would be happy to get some OBD logging data as described above. Then i can also add some tests.


Avatar

Paulo Barata

Thanks Samuel

I connected to my BMW that is still with 80% and I have the following screens and my new SoC is 1%


Avatar

Samuel_ABRP

Like I said, please send a bug report as described above so i can check the data.


Avatar

Samuel_ABRP

Ah found some old data... Forgot to multiply SoC with 100. Will update the pid lists


Avatar

Samuel_ABRP

Ok it is fixed now. According to the data i had from Yves from earlier tests this looks promising now. Please check again if it works correctly now.


Avatar

Paulo Barata

Hi Samuel. Thanks, looks good now
I need to drive this afternoon so I am able to test ABRP.
Thanks
Paulo


Avatar

Paulo Barata

Hi Samuel
I opened a Bug report regarding the Calibrated Reference Consumption, dropped to really low values

Thansk
Paulo


Avatar

Samuel_ABRP

Did you also record charge sessions with ABRP? That doesn't work right now.


Avatar

Yves Van Beethoven

Samuel, average consumption is looking good this time. I need to drive 135km this evening, real test. I'll try to send a debug file from that drive.


Avatar

Yves Van Beethoven

missing picture upload


P

Paulo Barata

I drove my car yesterday. It was above the speed limits and in the mountains (going up) so I think the average consumption looks good now. Sunday I will do 500km with temperatures around 40ºC so I will have more data.


  • Avatar
P

Paulo Barata

Hi. I drove 430km last Sunday. Started in the mountains at 25º and finished in the south of Portugal at 40ºC.
95% is highway and always driving between 140 and 149km/h and with more than 100kg of luggage

This is the new reference consumption after the trip, it dropped to 165

The only issue during the trip was ABRP recalculating the #stops and making proposals but was never updated and every 5 minutes was making the same proposal (image 2)

It looks that is working and with good values


  • Avatar
Avatar

Yves Van Beethoven

Wow impressive. At such speeds, il was expecting higher référence consumption. My current average is 170 but my average speed is loyer. Around 110km/h. Great


P

Paulo Barata

Maybe the temperature also impacts the consumption. We have good temperatures for EVs in Portugal. Most of the trip was done around 30ºC, only when I arrived to my house I got the 40ºC
Overal I was able to get 22.3 kwh with speeds between 140 and 149


Avatar

Yves Van Beethoven

Odd. In that case, I would expect the reference consumption to be higher towards 200+. 165 is when chill driving . Were you able to drive 400km on one charge (or close to)?


Avatar

Paulo Barata

I left home with 100% and I was able to drive 281km, there was still 20% left when charge the car for the final part of the trip

So I think I was able to drive around 350km if I continue at the same speed


Avatar

Samuel_ABRP

Reference consumption is not avg consumption, it's the consumption when you drive constant 110km/h, no acceleration, no recuperation.


P

Paulo Barata

Correct. The average of my trip was 223


Avatar

Yves Van Beethoven

Then we are good. Reference consumption matches for us both.


Avatar

Samuel_ABRP

A

Alexandre Pera

Add support for dongle(unicarscan) for Bmw iX3.UUID and characteristic notify and write are on pictures.

Thank you


Avatar

Samuel_ABRP

Unicarscan is already supported.


Avatar

Matthias Weisenburger

I receive an error Massage weile trying to Connecticut my iX3 with my vgate obd connector


Avatar

Samuel_ABRP

Merged with: Android vlink / vgate Support with BMW iX3

Avatar

Samuel_ABRP

Hi, this was just recently added. Can you please check again? Meanwhile the obd commands should work.


Avatar

Katya_ABRP

Post moved to this board

Avatar

Samuel_ABRP

Post moved to this board

Avatar

Yves Van Beethoven

f7a41a57-d659-45d1-8a22-5efc5a601f00


Avatar

Samuel_ABRP

Merged with: IX3 obd live data failure

Avatar

Yves Van Beethoven

UuID:
f7a41a57-d659-45d1-8a22-5efc5a601f00


Avatar

Samuel_ABRP

Merged with: IX3 obd live data failure

Avatar

Yves Van Beethoven


Avatar

Samuel_ABRP

Merged with: IX3 3rd attempt

Avatar

Yves Van Beethoven

2nd try... Already better but still no cigar


Avatar

Samuel_ABRP

Didn't see anything different in logging. Let's continue this via mail, as it is easier to keep track instead of using this + forum. Send me a mail to samuel@iternio.com.


Avatar

Samuel_ABRP

Status changed to: In progress

Avatar

Samuel_ABRP

No response incoming for the data commands, so looks like something with the init sequence is not correct. Where did you get that init sequence from? Are you sure we need such an init sequence?


Avatar

Yves Van Beethoven

Ok. Good feedback. the init sequence is used by DeepOBD to condition the ECU to accept data commands. With DeepOBD, they work well. ABPR is not getting an error message, only no response to data commands, Right?


Avatar

Samuel_ABRP

Correct, so it might be that one of the filters set in the init commands does not work with first command. Then the others are not tried...


Avatar

Samuel_ABRP

Btw you can also set filters in the data commands sequence like here:
github.com/iternio/ev-obd-pids/blob/main/jaguar/ipace2021.json#L11-L31

I think voltage for example has a different ECU than the others, so we need it anyways


Avatar

Yves Van Beethoven

Ok. Clear. See new iX3 JSON file sent in private mailbox.