BMW i3 CCS/charge port controller

Development and discussion of fast charging systems eg Chademo , CCS etc
User avatar
EV_Builder
Posts: 1199
Joined: Tue Apr 28, 2020 3:50 pm
Location: The Netherlands
Has thanked: 16 times
Been thanked: 33 times
Contact:

Re: BMW i3 CCS/charge port controller

Post by EV_Builder »

SimpleGenerator_v1_0.PNG
Ok lets start first with a Simple 2D one.

GUI app is done.

Now the C++ Class which will be fed with this data :).

This can be used for all sort of mappings/tune-ings not only charging so i kept it Universal. (so maybe a move to the VCU section is better?).
Converting an Porsche Panamera
see http://www.wdrautomatisering.nl for bespoke BMS modules.
User avatar
Jack Bauer
Posts: 3563
Joined: Wed Dec 12, 2018 5:24 pm
Location: Ireland
Has thanked: 1 time
Been thanked: 87 times
Contact:

Re: BMW i3 CCS/charge port controller

Post by Jack Bauer »

Excellent:) Much appreciate the help.
I'm going to dig into the can data today to see if I can find any flags related to ccs. Doing the road trip again tomorrow so REALLY hope to not spend 4 hours charging ...

On another note given my recent experiences this is worth a read to the end :
https://www.cornwalllive.com/news/cornw ... en-5524525
I'm going to need a hacksaw
User avatar
Jack Bauer
Posts: 3563
Joined: Wed Dec 12, 2018 5:24 pm
Location: Ireland
Has thanked: 1 time
Been thanked: 87 times
Contact:

Re: BMW i3 CCS/charge port controller

Post by Jack Bauer »

Found some flags in LIM can messages for :
Current limit reached,
Voltage Limit reached,
Power limit reached,
Battery fault,
Charger fault.

Also I have a contact in the company who run the Tritium units and go this response re yesterday's 8 amp issue :

I have just reviewed the status of your charging attempts and the following error message is being received 'the voltage which defines the control pilot state is incorrect - vehicle side suspected to be at fault'.
I'm going to need a hacksaw
mikeselectricstuff
Posts: 120
Joined: Sun Nov 08, 2020 11:33 am
Been thanked: 2 times

Re: BMW i3 CCS/charge port controller

Post by mikeselectricstuff »

Jack Bauer wrote: Mon Jun 14, 2021 7:30 am
On another note given my recent experiences this is worth a read to the end :
https://www.cornwalllive.com/news/cornw ... en-5524525
I suspect that's a result of crappy Chinese software in the bus not having been tested on many (non-Chinese) chargers, coupled with the innate crapness of the CCS standard
User avatar
celeron55
Posts: 776
Joined: Thu Jul 04, 2019 3:04 pm
Location: Finland
Has thanked: 28 times
Been thanked: 110 times
Contact:

Re: BMW i3 CCS/charge port controller

Post by celeron55 »

It's all as if CCS was designed by the oil companies to slow down the adoption of EVs. :---)
User avatar
muehlpower
Posts: 575
Joined: Fri Oct 11, 2019 10:51 am
Location: Germany Fürstenfeldbruck
Has thanked: 12 times
Been thanked: 103 times

Re: BMW i3 CCS/charge port controller

Post by muehlpower »

Jack Bauer wrote: Mon Jun 14, 2021 9:16 am Found some flags in LIM can messages for :
Current limit reached,
Voltage Limit reached,
Power limit reached,
Battery fault,
Charger fault.

Also I have a contact in the company who run the Tritium units and go this response re yesterday's 8 amp issue :

I have just reviewed the status of your charging attempts and the following error message is being received 'the voltage which defines the control pilot state is incorrect - vehicle side suspected to be at fault'.
there is also:
Charging satatus code and flag, isulation status flag, DC charging malfunction flag, DC stop control flag.
bitterandreal
Posts: 55
Joined: Fri Jan 15, 2021 2:30 pm
Location: Netherlands
Has thanked: 2 times

Re: BMW i3 CCS/charge port controller

Post by bitterandreal »

I have a few questions:
- Has someone tested to directly control the DUOSIDA servo lock with the LIM?
Is it enough if I add the two resistors to the lock feedback?
- How about the RGB LEDs? Can I wire it without additional series resistors? How much current can the LIM deliver?
- Since there is no stop charge input on the LIM, could we wire the stop charge button to the VCU and terminate the session over CAN?
- @muehlpower how far is the design of the voltage sensing board?
We could also measure the inlet voltage with the Isabellenhütte IVT and generate the current signal from the information on the CAN bus if we want.
- Are you using the Gigavac contactor feedback signals to emulate contactor failure?
- Does the i3 measure the CCS inlet temperature? Are there any thoughts about it?
- Are there any ideas about a 12V drive interlock signal?

