Open CHAdeMO with SAM3X processor
As of August 2020, I have CHAdeMO working yet again, this time with new and reliable hardware designed and built by Damien Maguire of
evbmw.com. Code is on
Github with a short guide. Development occurred on the
OpenInverter forum. Thanks to EVTV, Damien, and all other contributors!
Development
The old JLD505 hardware, based on the ATMega328, was running out of storage space and expansion capabilities. So I spent some time working on adapting it for the GEVCU hardware, as previously noted here. However, the GEVCU hardware is expensive and not very user-friendly. So when Damien Maguire, of YouTube fame, began working on a custom CHAdeMO control unit with the Due processor, I got to work on the software. Starting with the modified JLD505 software, I changed libraries, simplified functions, rewrote sensor libraries, and finally had the code all ready to run on new hardware - specifically, Damien's Leaf VCU.
On August 27, I plugged into a station and put 0.3KWh into my pack, at 39Kw charge rate. So I am documenting and releasing everything I have to help the community do the same.
How does it work?
CHAdeMO is a complicated protocol. It uses a combination of CAN communication and 12V signals to establish a connection, negotiate settings, and maintain communications. Each side can disconnect the battery voltage at any time in case of a fault, and both sides constantly monitor current and voltage levels and compare them to the other side's readings. The protocol provides for charging at up to 500V and 125A, allowing 50Kw charging for most EVs.
Damien's Leaf VCU has two digital inputs and three outputs, as well as a pair of CAN busses. Using 2 inputs, 2 outputs, and 1 CAN bus, it communicates with a CHAdeMO charging station to request power. The voltage and current limits are fully configurable, as are the safety features. Power is monitored by an Isabellenhuette IVT or IVT-S shunt, which can handle over 1000 amps while measuring down to the millivolt and milliamp. My custom BMS communicates over CAN to the VCU, ensuring that the total battery voltage, individual cell voltages, and battery temperatures stay within safe ranges.