# [040]HWR CRC Calculation Parsing(1) ## Step63.Get CRC address * (start and stop address) and check return value ### 17FC060E: * Diag_ABT_1_Req_Data * TP-ISO * NoMsdSendType ### 17FE060E: * Diag_ABT_1_Resp_Data * TP-ISO * NoMsdSendType ![](https://i.imgur.com/CgFtzOe.png) ```c= 17FC060E | 02-10-61-AA-AA-AA-AA-AA 17FE060E | 06-50-61-00-32-01-F4-CC ``` * 10 means serviceID "diagnosticSessionControl" * 61 means 0x61(hex) = 97 (dec) (change to developer session) ```c= 17FC060E | 10-08-31-01-F0-91-31-01 17FE060E | 30-0F-05-CC-CC-CC-CC-CC 17FC060E | 21-01-60-AA-AA-AA-AA-AA 17FE060E | 04-71-01-F0-91-CC-CC-CC ``` ![](https://i.imgur.com/0aItkOm.png) * line1:31 means rountine control * Line1:01 means startRoutine * line4 shows `$71` is response SID of routine control ```c= 17F8F173 | 10-0D-C9-03-13-0F-00-30 17FA73F1 | 30-FF-00-AA-AA-AA-AA-AA 17F8F173 | 21-00-00-00-31-FF-FF-FF ``` * 17F8F173 is HID_ABT_1_ZR_Req_Data * 17FA73F1 is HID_ABT_1_ZR_Resp_Data * line1 shows 13 is namespace * line1 shows 0F is `HwrCrcStartStopAddress` * How to code with PropertyStatus? * reference **ReadHWRSWVersion** ```c= byte type = (byte)DevicesLibraryVW.Utils.Uds.DiagnosticUtil.RoutineControlSubFunction.StartRoutine; /* Routine Control Idendifier !!! */ ushort rid = (ushort)DevicesLibraryVW.Utils.Uds.DiagnosticUtil.Rid.CddHWRHWRDiagConfigPropReq; /* Routine Control Data */ List<byte> Data = new List<byte>() { 0x04, 0x31, 0x01, 0x00, 0xF0 }; VWABTE3Ghidorah.UdsRespArgs RespData = VWABTE3Ghidorah.instance.SendUdsRCRequest(type, rid, Data); ``` > * CRC start addres must equal **`0x30000000`** > * CRC stop address must equal `0x31FFFFFF` ## Step64:Execute CRC Calculation ```c= 17FC060E | 02-10-61-AA-AA-AA-AA-AA 17FE060E | 06-50-61-00-32-01-F4-CC ``` * line1 means to change to `developer Session` * 10 means serviceID “diagnosticSessionControl” * 61 means 0x61(hex) = 97 (dec) (change to developer session) ```c= 17FC060E | 10-08-31-01-F0-90-41-01 17FE060E | 30-0F-05-CC-CC-CC-CC-CC 17FC060E | 21-00-02-AA-AA-AA-AA-AA 17FE060E | 04-71-01-F0-90-CC-CC-CC ``` * line1 F0-90 means `CddHWRNXPRT1171_RoutineRequest` ![](https://i.imgur.com/zXn3gDD.png) ## Step65:Wait 2 Seconds ## Step66:Get CRC Result and Store return value ```c= 17FC060E | 02-10-61-AA-AA-AA-AA-AA 17FE060E | 06-50-61-00-32-01-F4-CC ``` * Change to developer session ```c= 17FC060E | 10-08-31-01-F0-91-31-01 17FE060E | 30-0F-05-CC-CC-CC-CC-CC 17FC060E | 21-00-F6-AA-AA-AA-AA-AA 17FE060E | 04-71-01-F0-91-CC-CC-CC ``` > * line1 show F0-91 means `CddHWRNXPRT1171_configPropRequest` ```c= 17F8F173 | 10-09-C9-03-13-0E-00-KK 17FA73F1 | 30-FF-00-AA-AA-AA-AA-AA 17F8F173 | 21-LL-MM-NN-CC-CC-CC-CC ``` > * 13-0E means the `HwrCrc` name > * CRC result must be stored (the value of **0xKKLLMMNN**) ## Meeting * HWR CRC Calculation Value would be inconsistent due to the flash memory * ## To-Do-List * update daliy report ### 1.VW-ABT-E3-15-Cfinal * Replay * programing the MCU software to `7040` * MCU Programming Manual-7040 * check email of script * Check CAN Log Feedback after entering four steps * Check CAN Log after sending `writepartalchecksum` * Ask Liu for HWR log and station log ### 2.Reply * HWR station log and can log ### 3.EOL line software Release Date * VW-ABT-E3-15-Cfinal * VW-ABT-E3-10-Bfinal with Skoda and SEAT