BMW i3 CCS/charge port controller

Development and discussion of fast charging systems eg Chademo , CCS etc
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 »

brianbri6 wrote: Wed Nov 10, 2021 10:03 pm Yes I've seen the wiki before but I'm wondering because it has AC_DCC instead of AC_DCO is that for chademo?
The wiki says:
Only AC_DCO versions work for CCS. (Check if you have a MAC address on the label!)
brianbri6
Posts: 8
Joined: Fri Oct 29, 2021 2:28 pm

Re: BMW i3 CCS/charge port controller

Post by brianbri6 »

That is not what I'm asking. Let me try again is the label AC_DCC for chademo fast charging? I understand AC_DCO stands for CCS.
bitterandreal wrote: Wed Nov 10, 2021 10:07 pm
brianbri6 wrote: Wed Nov 10, 2021 10:03 pm Yes I've seen the wiki before but I'm wondering because it has AC_DCC instead of AC_DCO is that for chademo?
The wiki says:
Only AC_DCO versions work for CCS. (Check if you have a MAC address on the label!)
User avatar
chrskly
Posts: 145
Joined: Fri Feb 21, 2020 5:04 pm
Location: Dublin, Ireland
Has thanked: 39 times
Been thanked: 28 times
Contact:

Re: BMW i3 CCS/charge port controller

Post by chrskly »

"ACDC CHADEMO", see : https://www.realoem.com/bmw/enUS/partxref?q=9346819

Also, there is no mac address listed on the label.

brianbri6 wrote: Wed Nov 10, 2021 10:03 pm Yes I've seen the wiki before but I'm wondering because it has AC_DCC instead of AC_DCO is that for chademo?
bitterandreal wrote: Wed Nov 10, 2021 9:57 pm
brianbri6 wrote: Wed Nov 10, 2021 8:48 pm Hi everyone I've been watching development for a bit. I would like to know if this module is DC fast charging capable.
Read the wiki first…
https://openinverter.org/wiki/BMW_I3_Fa ... LIM_Module
brianbri6
Posts: 8
Joined: Fri Oct 29, 2021 2:28 pm

Re: BMW i3 CCS/charge port controller

Post by brianbri6 »

Thank you very much for the help! Has anyone worked with this chademo version or is there chademo thread for the Lim? I see a seller on eBay selling this module in particular. Thanks again.
chrskly wrote: Wed Nov 10, 2021 10:58 pm "ACDC CHADEMO", see : https://www.realoem.com/bmw/enUS/partxref?q=9346819

Also, there is no mac address listed on the label.

brianbri6 wrote: Wed Nov 10, 2021 10:03 pm Yes I've seen the wiki before but I'm wondering because it has AC_DCC instead of AC_DCO is that for chademo?
bitterandreal wrote: Wed Nov 10, 2021 9:57 pm
Read the wiki first…
https://openinverter.org/wiki/BMW_I3_Fa ... LIM_Module
User avatar
chrskly
Posts: 145
Joined: Fri Feb 21, 2020 5:04 pm
Location: Dublin, Ireland
Has thanked: 39 times
Been thanked: 28 times
Contact:

Re: BMW i3 CCS/charge port controller

Post by chrskly »

I'm pretty sure no one has tried getting chademo working with the LIM yet. At least they've not posted anything here if they have.
brianbri6 wrote: Wed Nov 10, 2021 11:04 pm Thank you very much for the help! Has anyone worked with this chademo version or is there chademo thread for the Lim? I see a seller on eBay selling this module in particular. Thanks again.
chrskly wrote: Wed Nov 10, 2021 10:58 pm "ACDC CHADEMO", see : https://www.realoem.com/bmw/enUS/partxref?q=9346819

Also, there is no mac address listed on the label.

brianbri6 wrote: Wed Nov 10, 2021 10:03 pm Yes I've seen the wiki before but I'm wondering because it has AC_DCC instead of AC_DCO is that for chademo?

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 »

So, once more onto the breach we go.

Modified the CAN message timings to mimic exactly those in logs from 2019 i3. Changed my state machine to use events as triggers to change to next state etc. Went to Efacec. Failed. Went home. Changed back to timers. Went back to Efacec. Works. Hmmm.

Our states are :

State 0 - Startup. entered upon plug in detection.
Tried to advance to state 1 via detection of 5% not ready pilot. Kinda works. Sometimes. 2 second timers works everytime.

State 1 - Initialisation. entered 2 seconds after plug in is detected.
This is the daddy. In this state the LIM attempts PLC comms with the station and if successful populates CAN messages 0x29E and 0x2EF with data such as voltage and current available from the station.
Now here's the kicker : Jump out of that state too soon and Mr.Efacec not happy. STAY in that state too long and Mr.Efacec not happy.
Now long is a piece of string? In this case anything under 2 seconds is too short and anything over 3.5 seconds is too long AFTER we populate those two CAN messages.

State 2 and 3 - cable test.
Nothing to see here. move along.

State 4 and 5 - Precharge and close contactors.
Nothing to see here. move along.

State 6 - Give those juicy CCS amps baby.

State 7,8 and 9 - Shutdown session.

Mr.Ionity was totally unimpressed by all of this and gave me the usual happy message.
At this stage I kinda feel like pressing the "I want my mommy" option when asked whether to enter ludicrous mode or not.
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 »

I’m failing to understand what “5% not ready” actually is. That’s not a specific state in the standard. I think it means the LIM sees 5% PWM from the EVSE but PLC isn’t set up yet.

I’m thinking there’s gotta be a status flag of some sort that lets you know that ether a) SLAC is already done so you’re freer to safely move on and/or b) modem chip is booted and ready to start SLAC, give me permission to continue. You shouldn’t be reliant on timers, different chargers are going to take different amounts of time in SLAC, some will take longer at contract negotiation, etc.

But you said before when you tried giving 5% on the bench the LIM started spitting out PLC frames right away (beacons or the start of SLAC, essentially). So I don’t know… :?

Another thought is why is this early process even a step that can be gated by another controller? These early parameters only concern the LIM and the charging station’s SECC (which is essentially the com board equivalent in the charging station).* The only reason that I’ve seen for interrupting this besides poor prox connection (which seems ruled out now) is a stupid one - the car is full, so it can’t accept a charge anyway so why communicate? Except DIN 70121 has a provision for a fault which is car full so you could set up coms and say that but I know of at least one automaker (probably multiple) that just doesn't communicate if they’re full which is not at all confusing for the poor driver. No sir.

Anyway. Might be worth getting a CAN log of a truly 100% full i3 and seeing how the LIM is commanded in such a state. Might provide some insight.

*(ironically, a lot of these SECCs use CAN to communicate back to the rest of the station components because it works so much better and PLC IS SO STUPID /rant).
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 »

Damien; i think what we need todo is play with the Lim and the 5% pwm line. Tension wise and Mili amp wise and check how we can get a 5% not ready flag.

For example maybe for some reason we need to amplify the abb signal. Or smooth it out. Don't forget that the Lim could be on a firmware with issues?
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 »

This is the data exchange between mcu and QCA chip on application of 5% duty to the lim :
https://github.com/damienmaguire/BMW-i3 ... dc_e46.sal

5% not ready = B2. +9v with 5% pwm

5% Ready = C2, +6v with 5% pwm
I'm going to need a hacksaw
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 »

Jack Bauer wrote: Fri Nov 12, 2021 8:43 am This is the data exchange between mcu and QCA chip on application of 5% duty to the lim :
https://github.com/damienmaguire/BMW-i3 ... dc_e46.sal

5% not ready = B2. +9v with 5% pwm

5% Ready = C2, +6v with 5% pwm
S 5% ready must be above 6volts.
Go above 9vdc it's not ready.
Go lower then six isn't ready.

If you would grab the old LIM / BMW hardware is it possible that the PP circuit is coming from another source then directly out the pin which is pulled down?

How does this match with the 5volt power source if you need 6?
Converting an Porsche Panamera
see http://www.wdrautomatisering.nl for bespoke BMS modules.
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 »

Wait a second. You’re not suppose to be at 6V with 5% PWM until the start of cable check. 6V 5% PWM is state C, and if you’re trying to do this right away, I could totally see the ABB being unhappy about it. You should be at 9V 5% PWM, state B2, until charge parameter discovery is over and you send your first cable check request.

To be clear to all, the 9/6V business is accomplished by putting certain resistances from pilot to ground in the LIM. You’re not injecting voltage or setting some regulator or something.
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 »

Yeah we only go to 5% ready in cable check.
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 »

