Skip to content
lenvm edited this page Dec 14, 2024 · 2 revisions

Caution

Working with high voltage is dangerous. Always follow local laws and regulations regarding high voltage work. If you are unsure about the rules in your country, consult a licensed electrician for more information.

BMW i3 60 / 94 / 120AH battery pack info

Word of caution when buying i3 batteries ⚠️

Important

The BMS (SME) inside the i3 battery will store crash data. If the battery comes from a really hard crash that triggered enough airbags, there is a possibility that the SME has entered a locked state, and will never engage the contactors. The only way to unlock the battery is with an expensive BMW tool called "EoS Tester" that costs 10k€. You have been warned!

The EoS tester can be rented from some places, a great i3 expert is available in CZ, https://www.i3upgrade.cz/ Another alternative when dealing with a locked battery, is to open up the battery and bypass the contactors. Nobody has reported if this works yet (feel free to edit this wiki!), worst case you could also replace the i3 BMS with an RJXZS

Connection diagram

High voltage connector

The HV connector needs to be plugged in for the battery to be able to turn on (Interlock detection) bild

High voltage connector (E196*1B)

  • Pin 1 = HV+
  • Pin 2 = HV-

HVIL part of high voltage connector (E196*01B)

  • Pin 1 HVIL (loop to 2)
  • Pin 2 HVIL (loop to 1)

Low voltage connector (A191*1B)

The LV connector is located on the back of the battery pack, next to the A/C cooling port. A/C connector is not required for operation. bild

It has the following pinout: bild

Connect the wiring as follow:

  • Pin 1 30C - Connect to to 12V, 10A fuse optional
  • Pin 9 15WUP-Signal (Green/GreenRed) - Connect to to 12V, 5A fuse optional. Control this pin with a Pololu Power Switch (or similar) controlled by PIN 25 in the LilyGo.
  • Pin 7 (Red) - Connect to to 12V, 5A fuse optional
  • Pin 2 Ground (BrownBlack) - Connect to Ground
  • Pin 4 CAN-H (WhiteYellow) - Connect to LilyGo CAN-H - twist with CAN-L cable and put a 120Ω resistor across to CAN-L.
  • PIN 10 CAN-L (WhiteBlue) - Connect to LilyGo CAN-L
  • Pin 6 I_LOCK (BlueRed) (connect to Pin 12 with a 33Ω resistor in between)
  • Pin 12 I_LOCK (BlueRed) (connect to Pin 6 with a 33Ω resistor in between)
  • Pin 3 Refrigerant valve (NOT USED)
  • Pin 8 Refrigerant valve (NOT USED)

15WUP-Signal

The wakeup signal needs to be actuated by the Battery-Emulator, and as soon as messages start to come thru from the batter we reply. This ensures a reliable startup. Same goes for rebooting/shutting down the battery. The Battery-Emulator sets WUP to low incase we need to command the BMS off.

Since the LilyGo board has 3.3V logic on the GPIO pins, we need to use a solid state relay in order to boost the 3.3V -> 12V. Example connection using 1x ASR-10DD solid state relay:

WUP

Parts list

  • BMW i3 battery (60Ah, 94Ah or 120Ah)
  • BMW HV cable 61129346573 or 61126809274
  • BMW HVIL bridge 12527630408
  • BMW Connector 61139165781 (also known as 9165781). Note: equivalent part from Kostal is # 9411204.
  • 8x BMW Bushing contact MQS with cable 61130030859 (they are all the same color though, recommend to mark them)
  • HV Capacitor. Both 470µF and 960µF works. Should be able to handle more than 500V.
  • 33Ω resistor, ¼ watt or similar is fine.

Note on capacitor

Capacitors are high voltage, so they need to be inside an IP enclosure to prevent anyone from touching or water getting onto it and shorting it out. Most either mount the capacitor next to the battery, or next to the inverter, at either end of the HV bus. The most popular solution is to install fuses and the capacitor right at the start where HV comes out of the battery, sort of an add-on box that gets mounted on the original HV cable coming out of the battery. This is also a good place to step down the batteries thick DC cabling (Often 25-50mm²), down to a more manageable 10mm²

Software setup

Note

If you intend on using BYD-CAN with the BMW i3, the battery needs to be on a separate CAN bus. The BMW i3 is using the same CAN IDs as BYD do, so if you try to run them both on the same bus the IDs will collide and values get interpreted wrong

Clone this wiki locally