---
# System prepended metadata

title: '[040]HWR CRC Calculation Parsing(1)'

---

# [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