Qualcomm AR7420 Homeplug Modem Modification - hwthomas/ccs-chademo GitHub Wiki
See openinverter forum https://openinverter.org/forum/viewtopic.php?p=37085#p37085 and the openinverter wiki: https://openinverter.org/wiki/CCS_EVCC_using_AR7420
Quick start / overview Modify a PLC adaptor hardware, that it runs on battery Modify the configuration of the PLC adaptor, that it supports HomePlug Green Phy including the SLAC. Install wireshark to view the network traffic Optional: Install the Plugin for Wireshark from https://github.com/geynis/v2g-ws-dissectors, to decode the V2GTP. This does NOT decode the EXI itself. Install Pcap-ct python library Get and compile the exi decoder/encoder from http://github.com/uhi22/OpenV2Gx Run python pyPlc.py and use keyboard to trigger actions, or Run python pyPlc.py E for EVSE (charger) mode, or Run python pyPlc.py P for PEV mode, or Run python pyPlc.py L for Listen mode
(NB - If RPi is installed without GUI, use the evseNoGui.py and pevNoGui.py programs) Architecture architectural overview
Hardware preparation See Hardware manual
Configuration of the PLC adaptor The factory settings of the Homeplug PLC adaptor do not in all cases support the requirements of the communication with the car, e.g. the SLAC messages. In detail, the adaptors are supporting HomePlugAV, but we need HomePlugGP (Green Phy). This is similar, but not the same. Fortunately, the supplier of the chipset is aware of this topic, and provides some smart helper tools. http://github.com/qca/open-plc-utils It is worth to read its documentation, starting in docbook/index.html, this contains all what we need for the next steps. A more detailled description and discussion is available in https://openinverter.org/forum/viewtopic.php?p=55120#p55120.
(Tested on Linux/Raspbian on a raspberryPi 4b)
Find the PLC adaptor
pi@RPi3D:~ $ int6klist -ieth0 -v
This shows the software version and the mac address.
Read the configuration from the PLC adaptor and write it to a file
pi@RPi3D:~ $ plctool -ieth0 -p original.pib 98:48:27:5A:3C:E6
eth0 98:48:27:5A:3C:E6 Read Module from Memory
Patch the configuration files (see /docbook/ch05s15.html). For each side (pev (vehicle) and evse (charger) there is a special configuration.
Example pev side: pi@RPi3D:~ $ cp original.pib pev.pib pi@RPi3D:~ $ setpib pev.pib 74 hfid "PEV" # User role = "PEV" for modem identification pi@RPi3D:~ $ setpib pev.pib F4 byte 1 # Sets CCo Selection to Never pi@RPi3D:~ $ setpib pev.pib 1653 byte 1 # Sets SLAC selection to PEV pi@RPi3D:~ $ setpib pev.pib 1C98 long 10240 long 102400 #LowLink speed kbps, HighLink speed kbps
Write the configuration file to the PLC adaptor pi@RPi3D:~ $ plctool -ieth0 -P pev.pib 98:48:27:5A:3C:E6 # write to PEV MAC address eth0 98:48:27:5A:3C:E6 Start Module Write Session eth0 98:48:27:5A:3C:E6 Flash pev.pib ... eth0 98:48:27:5A:3C:E6 Close Session eth0 98:48:27:5A:3C:E6 Reset Device eth0 98:48:27:5A:3C:E6 Resetting ...
Example evse side: pi@RPi3D:~ $ cp original.pib evse.pib pi@RPi3D:~ $ setpib evse.pib 74 hfid "EVSE" # User role = "EVSE" for modem identification pi@RPi3D:~ $ setpib evse.pib F4 byte 2 # Sets CCo selection to Always pi@RPi3D:~ $ setpib evse.pib 1653 byte 2 # Sets SLAC selection to EVSE pi@RPi3D:~ $ setpib evev.pib 1C98 long 10240 long 102400 #LowLink speed kbps, HighLink speed kbps
Write the configuration file to the PLC adaptor pi@RPi3D:~ $ plctool -ieth0 -P evse.pib 98:48:27:5A:3C:A6 # write to EVSE MAC address eth0 98:48:27:5A:3C:A6 Start Module Write Session eth0 98:48:27:5A:3C:A6 Flash pev.pib ... eth0 98:48:27:5A:3C:A6 Close Session eth0 98:48:27:5A:3C:A6 Reset Device eth0 98:48:27:5A:3C:A6 Resetting ...
The open-plc-utils contain the programs evse and pev, which can be used for try-out of the functionality, using two PLC adaptors. (However, note that these programs are set up for different network keys, and have not been tested here at all)