BMW i3 CCS/charge port controller

Development and discussion of fast charging systems eg Chademo , CCS etc
tom91
Posts: 1308
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 103 times
Been thanked: 216 times

Re: BMW i3 CCS/charge port controller

Post by tom91 »

I like EV-Builder and muehlpower have developed and integrated the BMW I3 controls into our own VCUs, thus being able to do a deeper integration with the rest of our builds (and customers).

If you can code nothing is stopping you (except CAN bus id clashes ect) of further intergrating the Zombie with your application by adding in decoding the required BMS information from CAN and then using that along with the stored parameters to limit the DCFC.
Founder Volt Influx https://www.voltinflux.com/
Webstore: https://citini.com/
User avatar
uhi22
Posts: 601
Joined: Mon Mar 14, 2022 3:20 pm
Location: Ingolstadt/Germany
Has thanked: 91 times
Been thanked: 413 times

Re: BMW i3 CCS/charge port controller

Post by uhi22 »

tom91 wrote: Sun Jan 21, 2024 9:16 pm Nope, the Zombie currently follows the limits from the Web Interface for the DC fastcharging. It does not change the current limit or voltage limits on its own.
I'm not the Zombie specialist, but if it follows the generic OI approach, I would expect that it is possible to create a receive-CAN-mapping in the Web interface, so that it is possible to use a signal from CAN (from the BMS) to change the limit dynamically. Maybe I do not have the full picture.
tom91
Posts: 1308
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 103 times
Been thanked: 216 times

Re: BMW i3 CCS/charge port controller

Post by tom91 »

uhi22 wrote: Mon Jan 22, 2024 9:27 am I'm not the Zombie specialist, but if it follows the generic OI approach, I would expect that it is possible to create a receive-CAN-mapping in the Web interface, so that it is possible to use a signal from CAN (from the BMS) to change the limit dynamically. Maybe I do not have the full picture.
No you cannot as it is not in the code as I said. Edit: I will double check now.

In theory you would need to modify a "Parameter" over CAN and not a spot value, which are the mappable ones.
image.png
Founder Volt Influx https://www.voltinflux.com/
Webstore: https://citini.com/
evMacGyver
Posts: 111
Joined: Tue Jun 15, 2021 5:44 pm
Location: Finland
Has thanked: 21 times
Been thanked: 5 times

Re: BMW i3 CCS/charge port controller

Post by evMacGyver »

In the past I could not get LIM to work, its 61356828052-01 2017-08-16 with BMW i3 charging port. For AC charge it will lock the charge plug but never activate CP to activate EVSE, I get CP and PP amps and chargepower is transmitted to the LIM. CCS weldtest always fails to d12, which should be "0011 Last requested contactor adhesive diagnosis could not be carried out". Could weld test needed for AC, no?

Now I moved it to table test, 15R resistors simulating contactors and switches for cp door and wake. If I supply voltage to measuring input, state changes from d28 to d24 and I still can't get it to pass weldtest just d12 as a result.

Could there be something I'm doing wrong? Also AC charge missing CP activation is a bit mystery.
Martineves
Posts: 4
Joined: Fri Mar 15, 2024 12:20 pm

Re: BMW i3 CCS/charge port controller

Post by Martineves »

Dear openinverter community.

This is my first post in this forum and I hope to get some help from you on a urgent issue I have. I would appreciate answer from someone who knows this in detail (no guesstimation please). The unit I have is the 61 35 9 454 319 and I am only interested in using it as AC Charging controller.

Question: What is the very minium requirements to achive functional CP, PP comminucation allowing for AC charging from the EVSE. Both in terms of wiring and additional components (lock, LED, voltage measurement etc.) but also if there are particular CAN messeges needed?

I have spent many hours reading on this forum and the LIM Wiki page, but in my case where only AC charging is of interest and I will have very limited time for testing, I am hoping to cut some time if anyone out there knows exactly what is needed.

Thank you in advance guys / Martin
tom91
Posts: 1308
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 103 times
Been thanked: 216 times

Re: BMW i3 CCS/charge port controller

Post by tom91 »

Martineves wrote: Fri Mar 15, 2024 12:41 pm Question: What is the very minium requirements to achive functional CP, PP comminucation allowing for AC charging from the EVSE. Both in terms of wiring and additional components (lock, LED, voltage measurement etc.) but also if there are particular CAN messeges needed?
Get a ZombieVerter and wire it all up.

