I am implementing UDS firmware update using PCAN-UDS API and I faced an issue with the **0x36 – TransferData** service.
**My expected block format (this works on another CAN analyzer):**
For each 3840-byte block of firmware:
```
ISO-TP frame data (sent on the wire):
[ SID = 0x36 ]
[ BSC = blockSequenceCounter ]
[ payload = 3840 bytes ]
[ CRC16 (2 bytes) ]
[ CRC32 (4 bytes, only on last block) ]
```
Total last block size = **3844 bytes**.
My ECU correctly receives this structure and verifies:
* CRC16 = CRC over: SID (0x36) + BSC + payload
* CRC32 matches full firmware
This format works perfectly on our other analyzer and firmware update succeeds.
---
**Problem with PCAN-UDS**
When I call:
```cpp
UDS_SvcTransferData_2013(
channel,
config,
&request,
blockSequenceCounter,
tprBuffer,
tprSize
);
```
PCAN correctly creates the UDS message and starts ISO-TP multi-frame transmission.
However:
It looks like only the **First Frame** and **one Consecutive Frame** reach the ECU.
The rest of the payload is never delivered to the application layer on the ECU side.
There is **no NRC response** and no flow control error.
The ECU simply receives truncated data.
---
**My questions:**
1. **Does PCAN-UDS automatically include SID (0x36) and BSC when calculating the ISO-TP payload?**
Or should my `transfer_request_parameter_record` include SID/BSC explicitly?
2. **Is there any max payload limit imposed by PCAN-UDS for TransferData?**
My blocks are 3844 bytes total — inside ISO-TP max of 4095 bytes.
3. **Is it valid to send full 3844-byte TransferData blocks using PCAN-UDS?**
Or does PCAN require smaller TPR sizes?
4. **Is there any known issue in PCAN-UDS where only the first FF + 1 CF is transmitted to the ECU application layer?**
5. Could you provide a minimal example of `UDS_SvcTransferData_2013` that sends a multi-frame payload around **4 KB**?
---
**Additional notes:**
* I verified that the ECU works correctly with our other proprietary analyzer.
* Only PCAN-UDS transfers are truncated.
* My CAN FD configuration is correct and works for all other UDS services.
---
Thank you,
Prashanth