Attached a basic schematic CCS setup with the LIM.
CCS setup LIM-01.png
User avatar
Jack Bauer
Posts: 3563
Joined: Wed Dec 12, 2018 5:24 pm
Location: Ireland
Has thanked: 1 time
Been thanked: 87 times
Contact:

Re: BMW i3 CCS/charge port controller

Post by Jack Bauer »

Sure would be great if the wiki was being kept up to date wouldn't it? Anyway, I'm beyond asking people at this stage. Do whatever works.
I'm going to need a hacksaw
bitterandreal
Posts: 55
Joined: Fri Jan 15, 2021 2:30 pm
Location: Netherlands
Has thanked: 2 times

Re: BMW i3 CCS/charge port controller

Post by bitterandreal »

Jack Bauer wrote: Mon Jun 14, 2021 9:16 am Found some flags in LIM can messages for :
Current limit reached,
Voltage Limit reached,
Power limit reached,
Battery fault,
Charger fault.

Also I have a contact in the company who run the Tritium units and go this response re yesterday's 8 amp issue :

I have just reviewed the status of your charging attempts and the following error message is being received 'the voltage which defines the control pilot state is incorrect - vehicle side suspected to be at fault'.
Could you add the flags to the DBC?
bitterandreal
Posts: 55
Joined: Fri Jan 15, 2021 2:30 pm
Location: Netherlands
Has thanked: 2 times

Re: BMW i3 CCS/charge port controller

Post by bitterandreal »

Jack Bauer wrote: Wed Jun 16, 2021 6:57 am Sure would be great if the wiki was being kept up to date wouldn't it? Anyway, I'm beyond asking people at this stage. Do whatever works.
I did some changes to the pinout and added a few other thigs to the wiki.
But I’m a bit confused about the differences compared to Damien’s test pinout.
User avatar
muehlpower
Posts: 575
Joined: Fri Oct 11, 2019 10:51 am
Location: Germany Fürstenfeldbruck
Has thanked: 12 times
Been thanked: 103 times

Re: BMW i3 CCS/charge port controller

Post by muehlpower »

your graphics are good and almost correct. You should also add the main contactors. Make the voltage inputs of the isa shunt between the main and DC contactors and the third voltage input directly to the battery. The main contactors must also be controlled including the pre-charge relay, e.g. from the VCU. On the charge port only the voltage is detected, no amps. On my LIM 1B-1 and 1B-2 are not connected (not populated on the LIM PCB) 1B-14 is in the LIM connectet to GND. 2B-6 is on US models (CCS-1) connected to PP (2B-2).
bitterandreal
Posts: 55
Joined: Fri Jan 15, 2021 2:30 pm
Location: Netherlands
Has thanked: 2 times

Re: BMW i3 CCS/charge port controller

Post by bitterandreal »

muehlpower wrote: Wed Jun 16, 2021 12:42 pm your graphics are good and almost correct. You should also add the main contactors. Make the voltage inputs of the isa shunt between the main and DC contactors and the third voltage input directly to the battery. The main contactors must also be controlled including the pre-charge relay, e.g. from the VCU. On the charge port only the voltage is detected, no amps. On my LIM 1B-1 and 1B-2 are not connected (not populated on the LIM PCB) 1B-14 is in the LIM connectet to GND. 2B-6 is on US models (CCS-1) connected to PP (2B-2).
Thanks for the corrections. I changed the pinouts in the wiki.

Sure the main contactors need to be closed with a pre-charge first. Could be done by the VCU or by the BMS. Depending on the setup.
But does that matter for the LIM?
In which state is the LIM expecting the battery voltage on the zwischenkreis?
Is the timing when the main contactors are closed very critical?

All CCS setups I saw used the IVT to measure the voltage on both sides of the DC charging contactors. No additional voltage measurement was necessary.
As I understand the LIM has the voltage measuring board in the KLE and does expect both the battery and "zwischenkreis" voltage on the CAN bus. I changed the diagram.
Do you actually have the IVT on the battery side of the main contactors?
CCS setup LIM_2-01.png
User avatar
CCSknowitall
Posts: 105
Joined: Fri Jun 04, 2021 1:47 pm
Has thanked: 1 time
Been thanked: 28 times

