ChryslerCCDSCIScanner UART Protocol
ChryslerCCDSCIScanner UART Protocol
4X UART Protocol
1. Frame format
Start of End of
Frame length Frame description Data
frame frame
LENGTH LENGTH DATA SUB-DATA
SYNC PAYLOAD CHECKSUM
HB LB CODE CODE
00 DA A9
3D 00 06 05 02 9D
0D
Table 1. Frame format example (hex numbers implied).
LENGTH bytes: number of bytes following (not including these two) until the
CHECKSUM byte is reached. Maximum frame length is limited to 1024 bytes.
Size: 2 bytes.
DATA CODE byte: describes the source, target and command. Size: 1 byte.
SUB-DATA CODE byte: command extension if the command alone is not enough to
describe the purpose of the frame. Size: 1 byte
PAYLOAD byte(s): optional. Arbitrary data can be stored here. Size: limited to a
maximum of 1024-6=1018 bytes.
CHECKSUM byte: all bytes, except SYNC, summed up, lower byte of the result is
placed here for error detection. Size: 1 byte.
Frame transmission and reception is realized via +5V logic serial communication
with non-return-to-zero (NRZ) encoding at 250000 baudrate either trough the USB
or FTDI connector.
0 0 1 0 0 1 1 0
Bit 7:6 – Source of the frame: Bit 5:4 – Target of the frame:
00b: USB 00b: USB
01b: CCD 01b: CCD
10b: PCM 10b: PCM
11b: TCM 11b: TCM
1
Chrysler CCD/SCI Scanner V1.4X UART Protocol
3. Frame examples
3.1 Reset (command: 00)
Applicable SUB-DATA CODE bytes (modes):
00: initiate scanner reset.
01: scanner reset done.
02-FF: reserved.
3D 00 02 00 00 02
3D 00 03 00 00 00 03
3D 00 03 00 01 00 04
Note that the scanner never sends a communication packet without payload but
accepts them without one. In a response made by the scanner at least a single 00
byte is included and it generally means success.
2
Chrysler CCD/SCI Scanner V1.4X UART Protocol
3D 00 02 01 00 03
3D 00 02 01 01 04
A third party software should look for a response like this when searching for
the scanner among many serial devices.
Another 2 separate frames are sent by the scanner when additional information is
requested: 1 hardware/firmware version and 1 status frame.
3D 00 02 02 00 04
3
Chrysler CCD/SCI Scanner V1.4X UART Protocol
PAYLOAD offset:
00-02: AVR signature (1E 98 01 for ATmega2560).
03: external EEPROM present (00: false, 01: true).
04: external EEPROM checksum.
05: external EEPROM calculated checksum.
06-09: current timestamp in milliseconds.
0A-0B: RAM usage out of 8192 bytes.
0C: connected to vehicle (00: false, 01: true).
0D-0E: measured vehicle battery voltage (multiplied by 100).
0F: CCD-bus status byte:
Bit 7:6 – bus id bits, reads 01b for CCD-bus.
Bit 5: – change settings bit, reads always 0b (0b: keep, 1b: change).
Bit 4: – state bit (0b: disabled, 1b: enabled).
Bit 3: – logic bit, reads always 0b (0b: non-inverted, 1b: inverted).
Bit 2: – termination and bias (TB) bit (0b: disabled, 1b: enabled).
Bit 1:0 – baudrate bits (00b: 976.5, 01b: 7812.5, 10b: 62500, 11b:
125000), reads always 01b as the only known communication
speed for CCD-bus.
10-13: number of CCD-bus messages received.
14-17: number of CCD-bus messages sent.
18: SCI-bus (PCM) status byte:
Bit 7:6 – bus id bits, reads 10b for the PCM.
Bit 5: – change settings bit (0b: keep settings, 1b: change settings).
Bit 4: – state bit (0b: disabled, 1b: enabled).
Bit 3: – logic bit (0b: non-inverted, 1b: inverted).
Bit 2: – OBD configuration bit (0b: A, 1b: B).
Bit 1:0 – baudrate bits (00b: 976.5, 01b: 7812.5, 10b: 62500, 11b:
125000), 7812.5 and 62500 baud are most commonly used.
19-1C: number of SCI-bus (PCM) messages received.
1D-20: number of SCI-bus (PCM) messages sent.
21: LCD state (00: disabled, 01: enabled).
22: LCD I2C address.
23: LCD width in characters.
24: LCD height in characters.
25: LCD refresh rate in Hz.
26: LCD units (00: imperial, 01: metric).
27: LCD data source (01: CCD-bus, 02: SCI-bus PCM, 03: SCI-bus TCM).
28-29: LED heartbeat interval in milliseconds.
2A-2B: LED blink duration in milliseconds.
4
Chrysler CCD/SCI Scanner V1.4X UART Protocol
PAYLOAD offset:
00-01: heartbeat interval in milliseconds, 5000 ms = 13 88.
02-03: blink duration for all LEDs in milliseconds, 50 ms = 00 32.
PAYLOAD offset:
00: setting state (00: ok, FF: error).
01-02: heartbeat interval in milliseconds.
03-04: LED blink duration in milliseconds.
3D 00 04 03 02 01 00 0A
PAYLOAD offset:
00: CCD-bus state (00: disabled, 01: enabled).
01: internal CCD-bus termination and bias state (00: disabled,
01: enabled). This feature is available for V1.44+ hardware versions only.
3D 00 05 03 02 00 01 00 0B
PAYLOAD offset:
00: setting state (00: ok, FF: error).
01: CCD-bus state.
02: internal CCD-bus termination and bias state.
5
Chrysler CCD/SCI Scanner V1.4X UART Protocol
3D 00 03 03 03 B1 BA
PAYLOAD offset:
00: SCI-bus status:
Bit 7:6 – bus id bits, reads 10b for the PCM (11b for TCM).
Bit 5: – change settings bit (0b: keep settings, 1b: change settings).
Bit 4: – state bit (0b: disabled, 1b: enabled).
Bit 3: – logic bit (0b: non-inverted, 1b: inverted).
Bit 2: – OBD configuration bit (0b: A, 1b: B).
Bit 1:0 – baudrate bits (00b: 976.5, 01b: 7812.5, 10b: 62500, 11b: 125000)
Example: B1 = 10110001b
10b: PCM
1b: change settings
1b: enabled state
0b: non-inverted logic
0b: A-configuration
01b: 7812.5 baudrate
The 5th change settings bit must always be set, otherwise the scanner ignores
the request.
3D 00 04 03 03 00 91 9B
PAYLOAD offset:
00: setting state (00: ok, FF: error).
01: SCI-bus state.
Example: 91 = 10010001b
10b: PCM
0b: keep settings
1b: enabled state
0b: non-inverted logic
0b: A-configuration
01b: 7812.5 baudrate
6
Chrysler CCD/SCI Scanner V1.4X UART Protocol
PAYLOAD offset:
00: target bus (01: CCD-bus, 02: SCI-bus PCM, 03: SCI-bus TCM).
01-02: message repeat interval in milliseconds, 100 ms = 00 64.
03-04: message increment for every repeat, 2 = 00 02.
When message repeating is enabled the scanner uses the interval set here for
message timing. Message incrementing is applicable to a specific B2-request
message only.
PAYLOAD offset:
00: setting state (00: ok, FF: error).
01: target bus.
02-03: message repeat interval in milliseconds.
04-05: message increment for every repeat.
PAYLOAD offset:
00: state (00: disabled, 01: enabled).
01: I2C address, 27 (hex).
02: character width, 14: 20 characters.
03: character height, 04: 4 characters.
04: refresh rate in Hz, 14: 20 Hz.
05: units (00: imperial, 01: metric).
06: data source (01: CCD-bus, 02: SCI-bus PCM, 03: SCI-bus TCM).
PAYLOAD offset:
00: setting state (00: ok, FF: error).
01-07: current LCD settings, refer to Table 19’s PAYLOAD offset.
7
Chrysler CCD/SCI Scanner V1.4X UART Protocol
3D 00 02 04 01 07
PAYLOAD offset:
00-01: hardware version, 00 8C = 140 -> v1.40.
02-09: hardware date, 00 00 00 00 5B 7B EA 33:
64-bit UNIX time (2018.08.21 12:32:19).
0A-11: assembly date, 00 00 00 00 5C 02 56 AF:
64-bit UNIX time (2018.12.01 10:38:55).
12-09: firmware version/date:
00 01 00 00: major minor patch (build) -> v0.1.0(.0),
5F 19 B9 2A: 32-bit UNIX time (2020.07.23 18:22:02).
3D 00 02 04 02 08
8
Chrysler CCD/SCI Scanner V1.4X UART Protocol
PAYLOAD offset:
00-03: milliseconds elapsed since last reset:
01 F2 03 23 = 32637731 ms = 09:03:57.731 (HH:mm:ss.fff).
3D 00 02 04 03 09
3D 00 06 05 03 04 E0 F2
PAYLOAD offset:
00-01: battery voltage multiplied by 100, 04 E0 = 1248 = 12.48 V.
3D 00 02 04 04 0A
3D 00 05 05 04 01 AE AE 6B
PAYLOAD offset:
00: checksum state (00: error, 01: ok).
01: stored checksum, AE.
02: calculated checksum, AE.
3D 00 02 04 05 0B
9
Chrysler CCD/SCI Scanner V1.4X UART Protocol
PAYLOAD offset:
00-01: CCD+ wire voltage multiplied by 100, 00 F8 = 248 = 2.48 V.
02-03: CCD- wire voltage multiplied by 100, 00 FC = 252 = 2.52 V.
CCD-bus wire voltage measuring is available for V1.44+ hardware versions only.
3D 00 02 16 01 19
3D 00 04 06 01 00 01 0C
PAYLOAD offset:
00: response state (00: ok, FF: error).
01: target bus (01: CCD-bus, 02: SCI-bus PCM, 03: SCI-bus TCM).
PAYLOAD bytes(s):
E4 00 00 E4: message to be transmitted on the target bus.
10
Chrysler CCD/SCI Scanner V1.4X UART Protocol
3D 00 04 06 02 00 01 0D
PAYLOAD offset:
00: acknowledgment state (00: ok, FF: error).
01: target bus (01: CCD-bus, 02: SCI-bus PCM, 03: SCI-bus TCM).
This response frame acknowledges that the message transmission request has been
processed and the message is waiting in the transmit buffer.
Normally transmission occurs almost immediately and a second frame is
received containing a timestamp and the received message.
PAYLOAD offset:
00-03: timestamp in milliseconds, 00 53 88 06 = 5474310 ms = 01:31:14.310.
04-07: received message from source bus, E4 00 00 E4.
This type of frame is received for every kind of transmission modes regardless
of list transmission and message repeating.
PAYLOAD offset:
00: message iteration state (00: disabled, 01: enabled), for this mode it reads
always 00.
01: number of messages in the list, 02: 2 messages.
11
Chrysler CCD/SCI Scanner V1.4X UART Protocol
The list goes on similarly: every message is preceded with its length.
The delay value between messages is taken from the repeat behavior settings,
which is 100 ms by default.
3D 00 04 06 03 00 01 0E
PAYLOAD offset:
00: acknowledgment state (00: ok, FF: error).
01: target bus (01: CCD-bus, 02: SCI-bus PCM, 03: SCI-bus TCM).
The following frames are marked as single messages described in Table 35.
PAYLOAD offset:
00: message iteration state (00: disabled, 01: enabled).
01: number of messages in the list, 01: 1 message.
02: message length, 04: 4 bytes.
03-06: message to be transmitted on the target bus, 24 00 00 24.
The delay between messages is taken from the repeat behavior settings, which is
100 ms by default.
3D 00 04 06 04 00 01 0F
PAYLOAD offset:
00: acknowledgment state (00: ok, FF: error).
01: target bus (01: CCD-bus, 02: SCI-bus PCM, 03: SCI-bus TCM).
12
Chrysler CCD/SCI Scanner V1.4X UART Protocol
PAYLOAD offset:
00: message iteration state (00: disabled, 01: enabled).
01: number of messages in the list, 01: 1 message.
02: message length, 06: 6 bytes.
03-08: starting message to be transmitted on the target bus, B2 20 22 00 00 F4.
09-0E: ending message to be transmitted on the target bus, B2 20 22 FF FE F1.
Note that the message length only appears once. Also in this special case only
the 4th and 5th bytes (known as request/response parameters) are considered for
incrementing.
This particular example requests ROM values from the Body Control Module (BCM).
Its ROM has a 16-bit address space so requested addresses range between 00 00
and FF FE. Since the response message (F2) has also two parameters therefore 2
bytes are returned: 1 byte at the requested ROM location and the next byte.
3D 00 04 06 04 00 01 0F
13
Chrysler CCD/SCI Scanner V1.4X UART Protocol
PAYLOAD offset:
00: acknowledgment state (00: ok, FF: error).
01: target bus (01: CCD-bus, 02: SCI-bus PCM, 03: SCI-bus TCM).
PAYLOAD offset:
00: message iteration state (00: disabled, 01: enabled).
01: number of messages in the list, 01: 1 message.
02: message length, 04: 4 bytes.
03-08: starting message to be transmitted on the target bus, 26 00 00 00.
09-0E: ending message to be transmitted on the target bus, 26 01 FF FF.
Note that the message length only appears once. Possible message lengths are
1-4 bytes.
3D 00 04 06 04 00 02 10
PAYLOAD offset:
00: acknowledgment state (00: ok, FF: error).
01: target bus (01: CCD-bus, 02: SCI-bus PCM, 03: SCI-bus TCM).
14
Chrysler CCD/SCI Scanner V1.4X UART Protocol
PAYLOAD offset:
00: message iteration state (00: disabled, 01: enabled).
01: number of messages in the list, 02: 2 messages.
02: first message length, 04: 4 bytes.
03-06: first message to be transmitted on the target bus, 24 00 00 24.
07: second message length.
08-0B: second message to be transmitted on the target bus, E4 00 00 E4.
The list goes on similarly: every message is preceded with its length.
3D 00 04 06 04 00 01 0F
PAYLOAD offset:
00: acknowledgment state (00: ok, FF: error).
01: target bus (01: CCD-bus, 02: SCI-bus PCM, 03: SCI-bus TCM).
PAYLOAD offset:
00: state (00: disabled, 01: enabled).
00-01: minimum interval in milliseconds between two random messages,
00 64 = 100 ms.
02-03: maximum interval in milliseconds between two random messages,
01 F4 = 500 ms.
Minimum interval should be no less than 20 ms because CCD-bus load is near 100%
at this value. Message lengths are fixed between 3 and 6 bytes to make the
messages look more authentic.
15
Chrysler CCD/SCI Scanner V1.4X UART Protocol
3D 00 04 0E 01 00 01 14
PAYLOAD offset:
00: acknowledgment state (00: ok, FF: error).
01: target bus (01: CCD-bus, 02: SCI-bus PCM, 03: SCI-bus TCM).
3D 00 04 0E 02 00 00 14
PAYLOAD offset:
00-01: internal EEPROM offset, 00 00.
Possible offset for the ATmega2560 MCU range between 00 00 and 0F FF (4 kB).
PAYLOAD offset:
00: response state (00: ok, FF: error).
01-02: internal EEPROM offset.
03: value at the given offset, 00.
PAYLOAD offset:
00-01: internal EEPROM offset, 00 00.
02-03: number of bytes to read, 00 02 = 2 bytes.
16
Chrysler CCD/SCI Scanner V1.4X UART Protocol
PAYLOAD offset:
00: response state (00: ok, FF: error).
01-02: internal EEPROM offset.
03: value at the given offset, 00.
04: value at next address, 00.
XX: value at a further consecutive address.
3D 00 04 0E 04 00 00 16
PAYLOAD offset:
00-01: external EEPROM offset, 00 00.
Possible offsets for the 24LC32A chip range between 00 00 and 0F FF (4 kB).
PAYLOAD offset:
00: response state (00: ok, FF: error).
01-02: external EEPROM offset.
03: value at the given offset, 00.
PAYLOAD offset:
00-01: external EEPROM offset, 00 00.
02-03: number of bytes to read, 00 02 = 2 bytes.
PAYLOAD offset:
00: response state (00: ok, FF: error).
01-02: external EEPROM offset.
03: value at the given offset, 00.
04: value at next address, 8C.
XX: value at a further consecutive address.
17
Chrysler CCD/SCI Scanner V1.4X UART Protocol
3D 00 05 0E 06 00 00 00 19
PAYLOAD offset:
00-01: internal EEPROM offset, 00 00.
02: value to write, 00.
PAYLOAD offset:
00: response state (00: ok, FF: error).
01-02: internal EEPROM offset.
03: value confirmation at the given offset, 00.
PAYLOAD offset:
00-01: internal EEPROM offset, 00 00.
02: value to write at offset, 00.
03: value to write at next address, 00.
XX: further value to write at next consecutive address.
PAYLOAD offset:
00: response state (00: ok, FF: error).
01-02: internal EEPROM offset.
03: EEPROM value confirmation at the given offset, 00.
04: EEPROM value confirmation at the next address, 00.
XX: value confirmation at next consecutive address.
18
Chrysler CCD/SCI Scanner V1.4X UART Protocol
3D 00 05 0E 08 00 00 00 1B
PAYLOAD offset:
00: response state (00: ok, FF: error).
01-02: external EEPROM offset.
03: EEPROM value confirmation at the given offset, 00.
PAYLOAD offset:
00-01: external EEPROM offset, 00 00.
02: value to write at offset, 00.
03: value to write at next address, 8C.
XX: further value to write at next consecutive address.
PAYLOAD offset:
00: response state (00: ok, FF: error).
01-02: external EEPROM offset.
03: value confirmation at the given offset, 00.
04: value confirmation at next address, 00.
XX: value confirmation at next consecutive address.
19
Chrysler CCD/SCI Scanner V1.4X UART Protocol
20
Chrysler CCD/SCI Scanner V1.4X UART Protocol
21
Chrysler CCD/SCI Scanner V1.4X UART Protocol
4. Revision history
2020.09.01: original.
2020.09.09:
- add: LCD I2C address to status response (Table 10),
- add: LCD I2C address to LCD settings (Table 19 and 20).
22