Coulomb
Moderator
- Joined
- Apr 24, 2021
- Messages
- 2,176
- Solutions
- 1
- Reaction score
- 1,779
- Points
- 621
- Location
- Brisbane, Australia
- Driving
- MG4 Trophy ER
Here is the disparity I'm going on about. The Thai ZS EV app has (in my decompilation, in sources/p072b/p108c/p109a/p110a/C1193a.java):
static {
String[][] strArr =
{new String[]{"TBOX", "-", "711"},
new String[]{"GW", "-", "710"},
new String[]{"SDM", "-", "730"},
new String[]{"SCU", "-", "771"},
new String[]{"VCU", "-", "7e3"},
new String[]{"TC", "-", "782"},
new String[]{"DCDC", "-", "785"},
new String[]{"BMS", "-", "781"},
new String[]{"EVCC", "-", "776"}, // NOTE
new String[]{"EPB", "-", "723"},
new String[]{"EPS", "-", "721"},
new String[]{"SCS/ABS", "-", "720"},
new String[]{"FVCM", "-", "733"},
new String[]{"FDR", "-", "734"},
new String[]{"BCM", "-", "740"},
new String[]{"PEPS", "-", "745"},
new String[]{"HVAC", "-", "750"},
new String[]{"ESCL", "-", "742"}, // OVMS has no definition
new String[]{"IPK", "-", "760"},
new String[]{"FICM", "-", "761"},
new String[]{"TPMS", "-", "724"},
new String[]{"RDA", "-", "732"}
};
OVMS has in trunk\vehicle\OVMS.V3\components\vehicle_mgev\src\mg_software_versions.cpp:
constexpr uint32_t ecus[] = {
bmsId, dcdcId, vcuId, atcId, bcmId, gwmId, tpmsId, pepsId, 0x761u, 0x760u, 0x784u,
0x776u, 0x771u, 0x782u, 0x734u, 0x733u, 0x732u, 0x730u, 0x723u, 0x721u, 0x720u, 0x711u
};
const char *names[] = {
"BMS", "DCDC", "VCU", "ATC", "BCM", "GWM", "TPMS", "PEPS", "ICE", "IPK", "EVCC",
"PLC", "SCU", "TC", "FDR", "FVCM", "RDRA", "SRM", "EPB", "EPS", "ABS", "TBOX"
};
with in trunk\vehicle\OVMS.V3\components\vehicle_mgev\src\mg_obd_pids.h:
constexpr uint32_t bmsId = 0x781u;
constexpr uint32_t dcdcId = 0x785u;
constexpr uint32_t vcuId = 0x7e3u;
constexpr uint32_t atcId = 0x750u;
constexpr uint32_t bcmId = 0x740u;
constexpr uint32_t gwmId = 0x710u;
constexpr uint32_t tpmsId = 0x724u;
constexpr uint32_t pepsId = 0x745u;
constexpr uint32_t ipkId = 0x760u;
constexpr uint32_t evccId = 0x784u;
So the Thai ZS EV app doesn't use the ECU at 0x784 at all, doesn't call any ECU "PLC", and it calls the one at 0x776 "EVCC".
OVMS calls 0x784 "EVCC", and 0x776 "PLC".
The OVMS has no definition for ECU 742, which the Thai ZS EV app calls ESCL.
Edit 9/Jun/2021: I'm now convinced that the ZS EV app is just missing the OBC ECU (0x784).
OVMS is missing ESCL (0x742), and is misnaming the OBC as "EVCC". OVMS's "PLC" (0x776) is probably better named as "EVCC" (that's the name that appears in the owner's manual as a fuse description, and appears elsewhere in SAIC documentation).
static {
String[][] strArr =
{new String[]{"TBOX", "-", "711"},
new String[]{"GW", "-", "710"},
new String[]{"SDM", "-", "730"},
new String[]{"SCU", "-", "771"},
new String[]{"VCU", "-", "7e3"},
new String[]{"TC", "-", "782"},
new String[]{"DCDC", "-", "785"},
new String[]{"BMS", "-", "781"},
new String[]{"EVCC", "-", "776"}, // NOTE
new String[]{"EPB", "-", "723"},
new String[]{"EPS", "-", "721"},
new String[]{"SCS/ABS", "-", "720"},
new String[]{"FVCM", "-", "733"},
new String[]{"FDR", "-", "734"},
new String[]{"BCM", "-", "740"},
new String[]{"PEPS", "-", "745"},
new String[]{"HVAC", "-", "750"},
new String[]{"ESCL", "-", "742"}, // OVMS has no definition
new String[]{"IPK", "-", "760"},
new String[]{"FICM", "-", "761"},
new String[]{"TPMS", "-", "724"},
new String[]{"RDA", "-", "732"}
};
OVMS has in trunk\vehicle\OVMS.V3\components\vehicle_mgev\src\mg_software_versions.cpp:
constexpr uint32_t ecus[] = {
bmsId, dcdcId, vcuId, atcId, bcmId, gwmId, tpmsId, pepsId, 0x761u, 0x760u, 0x784u,
0x776u, 0x771u, 0x782u, 0x734u, 0x733u, 0x732u, 0x730u, 0x723u, 0x721u, 0x720u, 0x711u
};
const char *names[] = {
"BMS", "DCDC", "VCU", "ATC", "BCM", "GWM", "TPMS", "PEPS", "ICE", "IPK", "EVCC",
"PLC", "SCU", "TC", "FDR", "FVCM", "RDRA", "SRM", "EPB", "EPS", "ABS", "TBOX"
};
with in trunk\vehicle\OVMS.V3\components\vehicle_mgev\src\mg_obd_pids.h:
constexpr uint32_t bmsId = 0x781u;
constexpr uint32_t dcdcId = 0x785u;
constexpr uint32_t vcuId = 0x7e3u;
constexpr uint32_t atcId = 0x750u;
constexpr uint32_t bcmId = 0x740u;
constexpr uint32_t gwmId = 0x710u;
constexpr uint32_t tpmsId = 0x724u;
constexpr uint32_t pepsId = 0x745u;
constexpr uint32_t ipkId = 0x760u;
constexpr uint32_t evccId = 0x784u;
So the Thai ZS EV app doesn't use the ECU at 0x784 at all, doesn't call any ECU "PLC", and it calls the one at 0x776 "EVCC".
OVMS calls 0x784 "EVCC", and 0x776 "PLC".
The OVMS has no definition for ECU 742, which the Thai ZS EV app calls ESCL.
Edit 9/Jun/2021: I'm now convinced that the ZS EV app is just missing the OBC ECU (0x784).
OVMS is missing ESCL (0x742), and is misnaming the OBC as "EVCC". OVMS's "PLC" (0x776) is probably better named as "EVCC" (that's the name that appears in the owner's manual as a fuse description, and appears elsewhere in SAIC documentation).
Last edited: