Battery: BYD vehicle (Atto 3 ‐ Seal ‐ Tang ‐ Dolphin ‐ Song ‐ and more!) - dalathegreat/Battery-Emulator GitHub Wiki

[!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.

Compatible BYD batteries

The code supports a variety of BYD vehicle batteries. Check the product code sticker, and verify that the battery has already been tested with the Battery-Emulator, indicated by the ✅-mark that contactor closing works.

Product Type Byd Model Energy Capacity Nominal voltage Status
PV2 ? 40 kWh 150Ah 300.8V
PE4 Seal 61.66kWh 150Ah 409.6V
??? Atto 3 50kWh ? ?
P48 Atto 3 60.48kWh 150Ah 403.2V
VD6 Seal U DM-i 18,32kWh 54Ah 339.2V -
PA4 Tang 86.4kWh 135Ah 640V -
PE5 Seal 82.56kWh 150Ah 550.4V -
PE6 Seal 82.56kWh 150Ah 550.4V ✅ (To get contactor to close,power up the battery (12V), wait 5 seconds and reset BE)
PK3 Dolphin 49.92kWh 150Ah 332.8V -
P07 T3 50.37kWh 115Ah 438V -
P94 Dolphin 44.928kWh 135Ah 332.8V
? Song Plus 82.56kWh 150Ah 550.4V
PM6B Song Plus x kWh 170Ah 512.0V

Confirmed working BYD Seal 60kWh battery example sticker:

image

[!NOTE]
If you intend to run two BYD batteries in parallel, make sure they are both the same model!

Example battery, Atto 3

The extended range nominal 60.48 kWh BYD Atto 3 blade battery pack is 1.2m wide by 2.1m long and 120mm high, weighing 402kg. The battery chemistry is LFP (LiFePO4). The battery configuration is 126s1p, estimated capacity of fully charged pack is 126 cells at nominal 3.2V x 150Ah connected in series = 60.48 kWh. Fully charged the pack produces total voltage of 441V max (3.5V/cell) and at 10% SOC, about 403V (3.2V/cell), as measured and monitored by OBD2 CarScanner during charging.

Viewed from the front, left is the low voltage connector, central is two refrigerant lines and right is the HV connector, with +ve on RHS.
Unplugged on scissor jack as below.   With reference to a description of the disassembly of a battery pack (courtesy of Brendon_M on https://forums.aeva.asn.au/viewtopic.php?t=8323 & https://www.youtube.com/watch?v=x5kw-EgxRs4) the 96cm long cells are arranged parallel to each other across the breadth of the pack with BMS balancing boards covering the terminals down the driver’s side in RHD countries. The 10 localised BMS balancing boards, comprising 3x 14s boards and 7x 12s boards, appear to be powered from the cells themselves as there are only 2 data wires coming out of the contactor block at the front and linking each board in a daisy chain fashion. Each board also has a temperature probe going into the cells. These report directly to the BMS motherboard, which lies directly behind the low-voltage connector. The red highlighted 10-pin connector is wired to the low-voltage connector at the front of the battery.

The front connectors end of the battery also includes the contactor block. There is a well-hidden 800V/350A fuse near the positive contactor(coil:12VDC/contactor:250A) on the RHS of the block, along with a mini pre-charge contactor (coil:12VDC/contactor:10A) and a pre-charge resistor, which is underneath the HV connector. There is no Tesla-like pyro fuse that blows when airbags are deployed; the system just opens the contactors. On the LHS of the block is the BMS motherboard to the left of the LV connector plug, alongside the negative contactor (coil:12VDC/contactor:250A) situated just below the LV connector.

Software configuration

For this battery type, use the option called "BYD Atto 3/Seal/Dolphin" under the "Battery Protocol" setting

Video example

Here is a great video made by "Flying Tools" showcasing how to connect the BYD Atto 3 battery

https://www.youtube.com/watch?v=YBYWBapnnyM

Battery specifications

LV Connectors

The Atto 3 HV battery is an independent domain, with its own CAN bus, which interfaces with the overall 8-in-1 integrated electronics. All technical descriptions are in Chinese which still requires availability and translation. Hence this initial attempt is based on what empirically can be identified from the LV connectors, namely the square 4x4 that connects directly to the front end of the battery, as well as the wires from the associated plug to the 10x1 connector on the battery BMS motherboard. Two views of the accessible wires into the battery through the 4x4 square connector are presented, showing a total of 7: The front pins of the connector are shown below, with 7 of the 8 pins used.

The backend of the receiving connector into the battery shows that most of the wires change colour, except 12V+, which duplicates, as shown in the following two photos: Interestingly, there is no wire to pin7 on the external LV side. However, there is a black wire internally, running to pin8 (?) on the BMS motherboard. We currently assume that LV pins 14&15, both earths, reduce to single wire to BMS pin7 (?). Hence, the resulting 9 internal wires plug into a 10-pin connector, one (#4) of which is not used. Pin#1 also does not directly connect to the outer LV connector but may be associated with the contactors (+12V?). ``

Connection diagram

The connection diagram is derived from the wiring in the discussion above. Most of these designations require confirmation, although the CAN-H and CAN-L have been properly assigned. Confirmed for PE4, PE6 and P48 battery

Contactor Block Modification

In the event of the battery being locked, the pre-charge and two contactors can be wired to manually switch on, or preferably to automatically activate via 3 SSRs with the GPIO pins on the Lilygo board (see https://github.com/dalathegreat/Battery-Emulator/wiki/Contactor-Control-via-GPIO-pins). When accessing the internals of the battery, wear the appropriate safety gloves and follow safe procedures to avoid shorting across HV terminals. To access the contactor block, first remove the top cover, which fortunately is not sealed down; ~ 76 screws and 2 central top bolts require removal. In the pictorial description that follows, details of the full removal of the contactor block is shown, to identify the various parts. With connection points identified, it is now not necessary to remove the block as these 12V connection points are accessible from the top of the block. This current protocol involved connecting 3 circuits individually to the precharge and two contactor relays. This was achieved merely by wiring in extra lines on top of existing wiring connector points. With hindsight, a more effective alternative is included in the discussion below. https://github.com/juancruz1953/Images/blob/main/Atto3ContactorBlockRewire.pdf

Parts list

Here are some of the part numbers and purchase links, incase your battery came without them

Part Product Link Notes
LV connector AliExpress 19pin 1192800MB 1192800FB BYD
LV connecor Pre-wired https://a.aliexpress.com/_EHMKS3i
HV cable ---- OEM numbers: 1364774600 & SC2EM215300A or SC2EM-2105300

Example, high voltage cable # 1364774600

Note on reusing HV cable :zap:

If you are using the HV cable that came with the battery, and plan to cut off the ends to crimp on new terminals, be aware that the cables contain an outer shield layer. It is very important to properly insulate this, so you do not short high voltage to protective earth accidentally.

When preparing the cable, special attention must be taken the cable's shielding:

First make sure to leave at least 8mm space:

Then apply hot glue or other insulation adhesive:

Final insulation layer applied:

It is recommended to check your handiwork, by performing an insulation test on the cable after completing the work

How do I know if I have a crashed&locked battery?

If the contactors do not engage when sending CAN towards the battery, the pack is most likely locked.

Another way to check is to inspect the "More battery info" on the webserver. This page contains the SOC% value sent by battery (SOC Highprec). If this value stays the same when charging, discharging, the battery is locked.

SOC Drift overtime

Some users experience a phenomenon where the battery’s SOC appears to drift when using SOC measured by BMS, causing the charging process to stop before the SOC reaches 100%. This drift may gradually increase over time, reducing the available capacity of the battery. Typical value is 1-2% SOC underreported drift per day

[!NOTE] There is no permanent fix yet, but the following workaround can help recover some capacity. Perform this procedure only when the drift noticeably affects available capacity.

  • Go to the "Calibrate SOC" option. From version 10.3.0 this can be done from the "More Battery info" page.
  • Observe what the current "Capacity current: xx AH" is
  • Set the "Calibration target capacity:" to the same setting as the current capacity (We do not want to calibrate AH, so it is important to set these to the same)
  • Set the "Calibration target SOC:" option to the desired SOC% you want.
  • Finally, press the "Calibrate SOC" button

Repeat this procedure when necessary.

How do I unlock a crashed battery?

There are two methods to try and unlock the battery. Note, not everyone is able to unlock the battery for some reason still unknown. The methods are via More Battery Info page, and alternatively via CAN Replay

More Battery Info Unlock

There is a button in the "More Battery Info" page in the webserver, that when pressed will attempt to unlock the crashed battery.

image

CAN replay

One user reported success by manually sending the CAN log file while the battery

resetLockedBYD_v1.txt

User 1: About the power cycle and how I did it..

  • Battery-Emulator compiled with only TEST_FAKE_BATTERY and no inverter selected
  • Started with no power to either 12V constant or 12V ignition. I have separate switches for them though.
  • So first Battery-Emulator hardware is powered on.
  • Then 12V constant switch on, wait a few seconds and ignition on.
  • At this point no communication is present on CAN, complete radio silence.
  • Run unlock commands, upload resetLockedBYD_v1.txt in the CAN replay page in Battery-Emulator, and transmit it towards the battery
  • Once again radio silence.
  • Switch off 12V ignition.
  • Wait a few seconds and then switch off 12V constant.

User 2 success story:

  • I have B+ and the 2 ignition wires on seperate switches.
  • I turn on B+ first then ignition.
  • Software was setup for BYD ATTO 3, v8.13.0
  • Then I ran unlock procedure via "More Battery Info" page
  • After the unlock I turned off ignition then B+ and the Liligo together then reverse process turning back on.
  • Contactors closed after.