Skip to Content
UDS Simulator 2.0 Released

Docs baseline actions

Copy this page URLEdit page
Docs0x35 Request Upload

Service Interaction Protocol

Request Upload

0x35
Protocol Identifier
The RequestUpload service initiates a data transfer sequence FROM the ECU TO the tester. This service prepares the ECU to send firmware, calibration data, or diagnostic logs that will be retrieved via subsequent TransferData (0x36) requests.

Overview

ISO 14229-1

RequestUpload is the counterpart to RequestDownload (0x34). It initiates reading data FROM the ECU. The sequence is: RequestUpload (0x35) → TransferData (0x36) → RequestTransferExit (0x37). The ECU responds with the maximum block size it will send per transfer.

Interactions with Other SIDs

Prerequisites & Dependencies

  • 0x10Programming Session (0x02) or Extended Session (0x03)
  • 0x27Security Access often required
  • 0x36TransferData retrieves the actual data blocks
  • 0x37RequestTransferExit completes the sequence

Message Format

Request Format

ByteFieldValueDescription
0SID0x35Request Upload
1dataFormatIdentifier0xNNCompression/Encryption (usually 0x00)
2addressAndLengthFormatId0xNNALFID (same as 0x34)
3-NmemoryAddressVariableSource memory location
N+1-MmemorySizeVariableTotal bytes to upload

Response Format

ByteFieldValueDescription
0Response SID0x75Positive Response (SID + 0x40)
1lengthFormatIdentifier0xN0Size of maxBlockLength field
2-NmaxNumberOfBlockLengthVariableMax bytes per TransferData response

TX/RX Examples

Request Upload 4KB from 0x00100000

tx_packet

Request

35 00 44 00 10 00 00 00 00 10 00

> Upload 4096 bytes from flash

rx_packet

Response

75 20 02 00

> MaxBlockLength=512 bytes

ECU ready to send data in 512-byte blocks

Read Calibration Data

tx_packet

Request

35 00 44 00 20 00 00 00 00 01 00

> Upload 256 bytes of calibration

rx_packet

Response

75 20 01 00

> MaxBlockLength=256 bytes

Entire calibration fits in one block

UML Sequence Diagrams

Complete Upload Sequence

Read Firmware from ECU

12 steps
Tester
ECU

Anticipated Behavior

info _entry

TransferData Direction: Unlike RequestDownload where the tester sends data in 0x36, with RequestUpload the ECU sends data in the 0x36 response.

warning _entry

Block Sequence: The tester sends sequential block numbers (01, 02, 03…) in TransferData requests. The ECU responds with the corresponding data block.

Negative Response Codes (NRCs)

NRCNameDescription
0x13Incorrect Message LengthALFID mismatch with address/size bytes
0x22Conditions Not CorrectUpload already in progress
0x31Request Out of RangeInvalid memory address or size
0x33Security Access DeniedProtected memory, unlock required
0x70Upload/Download Not AcceptedWrong session type