Re: BMW i3 CCS/charge port controller

Post by CCSknowitall »

Jack Bauer wrote: Mon Jun 14, 2021 9:16 am I have just reviewed the status of your charging attempts and the following error message is being received 'the voltage which defines the control pilot state is incorrect - vehicle side suspected to be at fault'.
This doesn't make sense. If the vehicle doesn't put the pilot voltage into the right state, charging cannot/should not happen. It's not a "well we will give you 8 amps" sort of thing... The low level pilot (1kHz square wave) is meant as a safety feature, so it shouldn't be ignored, and should easily be handled correctly by the LIM. I suspect something else is causing it with the Tritium. Try to get another charge on one (ideally a different machine, same model), if you can.
User avatar
muehlpower
Posts: 575
Joined: Fri Oct 11, 2019 10:51 am
Location: Germany Fürstenfeldbruck
Has thanked: 12 times
Been thanked: 103 times

Re: BMW i3 CCS/charge port controller

Post by muehlpower »

Now it looks good to me!

In my opinion, it doesn't matter what the main contactor controls. It's not time-sensitive either. The LIM needs the analog signal for the voltage from the charge port to work, it is not enough to send something over CAN. It need also the feedback from the Charge port door on the right pin, simulatet or real. It only carge with open door and does the weld test only at closed door.
User avatar
CCSknowitall
Posts: 105
Joined: Fri Jun 04, 2021 1:47 pm
Has thanked: 1 time
Been thanked: 28 times

Re: BMW i3 CCS/charge port controller

Post by CCSknowitall »

I was able to get a capture of an i3, unfortunately I don't know what model year! Sorry! But, I think this information should still be useful. This particular vehicle did not offer ISO 15118 support, only DIN 70121. No mention of negative currents anywhere.

EV to EVSE side in ChargeParameterDiscovery:
EVReady: False
EVErrorCode: NO_ERROR
EVRESSSOC: [ev soc %]
EVMaximumCurrentLimit: 125A
EVMaximumVoltageLimit: 415.1V
"FullSOC: 100"
"BulkSOC: 80"
^ these two last items are not normally found here in other vehicles. I suspect most charging stations ignore them.

EVSE to EV in ChargeParameterDiscoveryRes OK:
[note, I will provide the fields sent, but not the values to protect my anonymity, this isn't LIM specific]
EVSEIsolationStatus
EVSEStatusCode
NotificationMaxDelay
EVSENotification
EVSEMaximumCurrentLimit
EVSEMaximumPowerLimit
EVSEMaximumVoltageLimit [you should be seeing 500 here for most non-ionity ~50kW sites, likely 1000 or 920 for "high power" sites]
EVSEMinimumCurrentLimit
EVSEMinimumVoltageLimit
EVSEPeakCurrentRipple [0-3A is common]

Note in general three values associated with a "thing": multiplier, unit, and value. I think this is part of the EXI/XML crap. I don't know how this translates on CAN.

At cable check completion, from the EVSE to EV side data, EVSEIsolationStatus should switch to valid, EVSEStatusCode should be EVSE_Ready, and EVSEProcessing should be Finished. This is not unique to the LIM but in case you are looking at CAN data, this should match.

For precharge, in the case of my log, the LIM is asking for 415.1V, but closing in at the actual pack voltage of ~370V. That's strange behavior that I haven't seen before with any other vehicle. This may be a bug in whatever controls the LIM (VCM?) as I believe you were able to command an exact value. OR it could mean that there is one max value register on the CAN bus and you need to adjust it after precharge (seems that BMW does not do this).

In the current loop:
CurrentDemandReq [EV to EVSE]
---DC_EVStatus---
EVReady: True [note in general if this goes to false, charging will end]
EVCabinConditioning: False [don't think stations care about this, but LIM sends it, other vehicles don't send this]
EVRESSConditioning: False [don't think stations care about this, but LIM sends it, other vehicles don't send this]
EVErrorCode: NO_ERROR
EVRESSSOC: [ev soc %]
-----------------
EVTargetCurrent: [target current]
EVMaximumVoltageLimit: 415.1V
EVMaximumCurrentLimit: 125A
BulkChargingComplete: False
ChargingComplete: False
RemainingTimeToFullSoC: [time in seconds]
RemainingTimeToBulkSoC: [other time in seconds]
EVTargetVoltage: 415.1V

CurrentDemandRes OK [EVSE to EV]
---DC_EVSEStatus---
EVSEIsolationStatus: Valid [will be this during steady state charging, Invalid during cable check]
EVSEStatusCode: EVSE_Ready
NotificationMaxDelay
EVSENotification
------------------
EVSEPresentVoltage:
EVSEPresentCurrent:
EVSECurrentLimitAchieved: False
EVSEVoltageLimitAchieved: False
EVSEPowerLimitAchieved: False (this station in the log is capable of providing more in all three limits than what i3 can use, so this is valid)
EVSEMaximumVoltageLimit:
EVSEMaximumPowerLimit:


EVSEStatusCode breakdown:
EVSE_Ready - will always be this in steady state charging, but some stations are in this state during charge parameter discovery
EVSE_Shutdown - self explanatory, if charger (or user) requests charging stop from charger side
EVSE_EmergencyShutdown - shutdown due to fault or estop pressed
EVSE_IsolationMonitoringActive - during cable check and sometimes during charge parameter discovery, depending on station
EVSE_NotReady - only during charge parameter discovery
(who knows if this is exposed outside the LIM, if not, disregard)

I don't think EVSENotification or NotificationMaxDelay are actually used for anything.

Ok, that should help you all for now. Good luck. :)
User avatar
CCSknowitall
Posts: 105
Joined: Fri Jun 04, 2021 1:47 pm
Has thanked: 1 time
Been thanked: 28 times

