Battery: MEB - 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.
Important
The MEB batteries do not have any precharge resistors built in. They need to see actual battery voltage on the high voltage terminals before the battery can turn on contactors. Due to this requirement the MEB batteries are harder to re-use compared to most EV batterypacks. To achieve this, a standalone lab PSU or high voltage isolated boost converter can be used to generate the high voltage needed to start the battery.
This platform is used across the brands of the Volkswagen Group (VW/ŠKODA/CUPRA/AUDI). It is composed of cell modules, cell management controllers, battery management system and some auxiliary components (pyrofuse, fuse, current measuring, contactors, etc.).
The capacity of the battery is determined by the number of modules. Each module has a capacity of 6.85 kWh. The chemistry is NCM712
- 7 modules – 48kWh - 84cells in series
- 8 modules – 55kWh - 96cells in series
- 9 modules – 61kWh - 108cells in series
- 12 modules – 82kWh - 96cells in series
The MEB platform includes the following vehicles:
- Audi Q4 e-tron (2021–present)
- Audi Q4 Sportback e-tron (2021–present)
- Audi Q5 e-tron (2021–present)
- Cupra Born (2021–present)
- Cupra Tavascan (2023–present)
- Volkswagen ID. UNYX (2024–present)
- Ford Explorer EV (2024–present)
- Ford Capri EV (2024–present)
- Škoda Enyaq iV (2020–present)
- Škoda Enyaq Coupé iV (2022–present)
- Škoda Elroq iV (2025-present)
- Volkswagen ID.3 (2019–present)
- Volkswagen ID.4 (2020–present)
- Volkswagen ID.5 (2021–present)
- Volkswagen ID.6 (2021–present)
- Volkswagen ID.7 (2023–present)
- Volkswagen ID.7 Tourer (2024-present)
- Volkswagen ID. Buzz (2022–present)
- Volkswagen ID. Buzz Cargo (2022–present)
Lots of useful info at batterydesign.net: MEB and ID4 82kWh.
For communication with the battery, slot C must be used. For this purpose, either an existing connector can be used or the new one must be purchased.
The original TE connector is restricted, no information will be given by TE, but it can be found via Aliexpress or Alibaba (some will arrive without terminals/receptacles, ask the seller up front). Just look for:
- Connector housing: ZSB 0-2315190-1
- Small pins 0.5x0.4mm: 1-2177909-1 (or 2177909-1)
- Large pins 1.2x0.6mm: 7-1452671-1
- 3D printed cover for the connector meb_CAN_cover_v1.zip
The pins can also be requested directly from TE.com as (free) sample.
The connector marked 'AC Charger' is wired in parallel to the 'motor invertor' port. The DC-charging port has it's own contactors.
Cable partnr for the inverter connector : 1EA971015T or or 1EA971015AA or 1EA973732X
If reusing cables from a donor car:
- Cable to the DC charge port: 70 or 95mm2
- Cable to motor invertor: 35 or 50mm2
- Cable to onboard AC charger/airco/ptc etc.: 6mm2
An AWG24 ethernet cable seems to work well. One pair for CAN, one for Pilotline, two pairs for 12V, where I crimped two wires together on pin 1 for GND.
For the 12V a 30W power supply has been found to work ok, the BMS draws around 21W.
The battery control unit uses CAN-FD for its communication !!!
If CAN communication is lost, contactors open right away (Nice safety feature!)
The Pilotline circuit needs to be closed, without this connection, the control unit will not allow the contactors to be closed. It is therefore necessary to connect pins 16 and 22. If this Pilotline circuit is broken, the Battery-Emulator raises an event.
Another requirement from the BMS, it evaluates the presence of voltage on the external terminals of the battery before closing the contactors. Under normal circumstances in the car, the main inverter starts generating the actual voltage (depending on battery model and SOC, 300-450V) from the 12V battery. The battery controller detects this external voltage, if it is close enough (within a few volts), and if everything else is OK, the battery is switched on. This is to prevent arcing of the contactors, an alternative to precharge resistor. The same approach is required when the battery is outside the car and you want to turn it on. You need an external voltage source that connects to the battery terminals (output to the motor inverter) and puts the same voltage of the battery on those terminals to within a few volts. Then it is only possible to switch on the battery by command via the CAN bus. For info on high voltage sources, see this page.
You can check if your battery fulfils the required preconditions, by opening the "More Battery Info" page. This is what a functional battery looks like, with the contactors ON

- Lilygo TCAN / Stark CMS module, see main wiki page
- CANFD addon board, see: CANFD addon wiki page
- A high voltage boost convertor, eg. the HIA4V1, see above
- Low voltage connector + pins, see above
- 12V power supply, eg. Meanwell HDR-30 12V
- High voltage connector+cable, see above for options
- High voltage DC circuit breakers + eg. din rail clamps to go from 50mm2 to smaller diameter wire (if using the motor invertor connector)
- Nice-to-have: Emergency/maintenance shutdown button, preferably protected against accidental turn on with a lock Eg one of these
- Enable #define MEB_BATTERY in USER_SETTINGS.h
- Enable #define CAN_FD in USER_SETTINGS.h
- Set .battery = CAN_ADDON_FD_MCP2518 in USER_SETTINGS.cpp
- Disconnecting the pilot line before turning the battery on results in contactors not closing
- Disconnecting the pilot line when contactors are closed, only results in 'HVIL status: Open!' but contactors stay closed (pilotline alone is therefore not suitable for emergency shutdown)
- In all cases the pilotline bit in 0x5A2 does not change.
Alternative option may be to remove 12V from T30C (ignition), which directly results in contactors opening.
Set the following at the top of SOLAX-CAN.cpp:
#define NUMBER_OF_MODULES 8 #define BATTERY_TYPE 0x83
- Communicate to battery and identify issues
- Physical repair battery
- Built and connect ODIS via bridge
- Battery unlock procedure
- T25 Torx to open metal cover
- 24mm (?? check size) socket wrench
- T27 isolated Torx
- Personal protection
- Additional Lilygo flashed with SW: ODIS relay (Adjust AP name if you already have the same name)
- CANFD interface (remove 120Ohm resistor R2 and R3)
- Windows 10 laptop with ODIS installed
- VAS 6154 dongle or clone
Crash locked: On the "More Battery Info" page the error "BMS fault emergency shutdown" has the state "Active!"
Welded contactor locked: On the "More Battery Info" page the error "Welded contactors" has the state "At least 1 contactor welded"
Caution
When disconnection the BMS (battery internal), the repair manual specifies a specific order of disconnection! Failing to do this can trigger the pyro fuse!!! Make sure to follow the correct procedures when performing internal repairs to the battery, service manual is avaiable.
- First remove any external connection to the battery (Motor/inverter, AC-charging, DC-charging and data conneciton).
- Then remove the orange busbars connection to the positive and negative connector/contactor blocks.
- After this split the pack in 2 by removing the small orange busbar at the end of the pack.
- Finally the BMS can be disconnected. Reconnection happens in reverse connection.
Welded contactor: Test contactor and check if welded. If needed replace contactor.
Todo: add contactor part numbers
Pyro fuse: Replace pyro fuse options
- New pyro fuse (todo add typenumber)
- Normal fuse, like (todo add typenumber) and 2.5ohm resistor to BMS connection (can replace external fuse)
- Jumper bridge (diy) and 2.5ohm resistor to BMS connection (external fuse still required)
There are 2 different length of pyrofuses used 63mm and 70mm! (screw holes center to center) (note: my pack only had 1 pyrofuse...)
63mm center to center -> 9j1915463a 70mm center to center -> 11k915463b (black one) Genuine Volkswagen Sealant part nr: D454300H2 (blue sealant between the top cover of the battery) Oval hexagon socket head bolt part nr: WHT009218
Below the connection diagram for the setup. When wifi AP's are used make sure both lilygo's have a different name. Remove the 2 x 60 ohm resistors in series.
- Go to ODB
- Start diagnostics
- Manually insert VIN and car type
- Read modules
- Open Hybrid battery module
- Check errors
- Enable acccess via code 20103
- Basic settings, clear DTC that is needed (create list here)
- Enable acccess via code 20103
- Clear ODB memory
Check if error is gone via Lilygo
party time!
From safety testing, we have concluded that the MEB batteries will automatically open contactors if the temperature sensors inside the battery goes over 70*C. (We automatically write 0W allowed if temperature goes too high, but nice to know there is an extra layer of safety built into the MEB BMS)