You need to wire to the LIM the:
1.Charge Port
2.Charge Lock
3.Led
4.ZombieVerter

Best to have on hand: The contactors.

I know for a fact from my testing to do the AC charging you do not need the DC voltage sensing. Turns out you do need this to work atleast that is what my bench testing showed me.

How are you controlling the onboard charger? The ZombieVerter will populate all the relevant info in the Spot Values you can the map onto the CAN bus.
Founder Volt Influx https://www.voltinflux.com/
Webstore: https://citini.com/
Martineves
Posts: 4
Joined: Fri Mar 15, 2024 12:20 pm

Re: BMW i3 CCS/charge port controller

Post by Martineves »

Thanks for your answer @tom91, much appreciated.

I do not have the time to get a ZombieVerter, as the project need to leave my shop next week. The Charge Port, Charge Lock and LED are all wired up.

How do I know if the contactors are actually needed? I assume they could be simulated using resistors insted or the coils (15Ohm 6W according to wiki)?

The OBC is controlled by the BMS (n-BMS Lithium Balance) and on the same 500kbit/s bus I also have a MRS CAN controller which I use to put the BMS in ACTIVE LOAD or CHARGE state, depending on driving or charging. That unit should be able to act in the same way as the ZombieVerter. Which are the values that needs to be transmitted to allow for AC charging and which of those can be static/fixed and which ones need to be "dynamic/actual values"?

Thanks once again!
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 »

You should receive the necessary information from the LIM for the maximum current from 3B4h. With 3E9h you have to transmit the charging status to the LIM so that it controls the LEDs and locking etc. correctly. And a signal, e.g. byte[7] = 0x2A to 51Ah to prevent the LIM from going to sleep. It may also need information for the vehicle standstill (P/R/N/D at 3F9h and speed at 1A1h), a second counter at 328h and the open charging flap (hardware bridge). You do not need the voltage measurement and DC releases.
tom91
Posts: 1308
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 103 times
Been thanked: 216 times

Re: BMW i3 CCS/charge port controller

Post by tom91 »

Martineves wrote: Sat Mar 16, 2024 12:19 pm I do not have the time to get a ZombieVerter, as the project need to leave my shop next week. The Charge Port, Charge Lock and LED are all wired up.
All info is in the zombieverter code, I am not going to list it out for you. Feels like you clearly messed up your planning and are trying to get others to solve it for you.

Here is the BMW I3 LIM github, it includes code that was used before it was tranfered into the ZombieVerter, possibly does not support AC charging, along with a CAN dbc.

https://github.com/damienmaguire/BMW-i3-CCS

https://github.com/damienmaguire/Stm32- ... /i3LIM.cpp Here is Zombie file you need to use. Alot of the values are fixed so it is quite straight forward.

Even the WIKI has a list of the CAn messages. https://openinverter.org/wiki/BMW_I3_Fa ... LIM_Module
Founder Volt Influx https://www.voltinflux.com/
Webstore: https://citini.com/
Martineves
Posts: 4
Joined: Fri Mar 15, 2024 12:20 pm

Re: BMW i3 CCS/charge port controller

Post by Martineves »

Thank you tom91 and muehlpower for your feedback. Your analysis of the situation tom91 is correct, my first project using a 20kW OBC so all of a sudden the "simplified charging controller" was not working beyond 20A. I am not asking for you to solve my issues, just to help me in any way possible.

Today we have tried to use the code from the Zombieverter as closely as possible, and we have ended up with the following:

1. The LIM wakes up when we start to broadcast on the canbus.

2. When plugging in the EVSE, it locks the lock and the LED flashes "orange/red-isch" for a couple of times before it flashes in blue.

3. The voltage on the CP pin drops from 12 to 9V but it does not transition to 6V. We can clearly se a change in PWM when going from 13A to 10-8A on the EVSE, which we also can verify in 3BF Pilot current. This maybe does´nt say much but at least we seem to have proper CP signal and no wiring or interference issues.

4. Nothing more happens and when disconnecting the EVSE the lock unlocks and the LED turns white.

We captured a logfile (that should be Savvycan compatible) of the last session and would really appreciate if any one of you could take a look and se if there is any obvoius mistakes we have made?

https://we.tl/t-Q4kyCe35Hf

Thank you in advance
tom91
Posts: 1308
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 103 times
Been thanked: 216 times

Re: BMW i3 CCS/charge port controller

Post by tom91 »

