Tesla Model 3 Battery

From openinverter.org wiki
Jump to navigation Jump to search

Tesla Model 3 Battery Hacking

hv controller connector
pinout from HV controller

model 3/y battery uses custom versions of the LTC6812 chips for voltage sensing dubed "batman"

bms boards talk via a modified version of isospi

Damien Maguire has developed 2 different unfished approaches to communicating directly with the cell level boards:



broken isospi connector

HV controller

Model 3 High Voltage Controller

the HV controller located in the penthouse controls the PCS, contactors, pyro fuse, talks to the bms boards, etc

reading cell voltages and controlling contactors can be done by talking to the HV controller over CANbus

you can read cell temps and voltages with scanmytesla and hooking up a obd connector to the hv controller canbus

the HV matting connector is:

Sumitomo TS Sealed Series



aliexpress: https://nl.aliexpress.com/item/1005003491557509.html?spm=a2g0o.productlist.0.0.4bbf7ac6nm1SAJ&algo_pvid=ed562c44-660e-4e11-96f9-d5e5b150d5d7&algo_exp_id=ed562c44-660e-4e11-96f9-d5e5b150d5d7-0&pdp_ext_f=%7B%22sku_id%22%3A%2212000026035026850%22%7D

see thread post https://openinverter.org/forum/viewtopic.php?p=31886#p31886

useful links:



reading canbus data

Arduino sketch for due based boards:


or https://openinverter.org/forum/download/file.php?id=21585 (dose not require msgid6f2)

libraries needed:

make a s folder named "msgid6f2" in ardunio/libraries and put these two files there:





teslax - load custom dbc files!


some of these ids are found on ether charge port (cp) can or vehicle can

ID 0x401 cell voltages

tesla shunt polarity

ID 0x332 min/max

ID 0x3D2 total charge/discharge kwh

ID 0x132 battery amps/volts

ID 0x352 soc

ID 0x20A contactor state

cell balancing

its theorized (according to collin kidder)

"The biggest things needed seem to be not being in drive (won't balance while you're driving), not heavily charging or discharging (seemingly less than 20A?), and detecting that the pack is out of balance. It seems this imbalance will need to be larger than 0.005V to trigger balancing. You might need to send messages that let it know it's currently "idling" and not "driving" but I think it will probably default to thinking it's not driving so no CAN traffic might be OK. Before balancing it will, however, check that it could enable the balancing resistors. So, my assumption would be that if you don't have all four modules hooked up it would find that it couldn't enable some balance resistors and then refuse to work.

However, I don't have a full Model 3 pack to test with so this is all just the result of dark arts and guessing. And, of course, the firmware version of your pack might make a difference. However, the good news is that it sure looks to me like the BMS will automatically do balancing based on the pack being in a good state to do so and the modules being out of balance."