Re: BMW i3 CCS/charge port controller

Post by CCSknowitall »

Oh, and one more thing - Isolation monitoring. The poor EV coach article reminded me.

Isolation detection under normal (non-DC charging) conditions is handled by the BMS or other vehicle subsystems. However, during DC charging, the charger takes over this task. Hence the isolation status parameters in the messages.

I actually think the issue is hardware, not software. These stations are likely complaining about ether low isolation resistance, or capacitance. But, CCS won't say except for isolation fault. Essentially, some station models are more picky (or more lax) about this than others. You may encounter this in your builds, but what exactly causes it is beyond my area of expertise, but I have seen it in certain "non-production" vehicles before.
User avatar
CCSknowitall
Posts: 105
Joined: Fri Jun 04, 2021 1:47 pm
Has thanked: 1 time
Been thanked: 28 times

Re: BMW i3 CCS/charge port controller

Post by CCSknowitall »

CCSknowitall wrote: Wed Jun 16, 2021 8:22 pmFor precharge, in the case of my log, the LIM is asking for 415.1V, but closing in at the actual pack voltage of ~370V. That's strange behavior that I haven't seen before with any other vehicle. This may be a bug in whatever controls the LIM (VCM?) as I believe you were able to command an exact value. OR it could mean that there is one max value register on the CAN bus and you need to adjust it after precharge (seems that BMW does not do this).
Ah, after further review, the first PreChargeReq to the charger is 415.1, but subsequent PreChargeReq messages are that of the pack voltage. Strange. Still have never seen that value vary over the course of pre charge with other vehicles.
User avatar
Jack Bauer
Posts: 3563
Joined: Wed Dec 12, 2018 5:24 pm
Location: Ireland
Has thanked: 1 time
Been thanked: 87 times
Contact:

Re: BMW i3 CCS/charge port controller

Post by Jack Bauer »

Thank you very much for sharing that information. Amazing to be able to see over that side of the process. Regards the 415.1v I can offer an explanation. The maximum allowed voltage is sent to the LIM in 0x2f1. However in the precharge state this drops to the voltage of the pack and is used to command the desired precharge voltage to the evse. It then returns to the higher value in energy transfer and all other states.
I'm going to need a hacksaw
bitterandreal
Posts: 55
Joined: Fri Jan 15, 2021 2:30 pm
Location: Netherlands
Has thanked: 2 times

Re: BMW i3 CCS/charge port controller

Post by bitterandreal »

In the wiki we have the following contactor pinout. (Positive contactor between pin 1&3, negative contactor between pin 2&4)
But in the test setup pinout the positive contactor is between pin 1&2, negative contactor between pin 3&4.
Which one is correct?

4B-1 HV_POS+ Positive Contactor Control
4B-2 HV_NEG+ Negative Contactor Control
4B-3 HV_POS- Positive Contactor Control
4B-4 HV_NEG- Negative Contactor Control
bitterandreal
Posts: 55
Joined: Fri Jan 15, 2021 2:30 pm
Location: Netherlands
Has thanked: 2 times

Re: BMW i3 CCS/charge port controller

Post by bitterandreal »

CCSknowitall wrote: Wed Jun 16, 2021 8:46 pm Oh, and one more thing - Isolation monitoring. The poor EV coach article reminded me.