Okay. Today I had to go on a little adventure to pick up some plumbing parts for the new place. Pro tip : Strapping 30 metres of pex to the roof of your ev will certainly increase the ol' Wh/Mile figure! Anyway, rolled up to my first stop at a Circontrol station. Flawless. Next up a nice friendly Efacec that I have used in the past. I mean what could go wrong? I just tested on a different Efacec yesterday and all was well. I confidently swipe the card and plug in contemplating the potential lunch menu in the service station. Well guess what? It don't work! Mr.Efacec say "Plug the cable" which is Efacec for "Please start PLC comms" and times out. I can see on the vcu that we are getting pilot and prox detection just fine but PLC is not happening. Hmmmm...where have we seen this behaviour before ??

So onto AC at 10kw we go and as I enjoy a leisurely lunch thoughts as they tend turn to what could be wrong here? Could the CCS end of the station be broken? Unlikely as an ID4 was charging before me. Why would one Efacec work but not another. Why would Circontrol work but not this Efacec in the space of about 90 mins?

Then this qoute from CCSknowitall springs to mind : ironically, a lot of these SECCs use CAN to communicate back to the rest of the station components because it works so much better and PLC IS SO STUPID.

Now I have a question : What frequency band does CCS PLC use?

The only cars I have seen with CCS (Model 3 and i3) Have their charge controllers VERY near the charge port ....
Attachments
2021-11-13 12.55.20.jpg
2021-11-13 12.50.20.jpg
2021-11-13 10.56.13.jpg
2021-11-13 10.55.27.jpg
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 »

P.S. I have also discovered that there are at least 3 other groups with 2 cars using the LIM but they don't like to share ...
I'm going to need a hacksaw
davefiddes
Posts: 211
Joined: Mon Jan 18, 2021 12:39 pm
Location: Edinburgh, Scotland, UK
Has thanked: 14 times
Been thanked: 35 times

Re: BMW i3 CCS/charge port controller

Post by davefiddes »

2MHz to 30MHz according to the QCA7000 datasheet with ODFM sub-carriers at 24.414kHz intervals if Wikipedia is to be believed.

Have you got a decent twist on the PP/CP lines? That seems to be the intended cabling for non-AC power use of HomePlug and must help. Poor comms might explain some of the case where PLC comes up but there isn't much activity. If I'm following the various problems correctly not all have these symptoms though.
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 »

Yeah my wiring is metres long, many joins, untwisted and uses the car body for earth return. No potential problems at those frequencies :)
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 »

My Kona has at least 2.5m of wiring from port to controller, and a branch off to the OBC.
PLC comms is designed to work over household mains wiring, so ought to be fairly robust, though the car implementation may be more sensitive - I heard a third-hand comment that "the power level used was a balance between working reliably, whilst not accidentally communicating with the car in the next bay" so may not be so much margin than a hime-mains network.
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 »

It’s possible that other efacec station is running different software.

The pilot wire is single ended, and twisting it with PP won’t have any effect.

Keep in mind the SECC pilot wire is at least a few meters long too, cable length + internal wiring (1-3 meters).

It’s hilarious other groups won’t share. Maybe they got a secret doc from BMW??
User avatar
muehlpower
Posts: 570
Joined: Fri Oct 11, 2019 10:51 am
Location: Germany Fürstenfeldbruck
Has thanked: 12 times
Been thanked: 96 times

Re: BMW i3 CCS/charge port controller

Post by muehlpower »

BMW has no twisted wires, would be difficult with the 16mm² PE, but the DC lines are shielded and grounded on both sides with 4mm². Pilot and proxi also be shielded. The shield is at the LIM on 2B/5 and groundet on the other side. PP and CP are 0.75mm²
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 »

davefiddes wrote: Sat Nov 13, 2021 3:18 pm 2MHz to 30MHz according to the QCA7000 datasheet with ODFM sub-carriers at 24.414kHz intervals if Wikipedia is to be believed.
Yep, in practice 2-28 MHz with the HF ham bands notched out.

I’ve seen it couple over a bad electrical connection so I got bogus low level pilot states but valid PLC data. Check all your connections.
davefiddes
Posts: 211
Joined: Mon Jan 18, 2021 12:39 pm
Location: Edinburgh, Scotland, UK
Has thanked: 14 times
Been thanked: 35 times

Re: BMW i3 CCS/charge port controller

Post by davefiddes »

:oops: misunderstood how things were wired.
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 »

