Tesla Model 3 Battery
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:
https://www.evbmw.com/index.php/evbmw-webshop/tesla-boards/tesla-model-3-bms
https://www.evbmw.com/index.php/evbmw-webshop/tesla-boards/tesla-model-3-bms-batman
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
see thread post https://openinverter.org/forum/viewtopic.php?p=31886#p31886
useful links:
https://github.com/commaai/opendbc
reading canbus data
Arduino sketch for due based boards:
https://openinverter.org/forum/download/file.php?id=15866
or https://openinverter.org/forum/download/file.php?id=21585 (dose not require msgid6f2)
libraries needed:
- due_can
- msgid6f2
make a s folder named "msgid6f2" in ardunio/libraries and put these two files there:
https://openinverter.org/forum/download/file.php?id=20710
https://openinverter.org/forum/download/file.php?id=20709
apps:
teslax - load custom dbc files!
IDs
some of these ids are found on ether charge port (cp) can or vehicle can
ID 0x401 cell voltages
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."