Polestar Forum banner
61 - 68 of 68 Posts
Tobi-Wan (and anyone else wondering) - ELM is basically a chip and method for reading CANbus (a filter if you will). It automatically parses and reads data from a car and is only able to spit out pre-defined PID information. Polestar has everything on "lock-down" and thus, standard PID data that has been standardized on EVERY gas car from 1996 isnt available. You have to have an OBD reader capable of reading the raw CANbus data and handing it off. Not just programmed to only look for those standard PIDs.

Thanks to Olalid for the inspiration, I am working on an Android app (will eventually look into IOS port over) that reads basic info, including SOH (and a SOH over time graph to see year-over-year and average yearly degradation). But I learned I had to go buy a Macchina A0 myself and that any ELM reader isnt capable of "pass-through" on raw can data. Additionally, I had to write my own Macchina A0 firmware for the app to read the raw data (I will be working on making the app more compatible and accessible to other readers). But the firmware the Macchina A0 came with only supports raw CAN reading through SavvyCAN.
 
Did you put the car in to gear (Any of R N D works)?
Yeah, car was "in gear". I also tried with another app that is just a terminal for ELM (to make sure car scanner doesn't do anything in the background) -> Same result.
I think it could be that the BECM address is not the same for all models, software versions or markets. Are you in Europe?

Side note, I noticed that the Home Assistant integration for the Polestar (using the Polestar API) shows this data point: "Estimated full charge range"
For me this shows 382km (it fluctuates a bit)

I wonder if the SoH is just 382km divided by 400km (400km is apparently what the car shows when brand new)
This would leave me with SoH=95.5%
 
Yeah, car was "in gear". I also tried with another app that is just a terminal for ELM (to make sure car scanner doesn't do anything in the background) -> Same result.
I think it could be that the BECM address is not the same for all models, software versions or markets. Are you in Europe?

Side note, I noticed that the Home Assistant integration for the Polestar (using the Polestar API) shows this data point: "Estimated full charge range"
For me this shows 382km (it fluctuates a bit)

I wonder if the SoH is just 382km divided by 400km (400km is apparently what the car shows when brand new)
This would leave me with SoH=95.5%
Yes, I am in Sweden, Europe.

But is Car Scanner able to read e.g. traction battery voltage, current, input and output temperature?
These metrics are "built in" to Car Scanner and works out of the box for me. It uses the exact same method that I am using to read SoH, just that Car Scanner seems to have gotten the DID for SoH wrong. It is by snooping what Car Scanner does I figured out how the request should look, I just changed the DID after seeing that.
I use an OBDLink MX dongle with Car Scanner, which emulates ELM327, so I would think that it should be possible to read it with any ELM327 unless there is something very specific that OBDLink MX does "correct" which a regular ELM327 does not.
 
Tobi-Wan (and anyone else wondering) - ELM is basically a chip and method for reading CANbus (a filter if you will). It automatically parses and reads data from a car and is only able to spit out pre-defined PID information. Polestar has everything on "lock-down" and thus, standard PID data that has been standardized on EVERY gas car from 1996 isnt available. You have to have an OBD reader capable of reading the raw CANbus data and handing it off. Not just programmed to only look for those standard PIDs.

Thanks to Olalid for the inspiration, I am working on an Android app (will eventually look into IOS port over) that reads basic info, including SOH (and a SOH over time graph to see year-over-year and average yearly degradation). But I learned I had to go buy a Macchina A0 myself and that any ELM reader isnt capable of "pass-through" on raw can data. Additionally, I had to write my own Macchina A0 firmware for the app to read the raw data (I will be working on making the app more compatible and accessible to other readers). But the firmware the Macchina A0 came with only supports raw CAN reading through SavvyCAN.
I have a different point of view on the things you are saying, at least from my experience with my specific car, it could be different for later models of course:

1. Car Scanner is able to read similar DIDs using the exact method used to read the SoH just fine with an ELM327 dongle. Exactly what commands it sends to the ELM327 device to do that I do not know, but I can see the exact same things happening on the CAN bus as when reading SoH but reading other DIDs that are built in to Car Scanner.

2. Polestar 2 does work with standard PIDs, like speed, outside temperature, throttle position, 12V battery voltage, traction battery SoC. A lot of the standard PIDs does of course not make any sense for an EV, so they are not implemented. A lot of the metrics you are interested in for an EV are not standardised, so you have to have knowledge about how to read it for each specific car manufacturer/model.

3. I would not use the words lock-down for the OBD2 on Polestar, rather proprietary and not publicly documented. Reading out information is possible without any more knowledge than just where to read it from. Making changes to configuration is another matter, there you need a key which is different for each car.

4. The default firmware for Macchina A0 also emulates ELM327 over bluetooth. It is only over WiFi that it uses the SavvyCAN specific protocol. But it is a nice platform to use to make custom things for sure.
 
Yes, I am in Sweden, Europe.

But is Car Scanner able to read e.g. traction battery voltage, current, input and output temperature?
These metrics are "built in" to Car Scanner and works out of the box for me. It uses the exact same method that I am using to read SoH, just that Car Scanner seems to have gotten the DID for SoH wrong. It is by snooping what Car Scanner does I figured out how the request should look, I just changed the DID after seeing that.
I use an OBDLink MX dongle with Car Scanner, which emulates ELM327, so I would think that it should be possible to read it with any ELM327 unless there is something very specific that OBDLink MX does "correct" which a regular ELM327 does not.
Switzerland here.

Yeah the other (11bit?) DIDs in Car Scanner work fine (Except the SoH which shows 0%)

Either there is another AT command needed to setup the ELM side of things properly, or it is not possible with the ELM command set. Or my previous theory that the BECM address is not actually the same for everybody.

How did the packets for the (not working) SoH command in car scanner look when you sniffed them? Did it already use that 29bit header? And it was just the DID that was wrong? I wonder if car scanner maybe picks up the correct BECM address from somewhere on OBD2 and uses that.
 
Tobi-Wan (and anyone else wondering) - ELM is basically a chip and method for reading CANbus (a filter if you will). It automatically parses and reads data from a car and is only able to spit out pre-defined PID information. Polestar has everything on "lock-down" and thus, standard PID data that has been standardized on EVERY gas car from 1996 isnt available. You have to have an OBD reader capable of reading the raw CANbus data and handing it off. Not just programmed to only look for those standard PIDs.

Thanks to Olalid for the inspiration, I am working on an Android app (will eventually look into IOS port over) that reads basic info, including SOH (and a SOH over time graph to see year-over-year and average yearly degradation). But I learned I had to go buy a Macchina A0 myself and that any ELM reader isnt capable of "pass-through" on raw can data. Additionally, I had to write my own Macchina A0 firmware for the app to read the raw data (I will be working on making the app more compatible and accessible to other readers). But the firmware the Macchina A0 came with only supports raw CAN reading through SavvyCAN.
What oladid demonstrated is that it is possible to get to the BECM SoH Data through OBD2, without the need for back probing the internal CANBUS.
Polestar actually spits out lots of data on OBD2. The issue we're having here, is that in Car Scanner (A popular OBD2 app), the SoH DID is shown, but at 0% and that the method oladid is using with his OBD2 interface doesn't seem to work using an ELM327 IC OBD2 adapter.
 
Switzerland here.

Yeah the other (11bit?) DIDs in Car Scanner work fine (Except the SoH which shows 0%)

Either there is another AT command needed to setup the ELM side of things properly, or it is not possible with the ELM command set. Or my previous theory that the BECM address is not actually the same for everybody.

How did the packets for the (not working) SoH command in car scanner look when you sniffed them? Did it already use that 29bit header? And it was just the DID that was wrong? I wonder if car scanner maybe picks up the correct BECM address from somewhere on OBD2 and uses that.
What I mean is that those other DID I mentioned is read in a completely identical mannar as the SoH DID, it is only the DID number that is different. Absolutely everything else is identical, i.e. addresses are exactly the same, which means they are 29 bits. Which I think means it is possible to do with with an ELM327...
 
61 - 68 of 68 Posts