Isolation detection under normal (non-DC charging) conditions is handled by the BMS or other vehicle subsystems. However, during DC charging, the charger takes over this task. Hence the isolation status parameters in the messages.

I actually think the issue is hardware, not software. These stations are likely complaining about ether low isolation resistance, or capacitance. But, CCS won't say except for isolation fault. Essentially, some station models are more picky (or more lax) about this than others. You may encounter this in your builds, but what exactly causes it is beyond my area of expertise, but I have seen it in certain "non-production" vehicles before.
Is the isolation check not for the charging cable before the EV closes the charging contactors?
Internal EV isolation should always be monitored by the EV itself.
This 2015 CCS combined charging design guide has a nice diagram of a charging sequence.
http://tesla.o.auroraobjects.eu/Design_ ... V3_1_1.pdf
User avatar
Jack Bauer
Posts: 3563
Joined: Wed Dec 12, 2018 5:24 pm
Location: Ireland
Has thanked: 1 time
Been thanked: 87 times
Contact:

Re: BMW i3 CCS/charge port controller

Post by Jack Bauer »

Can log time from the E46 at various charge points.

Efcaec QC45. Works perfectly : https://github.com/damienmaguire/BMW-i3 ... harge1.csv

Ionity ABB : Fails at init stage and display as per attached pic : https://github.com/damienmaguire/BMW-i3 ... _e461.2csv

Circontrol Rapiton 50 : Starts up, closes contactors, faults out. Now tested on 3 of these units they all do the same :
https://github.com/damienmaguire/BMW-i3 ... _fail1.csv

All tests done with the same setup.
Attachments
2021-06-17 10.41.38.jpg
I'm going to need a hacksaw
User avatar
CCSknowitall
Posts: 105
Joined: Fri Jun 04, 2021 1:47 pm
Has thanked: 1 time
Been thanked: 28 times

Re: BMW i3 CCS/charge port controller

Post by CCSknowitall »

bitterandreal wrote: Thu Jun 17, 2021 8:00 am Is the isolation check not for the charging cable before the EV closes the charging contactors?
Internal EV isolation should always be monitored by the EV itself.
The DC station’s isolation monitoring is active during cable check, correct. But also the DC station takes over isolation monitoring during DC charging because you can’t have two isolation monitoring circuits active at the same time. The way I understand it is that the vehicles system creates a small path between DC + and chassis, as well as DC - and chassis (not necessarily both at the same time) in order to determine if there is a larger problem. Since the vehicle system is creating this path, it would be detected by the charger. So, for DC charging the vehicle isolation monitoring is switched off, and the station one takes over.
JaniK
Posts: 391
Joined: Sun Aug 25, 2019 12:39 pm
Location: Finland
Has thanked: 49 times
Been thanked: 10 times

Re: BMW i3 CCS/charge port controller

Post by JaniK »

Jack Bauer wrote: Thu Jun 17, 2021 10:31 am Ionity ABB : Fails at init stage and display as per attached pic : https://github.com/damienmaguire/BMW-i3 ... _e461.2csv
That might not be the lim here!

I have seen that charging delayed message about 2weeks ago with Model 3 on a 50kw ABB unit when I started from the app. App showed it didn't start. Then after short while I tried again to start from the app and it said it cannot start because it is allready charging and indeed it started while app didn't seem to have a clue what is going on.

Did you start with app or tag?
Any opinions are my own, unless stated otherwise. I take no responsibility if you follow my way of doing things and it doesn't work. Please double check with someone who knows what they are doing.
User avatar
Jack Bauer
Posts: 3563
Joined: Wed Dec 12, 2018 5:24 pm
Location: Ireland
Has thanked: 1 time
Been thanked: 87 times
Contact:

Re: BMW i3 CCS/charge port controller

Post by Jack Bauer »

I used the app and yeah had all sorts of problems. Interesting. Thanks for the heads up. Jesus, imagine if petrol pumps worked like this!
I'm going to need a hacksaw
User avatar
Jack Bauer
Posts: 3563
Joined: Wed Dec 12, 2018 5:24 pm
Location: Ireland
Has thanked: 1 time
Been thanked: 87 times
Contact:

Re: BMW i3 CCS/charge port controller

Post by Jack Bauer »

Voltage sense board just arrived thanks to muehlpower :D

Also got the keys to my i3 ....and a bdc...
Attachments
2021-06-18 09.11.21.jpg
2021-06-18 09.10.34.jpg
I'm going to need a hacksaw
Post Reply