Ah ok. Sounds like i'm on the wrong track again:) Was thinking that some stray capacitance in the leads might attenuate the plc but leave the 1khz pilot untouched.
I'm going to need a hacksaw
MattsAwesomeStuff
Posts: 871
Joined: Fri Apr 26, 2019 5:40 pm
Has thanked: 278 times
Been thanked: 165 times

Re: BMW i3 CCS/charge port controller

Post by MattsAwesomeStuff »

CCSknowitall wrote: Sat Nov 13, 2021 4:25 pmIt’s hilarious other groups won’t share. Maybe they got a secret doc from BMW??
In some ways, I get it. If they're taking an open source design and paying engineers to further develop it, why would they spend money to help their competition?

But in other ways... they wouldn't have had any help at all if Damien hadn't started down this trail, and they're already benefiting from the open source design and the time/money Damien has sunk into it. So it's a bit of "What's yours is mine, and what's mine is mine only." Kinda greedy and disrespectful. But then, back to the above, who spend the money to help their competition freeload?

The nice solution would be, when they have products for sale and are profiting from them, start off giving 25% of profits to Damien as a thank you, for the first year or so. So at least morally they're, y'know... not being scumbags.
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 want to break down some things in Damien's post further back on this page about states.
State 0 - Startup. entered upon plug in detection.
Tried to advance to state 1 via detection of 5% not ready pilot. Kinda works. Sometimes. 2 second timers works everytime.
Appears to be actually a pretty big step. A lot of stuff potentially happens here: detection of 5% pilot, SLAC/connection processing, SECC Discovery Protocol (SDP), protocol handshake request, session set up, service discovery, service payment selection, and finally contract authentication - where you could potentially sit for an indeterminate amount of time.
State 1 - Initialisation. entered 2 seconds after plug in is detected.
This is the daddy. In this state the LIM attempts PLC comms with the station and if successful populates CAN messages 0x29E and 0x2EF with data such as voltage and current available from the station.
Now here's the kicker : Jump out of that state too soon and Mr.Efacec not happy. STAY in that state too long and Mr.Efacec not happy.
Now long is a piece of string? In this case anything under 2 seconds is too short and anything over 3.5 seconds is too long AFTER we populate those two CAN messages.
If what you say is true here, and I would study those two CAN messages in detail to make sure this is true, this is the stage you actually get the parameters of the station aka, charge parameter discovery. If the messages appear before having valid data in them, they might appear earlier in the actual CCS stages. Note, a station can stay in charge parameter discovery by saying EVSE processing ongoing instead of finished. If you try to jump the gun at any stage which could have EVSE processing, you’ll fault the station. Some stations will only take a single message to be ready, others take longer (~anywhere from 3-30s in my experience). Most vehicles will time out here after 60 second if the EVSE is not done (and likely there’s something wrong with the station).
State 2 and 3 - cable test.
Nothing to see here. move along.
Cable check is one step/state in CCS land. Not sure what the difference is here. It seems silly/incorrect to have two states for this. Once cable check is complete by the station with an “EVSEProcessing: finished” flag, the vehicle sends the first PreChargeReq.
State 4 and 5 - Precharge and close contactors.
Nothing to see here. move along.
Likely state 4 = precharge and state 5 = power delivery request. Note I previously mentioned you had a case of sending one PLC packet with a recharge voltage request of what appeared to be your pack max voltage so you might want to look into this a bit, you might be moving to the next state before changing the input value.
State 6 - Give those juicy CCS amps baby.
Current demand request (EV to EVSE) and current demand response (EVSE to EV). While this isn’t too exciting communications wise, you do need to look into the flag for EVSE status as it took you a bit to react last time. Also you should try to react as soon as possible to an EVSE emergency shutdown or a low level pilot state change. Some stations, notably ABB, will stop speaking PLC (closing the TCP connection first) when they go into emergency shutdown, and change their pilot state to static.
State 7,8 and 9 - Shutdown session.
Likely power delivery, welding detection, and session stop.
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: Mon Nov 08, 2021 8:05 pm ionity_preauth and ionity_rfid have no high level packets so I can't analyze. For preauth it looks like you're starting SLAC but it is not complete. I will have to look into this in more detail.
Had some time to look at ionity_preauth again. It appears that the LIM is attempting SLAC, but is failing to send CM_SLAC_MATCH.REQ, and repeating the first part of the handshake three times before giving up. The ABB machine appears to be doing its part correctly here.

You can see on page 39 of this document where it goes over what the various SLAC messages do.

I have no idea why the LIM would fail here.
Post Reply