Martineves wrote: Sun Mar 17, 2024 3:17 pm Thank you in advance
Will any form of remboursement be provided for this?
Founder Volt Influx https://www.voltinflux.com/
Webstore: https://citini.com/
Martineves
Posts: 4
Joined: Fri Mar 15, 2024 12:20 pm

Re: BMW i3 CCS/charge port controller

Post by Martineves »

tom91 wrote: Sun Mar 17, 2024 4:02 pm Will any form of remboursement be provided for this?
I am willing to pay for the support if this helps! Send me details in PM!?
tom91
Posts: 1308
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 103 times
Been thanked: 216 times

Re: BMW i3 CCS/charge port controller

Post by tom91 »

Turns out you do need the Voltage Sense to work for the BMW I3 LIM to be happy to allow AC charging, it will however start AC charging with the unexpected voltage at charge port, if the HV U sense is at 0. Once you cycle the ignition it will test contactors.
Founder Volt Influx https://www.voltinflux.com/
Webstore: https://citini.com/
alexbeatle
Posts: 155
Joined: Sun Jan 03, 2021 6:12 am
Has thanked: 46 times
Been thanked: 15 times

Re: BMW i3 CCS/charge port controller

Post by alexbeatle »

Is it an issue that LIM always reports that the charging plug is connected, regardless of whether it is or not? I'm using the i3 charge socket.
Other CAN values seem to update correctly - ex. pilot current, pp_status, charging_type etc.
On the ac charger itself, when unplugged from the socket only "power" LED is lit, when plugged into the socket, "connected" LED turns on too.

plugged in
image.png
vs.
unplugged
image.png
tom91
Posts: 1308
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 103 times
Been thanked: 216 times

Re: BMW i3 CCS/charge port controller

Post by tom91 »

alexbeatle wrote: Thu Apr 04, 2024 1:21 am Is it an issue that LIM always reports that the charging plug is connected
What is the LED colour that the LIM drives? If it is red it is an issue. I would say check your wiring for Proximity and the grounding on that 6 way connector.
Founder Volt Influx https://www.voltinflux.com/
Webstore: https://citini.com/
alexbeatle
Posts: 155
Joined: Sun Jan 03, 2021 6:12 am
Has thanked: 46 times
Been thanked: 15 times

Re: BMW i3 CCS/charge port controller

Post by alexbeatle »

tom91 wrote: Thu Apr 04, 2024 8:54 am What is the LED colour that the LIM drives? If it is red it is an issue. I would say check your wiring for Proximity and the grounding on that 6 way connector.
None of the LEDs driven by the LIM turn on. I tested LEDs with the meter, they light up and are the correct polarity. I tested the voltage on LIM outputs for the LEDs (2B-6, 2B-7, 2B-8 referenced to 2B-9) - 0VDC on all of them whether the charger is inserted or not.

Since it's i3 socket the PP and CP are already prewired to the correct connector which goes to LIM 2B input. I verified that there's continuity from the socket to the correct connector pins.
PP to ground reads 2k7, which matches wiki . I have a CC1 socket.
image.png
My LIM came from Ireland. So maybe a mismatch!?
There's a note on the wiki about the "US" LIMs.
image.png
The connector from my CCS1 socket doesn't have a wire on 2B-6. And 2B-2 and 2B-6 are not joined inside of my LIM. Below is a schematic of what it looks like inside of LIM. So looks like if we have a none i3 socket, just jumping 2B-2 and 2B-6 will do the trick and no need for the external resistor. My socket did come from the i3 so I left 2B-6 floating.

Still looking where the trace goes further as it disappears to a sub layer after 47k resistor, but the Vsense matches what I'd expect given the voltage divider in the charger plug+socket+LIM:
Charger unplugged - 4.5VDC; charger plugged in - approx. 1.5VDC; charger plugged in and the button on the J1772 pressed (stop charging) - 2.7VDC.

Not sure what component is which I marked as ?. Read close to 0ohms regardless of polarity.
IMG_20240404_135931_edit_301163893932690.jpg
IMG_20240404_104639.jpg
tom91
Posts: 1308
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 103 times
Been thanked: 216 times

Re: BMW i3 CCS/charge port controller

Post by tom91 »

Oh so you have a Type 2 coded LIM, note the wiki states that the BMW I3 Type 2 does not have a resistance to ground.

Try to remove the resistance to ground in the charge port to see if this allows it to operate as you would expect. As you would want the LIM to wake up correctly when the plug gets inserted.
Founder Volt Influx https://www.voltinflux.com/
Webstore: https://citini.com/
alexbeatle
Posts: 155
Joined: Sun Jan 03, 2021 6:12 am
Has thanked: 46 times
Been thanked: 15 times

