diff --git a/README.md b/README.md index 8148f08..7b6df4e 100644 --- a/README.md +++ b/README.md @@ -46,11 +46,14 @@ Screen list ## Release notes -### v1.7.3 2020-11-11 -- Headlights reminder (if drive mode & headlights are off) +### v1.7.4 2020-11-12 +- Initial config for Renault ZOE 22kWh - ODB response analyzer. Please help community to decode unknown values like BMS valves, heater ON switch,... https://docs.google.com/spreadsheets/d/1eT2R8hmsD1hC__9LtnkZ3eDjLcdib9JR-3Myc97jy8M/edit?usp=sharing +### v1.7.3 2020-11-11 +- Headlights reminder (if drive mode & headlights are off) + ### v1.7.2 2020-11-10 - improved charging graph diff --git a/car_renault_zoe.h b/car_renault_zoe.h new file mode 100644 index 0000000..11fd32c --- /dev/null +++ b/car_renault_zoe.h @@ -0,0 +1,66 @@ + +#define commandQueueCountRenaultZoe 10 +#define commandQueueLoopFromRenaultZoe 8 + +String commandQueueRenaultZoe[commandQueueCountRenaultZoe] = { + "AT Z", // Reset all + "AT I", // Print the version ID + "AT E0", // Echo off + "AT L0", // Linefeeds off + "AT S0", // Printing of spaces on + "AT SP 6", // Select protocol to ISO 15765-4 CAN (11 bit ID, 500 kbit/s) + //"AT AL", // Allow Long (>7 byte) messages + //"AT AR", // Automatically receive + //"AT H1", // Headers on (debug only) + //"AT D1", // Display of the DLC on + //"AT CAF0", // Automatic formatting off + "AT DP", + "AT ST16", + + // Loop from (KIA ENIRO) // TODO + // BMS + "ATSH7E4", + "220101", // power kw, ... +}; + +/** + Init command queue +*/ +bool activateCommandQueueForRenaultZoe() { + + params.batModuleTempCount = 4; + params.batteryTotalAvailableKWh = 22; + + // Empty and fill command queue + for (int i = 0; i < 300; i++) { + commandQueue[i] = ""; + } + for (int i = 0; i < commandQueueCountRenaultZoe; i++) { + commandQueue[i] = commandQueueRenaultZoe[i]; + } + + commandQueueLoopFrom = commandQueueLoopFromRenaultZoe; + commandQueueCount = commandQueueCountRenaultZoe; + + return true; +} + +/** + Parse merged row +*/ +bool parseRowMergedRenaultZoe() { + + // TODO + + return true; +} + +/** + Test data +*/ +bool testDataRenaultZoe() { + + // TODO + + return true; +} diff --git a/dist/enirodashboard.ino.bin b/dist/enirodashboard.ino.bin index c2fbf13..90e75e3 100644 Binary files a/dist/enirodashboard.ino.bin and b/dist/enirodashboard.ino.bin differ diff --git a/enirodashboard.ino b/enirodashboard.ino index 6000292..4f1fbf0 100644 --- a/enirodashboard.ino +++ b/enirodashboard.ino @@ -35,6 +35,7 @@ #include "struct.h" #include "car_kia_eniro.h" #include "car_hyundai_ioniq.h" +#include "car_renault_zoe.h" #include "car_debug_obd2_kia.h" // PLEASE CHANGE THIS SETTING for your BLE4 @@ -120,7 +121,7 @@ typedef struct { char serviceUUID[40]; } MENU_ITEM; -#define menuItemsCount 43 +#define menuItemsCount 44 bool menuVisible = false; uint16_t menuCurrent = 0; uint8_t menuItemSelected = 0; @@ -141,7 +142,8 @@ MENU_ITEM menuItems[menuItemsCount] = { {103, 1, -1, "Hyundai Ioniq 2018 28kWh"}, {104, 1, -1, "Kia eNiro 2020 39kWh"}, {105, 1, -1, "Hyundai Kona 2020 39kWh"}, - {106, 1, -1, "Debug OBD2 Kia"}, + {106, 1, -1, "Renault Zoe 22kWh (DEV)"}, + {107, 1, -1, "Debug OBD2 Kia"}, {300, 3, 0, "<- parent menu"}, {301, 3, -1, "Screen rotation"}, @@ -273,6 +275,9 @@ bool loadSettings() { if (settings.carType == CAR_HYUNDAI_IONIQ_2018) { activateCommandQueueForHyundaiIoniq(); } + if (settings.carType == CAR_RENAULT_ZOE) { + activateCommandQueueForRenaultZoe(); + } if (settings.carType == CAR_DEBUG_OBD2_KIA) { activateCommandQueueForDebugObd2Kia(); } @@ -1201,7 +1206,8 @@ bool menuItemClick() { case 103: settings.carType = CAR_HYUNDAI_IONIQ_2018; break; case 104: settings.carType = CAR_KIA_ENIRO_2020_39; break; case 105: settings.carType = CAR_HYUNDAI_KONA_2020_39; break; - case 106: settings.carType = CAR_DEBUG_OBD2_KIA; break; + case 106: settings.carType = CAR_RENAULT_ZOE; break; + case 107: settings.carType = CAR_DEBUG_OBD2_KIA; break; // Screen orientation case 3011: settings.displayRotation = 1; tft.setRotation(settings.displayRotation); break; case 3012: settings.displayRotation = 3; tft.setRotation(settings.displayRotation); break; @@ -1392,6 +1398,9 @@ bool parseRowMerged() { if (settings.carType == CAR_HYUNDAI_IONIQ_2018) { parseRowMergedHyundaiIoniq(); } + if (settings.carType == CAR_RENAULT_ZOE) { + parseRowMergedRenaultZoe(); + } if (settings.carType == CAR_DEBUG_OBD2_KIA) { parseRowMergedDebugObd2Kia(); } @@ -1414,6 +1423,9 @@ bool testData() { if (settings.carType == CAR_HYUNDAI_IONIQ_2018) { testDataHyundaiIoniq(); } + if (settings.carType == CAR_RENAULT_ZOE) { + testDataRenaultZoe(); + } redrawScreen(false); return true; diff --git a/struct.h b/struct.h index 73a12d8..ab94788 100644 --- a/struct.h +++ b/struct.h @@ -4,6 +4,7 @@ #define CAR_HYUNDAI_IONIQ_2018 2 #define CAR_KIA_ENIRO_2020_39 3 #define CAR_HYUNDAI_KONA_2020_39 4 +#define CAR_RENAULT_ZOE 5 #define CAR_DEBUG_OBD2_KIA 999 // Commands loop