Skip to content
Daniel Öster edited this page Mar 16, 2025 · 17 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.

Disclaimer and Safety notes

Warning

The entire Battery-Emulator project focuses on re-using EV batteries for stationary storage. The following support page for CHAdeMO connection to the in-vehicle battery is only to be used for emergencies, where the grid is down and you need backup power. It is not intended for daily usage, the following info is ONLY for emergency situations!

Caution

🔥 The CHAdeMO connection requires a genuine CHAdeMO cable. This is to prevent electrical shock to the person plugging in the vehicle. Using 3d-printed parts where you are close to 500VDC is potentially lethal 💀 Do not use anything other than a genuine connector! Genuine connectors known to work will be listed in the wiring and parts detail below.

Be mindful that there is inherent risk to the rest of the vehicle and that you assume responsibility for that risk. Do not attempt on a vehicle you do not own. Be aware that some Nissan Leaf vehicles have experienced contactor welding when using other V2X equipment like Setec inverters; it is a possibility here even despite our best efforts to avoid such issues.


Overview

Supported CHAdeMO vehicles

Generally: CHAdeMO vehicles v1.0 and forward are OK for V2X.

Make and Model Supported Tested Note
Nissan LEAF 2011-2012 No No These use CHAdeMO v0.9 and do not support V2X.
Nissan LEAF 2013-2017 Yes Testing These use CHAdeMO v1.0-1.1 V2X, albeit with some unique idiosyncrasies
Nissan LEAF 2018-2024 Yes Testing These use CHAdeMO v1.2+
Mitsubishi i-MiEV Maybe No

Notes on software implementation

Dala 2025: I have updated the Wiki. There are some things we need to change with the Chademo integration:

  • Remove Contactor_control. The vehicle will do precharge when starting.
  • This will free up some GPIO on the board
  • Add the GPIO logic for d1, d2, and charging sequence signal
  • This previous integrations handled these externally. We should automate this by adding it to Battery-Emulator
  • Implement a start/stop button. This is required for easy use.

Required major components

  • CHAdeMO plug,
  • Isabellenhütte IVT shunt (IVT-Modular or IVT-S),
  • 3 x DC contactors (Precharge, Positive, Negative),
  • Precharge resistor,
  • 2 x DC fuses,
  • GPIO connections, logic level converter...

Connection diagram

Caution

Use only OEM CHAdeMO cables. Do not compromise your safety by using a 3d-printed connector. Your life depends on it.

The 12V supply used needs to be able to handle 2A continuous load to engage the Chademo contactors in the vehicle.

  • Connect pin 8 (CAN-H) to LilyGo CAN_H
  • Connect pin 9 (CAN-L) to LilyGo CAN_L
  • Connect pin 5 (HV-) to inverter -
  • Connect pin 6 (HV+) to inverter +
  • Connect pin 1 (Protective conductor) to Protection Ground and Ground (for 12V supply)
  • Connect pin 7 (Connector proximity detection) to Ground (for 12V supply)
  • Connect Start/Stop switch to LilyGo GPIO - CHADEMO_PIN_7 (not connect to CHAdeMO connector)
  • Pin 2/10/4 should follow activation sequence for CHAdeMO (TODO add this info here)

image

Current sensor

Even though the vehicle will contain a measuring circuit that checks how much current is going in/out of the battery, this information is unfortunately not available on the Chademo-CAN bus. Most solar inverters require the actual current/power to be sent on the communication bus towards the inverter, so to solve this issue we need to add a current sensor.

This sensor gets attached to the Chademo high voltage wiring (either + or -), and connected via CAN to the Battery-Emulator. You can use the same CAN channel as the Chademo CAN, or use an isolated CAN bus for this sensor.

Supported sensors:

While the current sensor is not mandatory for all inverter protocols, it increases safety to have one connected.

Software setup

Enable the option CHADEMO_BATTERY in the USER_SETTINGS.h

Sources used

Clone this wiki locally