Re: BMW i3 CCS/charge port controller

Post by alexbeatle »

tom91 wrote: Thu Apr 04, 2024 10:06 pm Oh so you have a Type 2 coded LIM, note the wiki states that the BMW I3 Type 2 does not have a resistance to ground.

Try to remove the resistance to ground in the charge port to see if this allows it to operate as you would expect. As you would want the LIM to wake up correctly when the plug gets inserted.
Removed. Still LIM reports the Plug Connection as plugged in, even with nothing inserted. All LEDs are off, plugged in or unplugged. Charger "Connected" LED turns on when plugged in, turns off when unplugged.
Snapshot of data when charger plugged in (pilot current =32A) vs unplugged (pilot current 0A)
image.png
Maybe the R6 coding makes a difference since this is a CC2 LIM!?
image.png
Edit: Ok. Something properly weird. While SavvyCAN reports plugged in all the time. My teensy VCU reads "no plug" when nothing is connected and "plug error" when cable plugged in. Which is something I'd expect given the R6 values in CCS2, none of which match those in CC1 plug.
In the VCU I'm decoding 0x3B4 byte2: PP = ((incoming.buf[2] >> 0) & 3);
Byte 2 when nothing is plugged in: 10001100
Byte 2 when plug is inserted: 10001110

Before removing the resistor from the socket. Both SavvyCAN and the VCU reported the same thing.
tom91
Posts: 1308
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 103 times
Been thanked: 216 times

Re: BMW i3 CCS/charge port controller

Post by tom91 »

From the DBC file, it bit one that shows PP state, but most likely the three other bits also mean something.
image.png
What is the Cable limit after the resistor is removed?

If the LED lights up when plugging in things should be okay, what does it report the cable limit as?
Founder Volt Influx https://www.voltinflux.com/
Webstore: https://citini.com/
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 »

the meaning of the 2 bits (16+17) is:
00 Not plugged in
01 Plugged in
10 Error
11 Signal invalid
the meaning of the next 2 bits (18+19) is:
00 Button not pressed
01 Button pressed
11 Signal invalid
only for type 1
alexbeatle
Posts: 155
Joined: Sun Jan 03, 2021 6:12 am
Has thanked: 46 times
Been thanked: 15 times

Re: BMW i3 CCS/charge port controller

Post by alexbeatle »

Here's what I'm receiving on 0x3b4, decoded per my understanding. Looking back at my notes, before removing the resistor LIM did id the charger as Type 2 AC, but now doesn't.
I have watchdog setup and LIM Alive counter on 0x272 does update, so the data is refreshing.

Nothing plugged in to the charge socket:
byte[0] =0 - charger amps 0A
byte[1] =0 - cable max. 0A
byte[2] =10001100 - cable not plugged in (bits:0-1 = 00), CCS1/J1772 plug button invalid (bits:2-3 = 11)
byte[3] =11110001 - charge flap locked (bits:0-1 = 01), CP lock unlocked (bits:2-3 =00)
byte[4] =10111000 - pilot none (bits:0-2 =000), ccs plug invalid (bits:3-4 =11), plug connection - completely plugged in (bits:5-6 =01)
byte[5] =11111111
byte[6] =0 - charger type none
byte[7] =11111101 - volts on DC (scale 2V) = 251V

Charger plugged in and the button on the charger isn't pressed as well as plugged in and the button on it is pressed.

byte[0] =100000 - charger amps 32A (correct)
byte[1] =0 - cable amps (0A)
byte[2] =10001110 - cable error (bits:0-1 = 10), CCS1/J1772 plug button invalid (bits:2-3 = 11)
byte[3] =11110001 - charge flap locked (bits:0-1 = 01), CP lock unlocked (bits:2-3 =00)
byte[4] =10111001 - pilot not charge ready 10-95% (bits:0-2 =001), ccs plug invalid (bits:3-4 =11), plug connection - completely plugged in (bits:5-6 =01)
byte[5] =11111111
byte[6] =0 - charger type none
byte[7] =11111101 - volts on DC (scale 2V) = 251V
tom91
Posts: 1308
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 103 times
Been thanked: 216 times

Re: BMW i3 CCS/charge port controller

Post by tom91 »

