BMW I3 Fast Charging LIM Module: Difference between revisions
Jason arnold (talk | contribs) (→Programming a new LIM: expanded contents with part numbers; reformatted section for readability) |
|||
Line 310: | Line 310: | ||
https://openinverter.org/forum/viewtopic.php?p=43848#p43848 | https://openinverter.org/forum/viewtopic.php?p=43848#p43848 | ||
He caught a CAN log of the programming session https://github.com/damienmaguire/BMW-i3-CCS/tree/main/Programming/Logs | He caught a CAN log of the programming session: https://github.com/damienmaguire/BMW-i3-CCS/tree/main/Programming/Logs | ||
Hopefully we figure out how to do it with a few CAN messages. | Hopefully we figure out how to do it with a few CAN messages. In the meantime, Damien is offering LIM programming as a service: https://www.evbmw.com/index.php/evbmw-webshop/evbmw-serv/limprg. | ||
==== Basic shopping list if you want to program a LIM: ==== | ====Basic shopping list if you want to program a LIM:==== | ||
* Software : Esys 3.36 from here : | *Software: | ||
* pszdata lite from here : | **Esys 3.36 from here: https://disk.yandex.ru/d/3XLfVVYHFq8qQw | ||
* Hardware : LIM ( | **pszdata lite from here: https://disk.yandex.ru/d/Y0w0r5T1ElMVdA | ||
* BMW i3 BDC (Body Domain Controller) basically the main ecu in the i3 the gates all the data around the car. | *Hardware: | ||
* Car key from the same car as the BDC. | **BMW LIM ([[#LIM hardware|see "LIM hardware" section below]]), connectors and pins ([[#Connectors and Pinouts|see "Connectors and Pinouts" section above]]). | ||
* BDC simulator : | **BMW i3 BDC (Body Domain Controller): basically the main ecu in the i3 the gates all the data around the car. | ||
* Enet cable : | ***Damien sourced his from: https://www.evbreakers.com/ noting ''They even threw in the plugs and few cm of harness for free.'' | ||
* USB to | ***According to realoem.com, the first LIM (used in 2014) was p/n 61359354010 | ||
* Two extra pins for Conn8 on the BDC to bring out PT CAN. | ****A fuller list of the various LIMs over the subsequent years can be found here here:https://www.realoem.com/bmw/enUS/partxref?q=61359354010. Thankfully, there is a very wide retro/cross-compatibility | ||
* DC power supply or 12v battery. | ****Also found some part numbers in ebay listings not seen in the realoem list (maybe a North America vs EU thing?): | ||
*****61-35-8-715-974, 61-35-5-A40-2F9 | |||
**Car key from the same car as the BDC. | |||
***Wondering if a non-matching used or new fob could be used/reprogrammed if the BDC donor's VIN was known? | |||
**BDC simulator: https://www.aliexpress.com/item/1005002317110375.html | |||
**Enet cable: https://bcables.com/ | |||
** USB to Ethernet adapter if your PC / laptop does not have a spare Ethernet port. | |||
**Two extra pins for Conn8 on the BDC to bring out PT CAN. | |||
*DC power supply or 12v battery. | |||
== Charge control == | == Charge control== | ||
The EVSE (charging station) shares its limits with PWM during IEC 61851/ J1772 AC charging or PLC during DIN 70121 or ISO 15118 CCS sessions, but often the car can not handle the max available power of the charging station. | The EVSE (charging station) shares its limits with PWM during IEC 61851/ J1772 AC charging or PLC during DIN 70121 or ISO 15118 CCS sessions, but often the car can not handle the max available power of the charging station. | ||
Line 339: | Line 347: | ||
For LIMs 61 35 6 828 052 ''and later'' (to be confirmed) | For LIMs 61 35 6 828 052 ''and later'' (to be confirmed) | ||
# HV battery voltage to be present at vehicle side of contactors | #HV battery voltage to be present at vehicle side of contactors | ||
# Charge Port door state is closed, feedback in 0x272 byte 2 | #Charge Port door state is closed, feedback in 0x272 byte 2 | ||
# Charge Port Voltage Sense feedback with contactors open needs to be above 60V | #Charge Port Voltage Sense feedback with contactors open needs to be above 60V | ||
## Fault set in 0x272 byte 2 | ##Fault set in 0x272 byte 2 | ||
# Ignition in 0x12F byte 2 needs to toggle from to OFF 0x88 to ON 0x8a | #Ignition in 0x12F byte 2 needs to toggle from to OFF 0x88 to ON 0x8a | ||
# LIM will cycle contactors during weld test and clear fault in 0x272 byte 2 | #LIM will cycle contactors during weld test and clear fault in 0x272 byte 2 | ||
For LIMs ''before'' 61 35 6 828 052 (to be confirmed) | For LIMs ''before'' 61 35 6 828 052 (to be confirmed) | ||
# HV battery voltage to be present at vehicle side of contactors | #HV battery voltage to be present at vehicle side of contactors | ||
# Charge Port door state is closed, feedback in 0x272 byte 2 | #Charge Port door state is closed, feedback in 0x272 byte 2 | ||
# 12V permanent to be connected to the LIM | #12V permanent to be connected to the LIM | ||
# Ignition in 0x12F byte 2 needs be ON 0x8a | #Ignition in 0x12F byte 2 needs be ON 0x8a | ||
# LIM will cycle contactors during weld test and clear fault in 0x272 byte 2 | #LIM will cycle contactors during weld test and clear fault in 0x272 byte 2 | ||
===Battery-dependent charging current control=== | ===Battery-dependent charging current control === | ||
During (fast) charging a cell voltage and cell temperature dependent current limit is very important. | During (fast) charging a cell voltage and cell temperature dependent current limit is very important. | ||
Line 394: | Line 402: | ||
|could also be sent by BMS | |could also be sent by BMS | ||
|- | |- | ||
| 0x12F | |0x12F | ||
|Wake up | |Wake up | ||
|VCU | |VCU | ||
Line 401: | Line 409: | ||
|- | |- | ||
|0x3E9 | |0x3E9 | ||
| Main LIM control | |Main LIM control | ||
| VCU | |VCU | ||
|200ms | |200ms | ||
|needed | |needed | ||
|- | |- | ||
|0x2F1 | | 0x2F1 | ||
|Lim DC charge command 2. | |Lim DC charge command 2. | ||
|VCU | |VCU | ||
Line 414: | Line 422: | ||
|0x2FA | |0x2FA | ||
|Lim DC charge command 3. | |Lim DC charge command 3. | ||
|VCU | | VCU | ||
|80ms...1s | |80ms...1s | ||
|needed (low interval during CCS start up) | |needed (low interval during CCS start up) | ||
Line 422: | Line 430: | ||
|VCU | |VCU | ||
|100ms | |100ms | ||
|needed (constant values work) | | needed (constant values work) | ||
|- | |- | ||
|0x431 | |0x431 | ||
Line 436: | Line 444: | ||
|display SoC needed | |display SoC needed | ||
|- | |- | ||
| 0x03C | |0x03C | ||
|Vehicle status | |Vehicle status | ||
|VCU | |VCU | ||
Line 448: | Line 456: | ||
|(constant values) 10ms works needed? | |(constant values) 10ms works needed? | ||
|- | |- | ||
| 0x2A0 | |0x2A0 | ||
|Central locking | |Central locking | ||
|VCU | |VCU | ||
Line 468: | Line 476: | ||
|0x3A0 | |0x3A0 | ||
|Vehicle condition | |Vehicle condition | ||
|VCU | | VCU | ||
|200ms | |200ms | ||
|(constant values) needed? | |(constant values) needed? | ||
Line 481: | Line 489: | ||
|Network management | |Network management | ||
|VCU | |VCU | ||
|200ms | | 200ms | ||
|(constant values) needed? | |(constant values) needed? | ||
|- | |- | ||
Line 487: | Line 495: | ||
|Network management 2 | |Network management 2 | ||
|VCU | |VCU | ||
|200ms | | 200ms | ||
|(constant values) needed? | | (constant values) needed? | ||
|- | |- | ||
|0x512 | |0x512 | ||
|Network management edme | |Network management edme | ||
|VCU | |VCU | ||
|200ms | | 200ms | ||
|(constant values) needed? | |(constant values) needed? | ||
|- | |- | ||
Line 515: | Line 523: | ||
|- | |- | ||
|0x3E8 | |0x3E8 | ||
|OBD reset | | OBD reset | ||
| VCU | |VCU | ||
|1s | |1s | ||
|(constant values) needed? | | (constant values) needed? | ||
|- | |- | ||
| | | | ||
Line 534: | Line 542: | ||
| | | | ||
|- | |- | ||
|0x2EF | | 0x2EF | ||
| Min. available voltage from the CCS charger. | |Min. available voltage from the CCS charger. | ||
| LIM | |LIM | ||
| | | | ||
| | | | ||
Line 558: | Line 566: | ||
| | | | ||
|- | |- | ||
|0x337 | | 0x337 | ||
|Inlet lock status | |Inlet lock status | ||
|LIM | |LIM | ||
Line 565: | Line 573: | ||
|} | |} | ||
==LIM logs== | == LIM logs== | ||
Here you can find some CAN logs of AC and DC charging sessions. https://github.com/damienmaguire/BMW-i3-CCS/tree/main/CAN_Logs | Here you can find some CAN logs of AC and DC charging sessions. https://github.com/damienmaguire/BMW-i3-CCS/tree/main/CAN_Logs | ||
Line 585: | Line 593: | ||
J1772 (AC) | J1772 (AC) | ||
!DIN 70121 | !DIN 70121 | ||
! ISO 15118 | !ISO 15118 | ||
!ISO 15118-20 | !ISO 15118-20 | ||
!Cars | !Cars | ||
!Used until | ! Used until | ||
!Tested | ! Tested | ||
|- | |- | ||
|61 35 9 346 827 | |61 35 9 346 827 | ||
Line 609: | Line 617: | ||
| | | | ||
|- | |- | ||
| 61 35 9 353 646 | |61 35 9 353 646 | ||
|x | |x | ||
|x | |x | ||
| | | | ||
| | | | ||
|BMW i3 | | BMW i3 | ||
|Jul 2014 | |Jul 2014 | ||
|x | |x | ||
|- | |- | ||
| 61 35 9 380 352 | |61 35 9 380 352 | ||
|x | |x | ||
| x | |||
|? | |? | ||
| | | | ||
Line 627: | Line 635: | ||
| | | | ||
|- | |- | ||
| 61 35 6 805 847 | |61 35 6 805 847 | ||
|x | |x | ||
|x | |x | ||
Line 651: | Line 659: | ||
| | | | ||
|BMW i3 | |BMW i3 | ||
|2018? | | 2018? | ||
|x | |x | ||
|- | |- | ||
Line 666: | Line 674: | ||
|x | |x | ||
|x | |x | ||
| x | |x | ||
|? | |? | ||
|BMW i3 | |BMW i3 | ||
Line 673: | Line 681: | ||
| | | | ||
|} | |} | ||
===Power Limits=== | === Power Limits=== | ||
The limits for pre-2017/26 (Week 26 of 2017) are 0V-500V 0A-250A, post 2017/27 (Week 27 of 2017) 0V-1000V -500A-+500A. | The limits for pre-2017/26 (Week 26 of 2017) are 0V-500V 0A-250A, post 2017/27 (Week 27 of 2017) 0V-1000V -500A-+500A. | ||
This probably indicates when they moved from DIN 70121 only to ISO 15118. | This probably indicates when they moved from DIN 70121 only to ISO 15118. | ||
===Chips on the LIM board=== | === Chips on the LIM board=== | ||
{| class="wikitable" | {| class="wikitable" | ||
|+components | |+components | ||
Line 721: | Line 729: | ||
|https://www.ti.com/lit/gpn/ts321 | |https://www.ti.com/lit/gpn/ts321 | ||
|- | |- | ||
|TI LM2902 | | TI LM2902 | ||
|Quadruple general-purpose operational amplifier | |Quadruple general-purpose operational amplifier | ||
| | | | ||
Line 728: | Line 736: | ||
|STM VNQ5E250AJ-E | |STM VNQ5E250AJ-E | ||
|Quad channel high-side driver with analog current sense | |Quad channel high-side driver with analog current sense | ||
|LEDs?, contactors? | | LEDs?, contactors? | ||
|https://www.st.com/resource/en/datasheet/vnq5e250aj-e.pdf | |https://www.st.com/resource/en/datasheet/vnq5e250aj-e.pdf | ||
|} | |} | ||
==Charging protocols== | ==Charging protocols == | ||
===Signaling circuit=== | ===Signaling circuit === | ||
[[File:CCS1 vs CCS2 signaling circuit 2.png|none|thumb|1500x1500px|CCS1 vs CCS2 combo signaling circuit]] | [[File:CCS1 vs CCS2 signaling circuit 2.png|none|thumb|1500x1500px|CCS1 vs CCS2 combo signaling circuit]] | ||
===AC charging=== | ===AC charging === | ||
Usually the J1772 (US) or IEC61851 (EU) protocol is used for AC charging. | Usually the J1772 (US) or IEC61851 (EU) protocol is used for AC charging. | ||
Line 769: | Line 777: | ||
[[Category:BMW]] | [[Category:BMW]] | ||
[[Category:Charger]] | [[Category:Charger]] | ||
<references /> |
Revision as of 09:44, 18 August 2022
The BMW LIM module is a CCS, CHAdeMO and AC charging controller. It is used to communicate between the vehicle and the public charging infrastructure, to allow fast charging to occur.
As these can be found affordably on eBay and from auto wreckers, they have been pursued as an open-source charger-interface project.
The LIM is also available new from BMW spare parts suppliers for € 240. If you get it new it comes without firmware and it needs to be programmed first.
External links
github.com/damienmaguire/BMW-i3-CCS
> CAN logs
> STM32 ZombieVerter VCU software
Design Guide for Combined Charging System (2015)
EV Charging Definitions, Modes, Levels, Communication Protocols and Applied Standards
Connectors and Pinouts
All connectors are available at https://www.auto-click.co.uk/ worldwide.
Label | Description | Compatible Plugs |
---|---|---|
4B | 12 Pin Connector | BMW 61138373632
Audi 4E0 972 713 TE 1534152-1[1] / 1534151-1 |
3B | 8 Pin Connector (CHAdeMO models only) | BMW 61138364624
Audi 4F0 972 708 TE 1-1534229-1 |
1B | 16 Pin Connector | Hirschmann 805-587-545[2] |
2B | 6 Pin Connector | BMW 61138383300
Audi 7M0 973 119 |
X | Replacement Pins | 5-962885-1[5] |
X | Rubber Seal | 1-967067-1[6] |
X | (for the connector on the i3's Charge Port Cable Lock, |
Pin # | Function | Description |
---|---|---|
1B-1 | LED_S | Charge Port Lighting (not necessary) |
1B-2 | - | |
1B-3 | LED_M | Charge Port Lighting (not necessary) |
1B-4 | LOCK_MOT+ | Charge Port cable Lock Motor |
1B-5 | LOCK_MOT- | Charge Port cable Lock Motor, and reference for 1B-16. |
1B-6 | CAN_H | Powertrain CAN |
1B-7 | CAN_L | Powertrain CAN |
1B-8 | IGN | Wake up signal +12V (ignition, contact 15) |
1B-9 | VCC | Constant Power +12V |
1B-10 | GND | Ground |
1B-11 | - | |
1B-12 | - | |
1B-13 | - | |
1B-14 | - | |
1B-15 | CHARGE_E | Goes to KLE. Guessing this is charge enable or drive interlock signal? |
1B-16 | LOCK_FB | Charge Port cable Lock Feedback (1k unlocked, 11k locked), referenced to 1B-5[7]. |
Pin # | Function | Description |
---|---|---|
2B-1 | CP | Pilot (charge port) ~620 ohms to GND is needed if no original i3 charge port is used! |
2B-2 | PP | Proximity (charge port) |
2B-3 | Jumper | Connected to Pin 4 |
2B-4 | Jumper | Connected to Pin 3 |
2B-5 | GND | Ground (charge port) |
2B-6 | US CCS1 version connected to 2B-2 |
3B Pinout:
- N/A (for CHAdeMO only)
Pin # | Function | Description |
---|---|---|
4B-1 | POS_CONT+ | Positive HV Contactor Control (Contactor coil resistance needs to be ~15 ohms) |
4B-2 | NEG_CONT+ | Negative HV Contactor Control |
4B-3 | POS_CONT- | Positive HV Contactor Control |
4B-4 | NEG_CONT- | Negative HV Contactor Control |
4B-5 | U_HV_DC | Charge Port DC Voltage (current input 3-20mA?)(1.42V for 0V HV, linear to 4.8V for 500V HV)[8] |
4B-6 | LED_RT | Red charge Status Light (12V RGB LED) |
4B-7 | LED_GN | Green charge Status Light (12V RGB LED) |
4B-8 | LED_BL | Blue charge Status Light (12V RGB LED) |
4B-9 | LED_GND | Charge Status Light Ground (common cathode of RGB LED) |
4B-10 | COV_MOT- | Charge Port Cover motor (Not necessary) |
4B-11 | COV_MOT+ | Charge Port Cover Motor (Not necessary) |
4B-12 | COV_FB | Charge Port Cover Feedback (connect to GND to simulate open cover[9])(To be left floating for contactors weld test) |
Wiring Diagram
Note [18Jun2022 ALS]: In the above diagram, some details may be non-current, eg the Charge Port Cover sensor is not shown, but its line @ 4B-12 must be floating (signalling that the Charge Port Cover is closed (?)) in order for the LIM to proceed with its welded contact tests; 4B-12 is tied to Ground (?) to indicate that the cover is open[10].
Wiring notes
Make sure you mount the LIM as close to the charge socket as possible and keep the pilot wire separate from the high power wiring.
Bad pilot wiring can result in SLAC, PLC, or other communication problems.
Additional components for a LIM installation
Isolated DC charge inlet voltage sense board
The LIM gets the inlet DC voltage from a board in the KLE.
This board needs to produce an isolated 3-20mA current signal (or: 1.42V for 0V HV, linear to 4.8V for 500V HV)[11] from the high voltage DC voltage.
A circuit of a voltage sense board is shared here and can be purchased here. Alternative board is available here.
Fast charge contactor
The LIM produces a 12V, 50% PWM on the positive and negative fast charging contactor outputs and measures the current draw of the contactors.
The BMW OEM fast charge contactor relays, located in the KLE, are (2) TE EVC135 RELAY, SPST-NO, DM (# 2138011-1).
https://www.te.com/usa-en/product-2138011-1.html
Similar, though not exact, replacements are available from EVcreate
Larger contactor control
If you want to use larger contactors with PWM economizer or dual coil, use small relays to drive them and place a 15 ohm resistor (with heat sink) in parallel with each to simulate the original contactor coil's impedance.
Each of the two 15 ohm resistors must dissipate ~6W @ 13.4V, 50% PWM.
Further investigation is needed to find out if the LIM also detects a contactor failure via the current draw.
Charge port
SEA J1772 (US) and IEC 61851 (international) cover the general physical, electrical, communication protocol, and performance requirements for the electric vehicle conductive charge system and coupler.
https://en.wikipedia.org/wiki/SAE_J1772#Signaling
The original BMW i3 Type 1 charge port has 2.7 kΩ between PP and PE and no connection between CP and PE, as J1772 describes.
The Type 2 charge port used in Europe probably has 4.7 kΩ between PP and PE. (from Phoenix datasheet. Not confirmed!)
Make sure to match these if you want to use a different charge port. Some brands use different resistor values.
The CP communication is similar for US Type 1 (1-phase) and EU Type 2 (3-phase) charge ports, but the PP circuit is different.
Charge port lock
In the BMW i3 a quite expensive Phoenix/Delphi CCS charge port is used and it would be nice to be able to use the cheaper Duosida CCS charge ports.
The charge port lock should work with the Duosida lock as well but the feedback (1k unlocked, 11k locked) is a bit different which requires some additional resistors.
If using an OEM BMW i3 CCS charge port, the Kuster cable lock uses these connector parts:
- Connector shell: BMW 12527549033 (ref. jon volk)
- Terminals: BMW 61131393724
- Terminal seals: BMW 61138366245
RGB charge indication light
The RGB charge indicator LED should have a common cathode and series resistors for 12V DC.
Nice push buttons with an integrated RGB LED are available on Aliexpress for a few dollars.
The switch signal is useful to stop charging and has to be connected to the ECU. The ECU then terminates the charging process over the CAN bus.
Programming a new LIM
If you order a new LIM there is no configuration loaded but our hero Damien managed to program a brand new LIM with a i3 BDC (Body Domain Controller).
https://openinverter.org/forum/viewtopic.php?p=43848#p43848
He caught a CAN log of the programming session: https://github.com/damienmaguire/BMW-i3-CCS/tree/main/Programming/Logs
Hopefully we figure out how to do it with a few CAN messages. In the meantime, Damien is offering LIM programming as a service: https://www.evbmw.com/index.php/evbmw-webshop/evbmw-serv/limprg.
Basic shopping list if you want to program a LIM:
- Software:
- Esys 3.36 from here: https://disk.yandex.ru/d/3XLfVVYHFq8qQw
- pszdata lite from here: https://disk.yandex.ru/d/Y0w0r5T1ElMVdA
- Hardware:
- BMW LIM (see "LIM hardware" section below), connectors and pins (see "Connectors and Pinouts" section above).
- BMW i3 BDC (Body Domain Controller): basically the main ecu in the i3 the gates all the data around the car.
- Damien sourced his from: https://www.evbreakers.com/ noting They even threw in the plugs and few cm of harness for free.
- According to realoem.com, the first LIM (used in 2014) was p/n 61359354010
- A fuller list of the various LIMs over the subsequent years can be found here here:https://www.realoem.com/bmw/enUS/partxref?q=61359354010. Thankfully, there is a very wide retro/cross-compatibility
- Also found some part numbers in ebay listings not seen in the realoem list (maybe a North America vs EU thing?):
- 61-35-8-715-974, 61-35-5-A40-2F9
- Car key from the same car as the BDC.
- Wondering if a non-matching used or new fob could be used/reprogrammed if the BDC donor's VIN was known?
- BDC simulator: https://www.aliexpress.com/item/1005002317110375.html
- Enet cable: https://bcables.com/
- USB to Ethernet adapter if your PC / laptop does not have a spare Ethernet port.
- Two extra pins for Conn8 on the BDC to bring out PT CAN.
- DC power supply or 12v battery.
Charge control
The EVSE (charging station) shares its limits with PWM during IEC 61851/ J1772 AC charging or PLC during DIN 70121 or ISO 15118 CCS sessions, but often the car can not handle the max available power of the charging station.
The actual battery voltage and battery current values are needed by the LIM to check the response of the charging station. In this setup, the battery voltage and current are measured by an Isabellenhütte IVT CAN bus sensor, but these values could also be measured and shared on the CAN bus by the BMS. (CAN message 0x112)
Contactor Test
This is required before the LIM will proceed past the Precharge state during ccs charging.
To get it to do a contactor test following procedure has been determined
For LIMs 61 35 6 828 052 and later (to be confirmed)
- HV battery voltage to be present at vehicle side of contactors
- Charge Port door state is closed, feedback in 0x272 byte 2
- Charge Port Voltage Sense feedback with contactors open needs to be above 60V
- Fault set in 0x272 byte 2
- Ignition in 0x12F byte 2 needs to toggle from to OFF 0x88 to ON 0x8a
- LIM will cycle contactors during weld test and clear fault in 0x272 byte 2
For LIMs before 61 35 6 828 052 (to be confirmed)
- HV battery voltage to be present at vehicle side of contactors
- Charge Port door state is closed, feedback in 0x272 byte 2
- 12V permanent to be connected to the LIM
- Ignition in 0x12F byte 2 needs be ON 0x8a
- LIM will cycle contactors during weld test and clear fault in 0x272 byte 2
Battery-dependent charging current control
During (fast) charging a cell voltage and cell temperature dependent current limit is very important.
The BMS or VCU should limit this value according to the battery specifications and protect the cells from damage and ageing at all times.
(Not yet implemented to the STM32 / ZombieVerter VCU project)
CCS inlet temperature sensors
Many CCS charge ports have DC and AC contact temperature sensors to avoid overheating if the contact resistance is high for some reason. The BMW's LIM has no temperature sensor inputs, but the VCU/charge controller could be connected to these sensors (usually PT1000 or NTC) and charging current could be reduced if the inlet gets too hot.
(Not yet implemented to the STM32 / ZombieVerter VCU project)
AC charging (on board charger control)
The LIM also handles the (lower level J1772 / IEC61851) communication during AC charging and shares measured PP (charging cable) and CP (charging station) AC current limits in the CAN message 0x3B4 EVSE info.
It is not possible to have two car-side charge controllers connected to the pilot line simultaneously. It is recommended to control the charger by CAN bus. If your charger needs the pilot signal, you will have to emulate it or switch the pilot connection wiring over to the active charger during AC charging.
If the onboard charger accepts an AC current limit, this value can be directly used but some chargers can only be controlled with DC current commands.
Because we don't know the actual AC current, we can only estimate it with a fixed AC voltage and charger efficiency.
DC_current = fixed_AC_voltage * CP_PP_current_limit * phase_count * charger_efficiency / DC_voltage
CAN communication
A DBC CAN database file can be found here: I3 LIM CAN dbc1
This list has to be cleaned up once we know which messages are actually necessary for the LIM.
ID | Function | sent by | interval | Notes |
---|---|---|---|---|
0x112 | BMS msg. | VCU or BMS | 10ms | could also be sent by BMS |
0x12F | Wake up | VCU | 100ms | needed |
0x3E9 | Main LIM control | VCU | 200ms | needed |
0x2F1 | Lim DC charge command 2. | VCU | 100ms | needed |
0x2FA | Lim DC charge command 3. | VCU | 80ms...1s | needed (low interval during CCS start up) |
0x2FC | Charge flap control | VCU | 100ms | needed (constant values work) |
0x431 | Battery info | VCU | 200ms | needed but does not control anything |
0x432 | BMS SoC | VCU or BMS | 200ms | display SoC needed |
0x03C | Vehicle status | VCU | 200ms | (constant values) needed? |
0x1A1 | Vehicle speed | VCU | 20ms | (constant values) 10ms works needed? |
0x2A0 | Central locking | VCU | 200ms | (constant values) needed? |
0x397 | OBD | VCU | 200ms | (constant values) needed? |
0x3F9 | Engine info | VCU | 200ms | (constant values) needed? |
0x3A0 | Vehicle condition | VCU | 200ms | (constant values) needed? |
0x330 | Range info | VCU | 200ms | (constant values) needed? |
0x51A | Network management | VCU | 200ms | (constant values) needed? |
0x540 | Network management 2 | VCU | 200ms | (constant values) needed? |
0x512 | Network management edme | VCU | 200ms | (constant values) needed? |
0x560 | Network management kombi | VCU | 200ms | (constant values) needed? |
0x510 | Network management zgw | VCU | 200ms | (constant values) needed? |
0x328 | Counter | VCU | 1s | needed |
0x3E8 | OBD reset | VCU | 1s | (constant values) needed? |
Messages sent by LIM | ||||
0x29E | CCS charger specs | LIM | ||
0x2EF | Min. available voltage from the CCS charger. | LIM | ||
0x2B2 | Current and Voltage as measured by the CCS charger | LIM | ||
0x3B4 | EVSE info: CP, PP & inlet voltage | LIM | ||
0x272 | CCS contactor state and charge flap open/close status. | LIM | ||
0x337 | Inlet lock status | LIM |
LIM logs
Here you can find some CAN logs of AC and DC charging sessions. https://github.com/damienmaguire/BMW-i3-CCS/tree/main/CAN_Logs
QCA7005 SPI captures on Damien's GitHub https://github.com/damienmaguire/BMW-i3-CCS/tree/main/SPI_Caps
Observations
A VIN value is not required for AC or DC fast charging to function.
Functional LIMs have come from vehicles where the Air Bags have deployed, indicating that the module still works after a "Safety" event has occurred.
LIM hardware
LIM versions
Only "LIM_AC_DCO" versions work for CCS. Look for both "LIM_AC_DCO" and a MAC address on the label! If no MAC, the LIM is either AC-only ("LIM_AC") or AC + CHAdeMO ("LIM_AC_DCC"), and not useful for CCS.
Part No. | IEC 61851
J1772 (AC) |
DIN 70121 | ISO 15118 | ISO 15118-20 | Cars | Used until | Tested |
---|---|---|---|---|---|---|---|
61 35 9 346 827 | x | x | BMW i3 | ||||
61 35 9 346 820 | x | x | BMW i3 | ||||
61 35 9 353 646 | x | x | BMW i3 | Jul 2014 | x | ||
61 35 9 380 352 | x | x | ? | BMW i3 | Nov 2015 | ||
61 35 6 805 847 | x | x | ? | BMW i3 | Jul 2016 | ||
61 35 6 828 052 | BMW i3 | Aug 2019[12] | |||||
61 35 9 494 498 | x | x | ? | BMW i3 | 2018? | x | |
61 35 9 470 199 | x | x | ? | BMW i3 | ? | ||
61 35 9 454 319 | x | x | x | ? | BMW i3
Mini cooper SE |
now |
Power Limits
The limits for pre-2017/26 (Week 26 of 2017) are 0V-500V 0A-250A, post 2017/27 (Week 27 of 2017) 0V-1000V -500A-+500A.
This probably indicates when they moved from DIN 70121 only to ISO 15118.
Chips on the LIM board
Chip | Description | Function | Datasheet |
---|---|---|---|
Renesas V850E2/FG4 | 32-bit Single-Chip Microcontroller | main MCU | https://www.renesas.com/us/en/document/dst/data-sheet-v850e2fg4 |
Qualcomm QCA7000 | HomePlug® Green PHY, single chip solution | PLC Green PHY | https://openinverter.org/forum/download/file.php?id=9611 |
Infineon TLE 7263E | Integrated HS-CAN, LIN, LDO and HS Switch, System Basis Chip | CAN, 2xLDO, wake-up | https://docs.rs-online.com/db13/0900766b814d680b.pdf |
TI SN74LVC2T45-Q1 | Dual-Bit Dual Supply Transceiver with Configurable Voltage Translation | https://www.ti.com/lit/gpn/sn74lvc2t45-q1 | |
NXP 74LVC1T45 | Dual supply translating transceiver | https://datasheetspdf.com/pdf-file/648034/NXP/74LVC1T45/1 | |
STM L9951XP | Actuator driver | inlet lock motor | https://www.st.com/resource/en/datasheet/l9951.pdf |
STM TS321 | Low-Power Single Operational Amplifier | https://www.ti.com/lit/gpn/ts321 | |
TI LM2902 | Quadruple general-purpose operational amplifier | https://www.ti.com/lit/gpn/lm2902 | |
STM VNQ5E250AJ-E | Quad channel high-side driver with analog current sense | LEDs?, contactors? | https://www.st.com/resource/en/datasheet/vnq5e250aj-e.pdf |
Charging protocols
Signaling circuit
AC charging
Usually the J1772 (US) or IEC61851 (EU) protocol is used for AC charging.
Some new charging stations support AC charging with ISO 15118 high level protocol as well, but it is not confirmed which versions of the LIM support it.
By default, the the EVSE (charging station) outputs +12V on the CP pin, and when connected to an EV will be reduced to 9V because of a load resistor present in the Electric Vehicle; this signals the EVSE that the connector has been plugged into a EV. After this, the EVSE will send a 1khz +12V to ‐12V square wave (PWM signal) and the duty cycle value corresponding to the maximum current it could deliver. If the EV is okay with that value of current, then it performs a handshake by changing the load resistance and dropping the PWM voltage to 6V, after which the charging begins.
In IEC61851, where untethered charging stations are allowed, the PP pin is used to detect the maximum power rating of the cable.
In the US, with J1772, where charging stations need to be tethered, the PP pin is used to detect if the manual unlocking mechanism is pressed, to stop the current flow before the plug is removed.
More information: https://en.wikipedia.org/wiki/SAE_J1772
CCS DC charging
DIN 70121 and ISO 15118 are quite complex high level protocols transmitted over PLC (power line communication) on the CP pin.
This Design Guide for Combined Charging Systems by CharIn describes the basics of CCS charging very well.
https://openinverter.org/forum/download/file.php?id=1712&sid=59cf27578e4021c1e6dc01c73f46d8ee
This document actually covers Fast and Smart Charging Solutions for Full Size Urban Heavy Duty Applications, but since the protocols used are similar it has comparable sequence diagrams, with descriptions for normal start up, normal shutdown, DC supply-initiated emergency stop and EV-initiated emergency stop.
https://assured-project.eu/storage/files/assured-10-interoperability-reference.pdf
- ↑ https://www.auto-click.co.uk/index.php?route=product/product&product_id=1344
- ↑ https://www.auto-click.co.uk/805-587-545
- ↑ https://www.auto-click.co.uk/1-967616-1
- ↑ https://www.mouser.com/ProductDetail/571-1-967616-1
- ↑ https://www.auto-click.co.uk/5-962885-1
- ↑ https://www.auto-click.co.uk/1-967067-1
- ↑ https://openinverter.org/forum/viewtopic.php?p=30636#p30636
- ↑ https://openinverter.org/forum/viewtopic.php?p=24613#p24613
- ↑ https://openinverter.org/forum/viewtopic.php?p=24597#p24597
- ↑ https://openinverter.org/forum/viewtopic.php?p=41590#p41590
- ↑ https://openinverter.org/forum/viewtopic.php?p=24613#p24613
- ↑ https://bimmercat.com/bmw/en/parts/info/Control+unit%2C+charging+interf.module+LIM/61356828052