So it could be a coding thing meaning using a type 2 LIM will not work with a Type 1 socket. You can always try adding the jumper as per wiki.
Founder Volt Influx https://www.voltinflux.com/
Webstore: https://citini.com/
alexbeatle
Posts: 155
Joined: Sun Jan 03, 2021 6:12 am
Has thanked: 46 times
Been thanked: 15 times

Re: BMW i3 CCS/charge port controller

Post by alexbeatle »

alexbeatle wrote: Thu Apr 04, 2024 9:29 pm The connector from my CCS1 socket doesn't have a wire on 2B-6. And 2B-2 and 2B-6 are not joined inside of my LIM. Below is a schematic of what it looks like inside of LIM. So looks like if we have a none i3 socket, just jumping 2B-2 and 2B-6 will do the trick and no need for the external resistor. My socket did come from the i3 so I left 2B-6 floating.
I removed the resistor permanently. So I followed my schematics and jumped 2B-2 and 2B-6 to reinto 2k7 resistor from PP to ground. Below is the data I've captured.

Also attaching the sticker from my LIM module.
I scrolled through all of the eBay listings last night. Were all of the LIMs manufactured in Ireland but then coded per the region!? All stickers I found say Ireland. Even those pulled from the scrapped cars in the US - say Ireland. Mine was actually shipped from a seller in Ireland.

There was a good last minute deal and I bought another LIM module last night ensuring it's from the US vehicle. Should arrive next week-ish. Hopefully it will give better results.

Thanks for your help. I'll report back when the new unit arrives.
IMG_20240405_104112.jpg
nothing plugged in
0 =0 - charger amps 0A
0 =0 - cable max. 0A
10001101 - cable plugged in (bits:0-1 = 01), CCS1/J1772 plug button invalid (bits:2-3 = 11)
11110001 - charge flap locked (bits:0-1 = 01), CP lock unlocked (bits:2-3 =00)
10111000 - pilot none (bits:0-2 =000), ccs plug invalid (bits:3-4 =11), plug connection - completely plugged in (bits:5-6 =01)
11111111
0 - charger type none
11111101 - volts on DC (scale 2V) = 251V

plugged in with wall charger powered off
0 =0 - charger amps 0A
0 =0 - cable max. 0A
10001110 - cable error (bits:0-1 = 10), CCS1/J1772 plug button invalid (bits:2-3 = 11)
11110001 - charge flap locked (bits:0-1 = 01), CP lock unlocked (bits:2-3 =00)
10111000 - pilot none (bits:0-2 =000), ccs plug invalid (bits:3-4 =11), plug connection - completely plugged in (bits:5-6 =01)
11111111
0 - charger type none
11111101 - volts on DC (scale 2V) = 251V

plugged in
0 =0 - charger amps 0A
0/111111 -0/63 - cable max. 0A/63A (jumping back and forth in confusion !? R6=480Ohm isn't defined for CCS2)
10001110 - cable error (bits:0-1 = 10), CCS1/J1772 plug button invalid (bits:2-3 = 11)
11110001 - charge flap locked (bits:0-1 = 01), CP lock unlocked (bits:2-3 =00)
10111001 - pilot not charge ready 10-95% (bits:0-2 =001), ccs plug invalid (bits:3-4 =11), plug connection - completely plugged in (bits:5-6 =01)
11111111
10 - charger type AC-type2
11111101 - volts on DC (scale 2V) = 251V

plugged in with button pressed
100000 =32 - charger amps 0A
111111 - cable max.63A (steady)
10001110 - cable error (bits:0-1 = 10), CCS1/J1772 plug button invalid (bits:2-3 = 11)
11110001 - charge flap locked (bits:0-1 = 01), CP lock unlocked (bits:2-3 =00)
10111001 - pilot not charge ready 10-95% (bits:0-2 =001), ccs plug invalid (bits:3-4 =11), plug connection - completely plugged in (bits:5-6 =01)
11111111
10 - charger type AC-type2
11111101 - volts on DC (scale 2V) = 251V
alexbeatle
Posts: 155
Joined: Sun Jan 03, 2021 6:12 am
Has thanked: 46 times
Been thanked: 15 times

Re: BMW i3 CCS/charge port controller

Post by alexbeatle »

alexbeatle wrote: Fri Apr 05, 2024 6:36 pm
There was a good last minute deal and I bought another LIM module.....
Just FYI to the community.
Beware of the good deals. DOA.
Attachments
IMG_20240408_104118.jpg
IMG_20240408_104124.jpg
Post Reply