Summary
RS-232 control spec for DELL C7017T 70-inch interactive touch monitor. Covers monitor management, power, image, color, video input, OSD, system, and audio subsystems. Transport: serial at 9600 baud, 8N1, no flow control. No authentication required.
Transport
protocols:
- serial
serial:
baud_rate: 9600
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
auth:
type: none # inferred: no auth procedure in source
Traits
- powerable # inferred from SetPowerState command
- queryable # inferred from Get* commands
- routable # inferred from SetVideoInput command
- levelable # inferred from SetVolumeLevel command
Actions
- id: get_monitor_name
label: Get Monitor Name
kind: query
command: "6E 51 82 EB 01 57"
- id: get_monitor_serial_number
label: Get Monitor Serial Number
kind: query
command: "6E 51 82 EB 02 54"
- id: get_backlight_hours
label: Get Backlight Hours
kind: query
command: "6E 51 82 EB 04 52"
- id: get_power_state
label: Get Power State
kind: query
command: "6E 51 82 EB 20 76"
feedback_id: power_state
- id: set_power_state_on
label: Set Power State On
kind: action
command: "6E 51 83 EA 20 01 77"
- id: set_power_state_off
label: Set Power State Off
kind: action
command: "6E 51 83 EA 20 00 76"
- id: set_power_state_standby
label: Set Power State Standby
kind: action
command: "6E 51 83 EA 20 02 74"
- id: get_power_led
label: Get Power LED
kind: query
command: "6E 51 82 EB 21 77"
feedback_id: power_led
- id: set_power_led_off
label: Set Power LED Off
kind: action
command: "6E 51 83 EA 21 00 77"
- id: set_power_led_on
label: Set Power LED On
kind: action
command: "6E 51 83 EA 21 01 76"
- id: get_power_usb
label: Get Power USB
kind: query
command: "6E 51 82 EB 22 74"
feedback_id: power_usb
- id: set_power_usb_off
label: Set Power USB Off
kind: action
command: "6E 51 83 EA 22 00 74"
- id: set_power_usb_on
label: Set Power USB On
kind: action
command: "6E 51 83 EA 22 01 75"
- id: reset_power
label: Reset Power
kind: action
command: "6E 51 82 EA 2F 78"
- id: get_brightness
label: Get Brightness
kind: query
command: "6E 51 82 EB 30 66"
feedback_id: brightness_level
- id: set_brightness
label: Set Brightness
kind: action
command: "6E 51 83 EA 30 {data0} {chk}"
params:
- name: data0
type: integer
description: Brightness value (byte). Chk = XOR of preceding bytes per protocol.
- id: get_contrast
label: Get Contrast
kind: query
command: "6E 51 82 EB 31 67"
feedback_id: contrast_level
- id: set_contrast
label: Set Contrast
kind: action
command: "6E 51 83 EA 31 {data0} {chk}"
params:
- name: data0
type: integer
description: Contrast value (byte). Chk = XOR of preceding bytes.
- id: get_sharpness
label: Get Sharpness
kind: query
command: "6E 51 82 EB 34 62"
feedback_id: sharpness_level
- id: set_sharpness
label: Set Sharpness
kind: action
command: "6E 51 83 EA 34 {data0} {chk}"
params:
- name: data0
type: integer
description: Sharpness value (byte). Chk = XOR of preceding bytes.
- id: get_aspect_ratio
label: Get Aspect Ratio
kind: query
command: "6E 51 82 EB 33 65"
feedback_id: aspect_ratio
- id: set_aspect_ratio_4_3
label: Set Aspect Ratio 4:3
kind: action
command: "6E 51 83 EA 33 02 67"
- id: set_aspect_ratio_16_9
label: Set Aspect Ratio 16:9
kind: action
command: "6E 51 83 EA 33 00 65"
- id: set_aspect_ratio_5_4
label: Set Aspect Ratio 5:4
kind: action
command: "6E 51 83 EA 33 04 61"
- id: get_response_time
label: Get Response Time
kind: query
command: "6E 51 82 EB 35 63"
feedback_id: response_time
- id: set_response_time_normal
label: Set Response Time Normal
kind: action
command: "6E 51 83 EA 35 00 63"
- id: set_response_time_fast
label: Set Response Time Fast
kind: action
command: "6E 51 83 EA 35 01 62"
- id: get_input_color_format
label: Get Input Color Format
kind: query
command: "6E 51 82 EB 46 10"
feedback_id: input_color_format
- id: set_input_color_format
label: Set Input Color Format
kind: action
command: "6E 51 83 EA 46 {data0} {chk}"
params:
- name: data0
type: integer
description: Color format byte (00=RGB, 01=YPbPr per source examples). Chk = XOR.
- id: get_color_preset_caps
label: Get Color Preset Capabilities
kind: query
command: "6E 51 82 EB 47 11"
- id: get_color_preset
label: Get Color Preset
kind: query
command: "6E 51 82 EB 48 1E"
feedback_id: color_preset
- id: set_color_preset_standard
label: Set Color Preset Standard
kind: action
command: "6E 51 86 EA 48 00 00 00 01 1A"
- id: set_color_preset_warm
label: Set Color Preset Warm
kind: action
command: "6E 51 86 EA 48 00 00 04 00 1F"
- id: set_color_preset_custom
label: Set Color Preset Custom
kind: action
command: "6E 51 86 EA 48 00 00 00 80 9B"
- id: get_custom_color
label: Get Custom Color
kind: query
command: "6E 51 82 EB 49 1F"
- id: set_custom_color
label: Set Custom Color
kind: action
command: "6E 51 86 EA 49 00 00 80 00 9A"
notes: Example payload from source. Full data range per GetCustomColor reply (R,G,B,_,_,_).
- id: reset_color
label: Reset Color
kind: action
command: "6E 51 82 EA 4F 18"
- id: set_auto_select_on
label: Set Auto Select On
kind: action
command: "6E 51 83 EA 60 1 37"
- id: set_auto_select_off
label: Set Auto Select Off
kind: action
command: "6E 51 83 EA 60 0 36"
- id: get_auto_select
label: Get Auto Select
kind: query
command: "6E 51 82 EB 60 36"
feedback_id: auto_select
- id: get_video_input_caps
label: Get Video Input Capabilities
kind: query
command: "6E 51 82 EB 61 37"
- id: get_video_input
label: Get Video Input
kind: query
command: "6E 51 82 EB 62 34"
feedback_id: video_input
- id: set_video_input_vga
label: Set Video Input VGA
kind: action
command: "6E 51 86 EA 62 00 00 00 40 71"
- id: set_video_input_hdmi1
label: Set Video Input HDMI1
kind: action
command: "6E 51 86 EA 62 00 00 00 01 30"
- id: set_video_input_hdmi2
label: Set Video Input HDMI2
kind: action
command: "6E 51 86 EA 62 00 00 00 02 33"
- id: set_video_input_hdmi3
label: Set Video Input HDMI3
kind: action
command: "6E 51 86 EA 62 00 00 00 04 35"
- id: set_video_input_dp
label: Set Video Input DisplayPort
kind: action
command: "6E 51 86 EA 62 00 00 00 08 39"
- id: set_osd_language
label: Set OSD Language
kind: action
command: "6E 51 83 EA 81 {data0} {chk}"
params:
- name: data0
type: integer
description: Language code (00=English, 01=Español, 02=Fran, 03=Desu, 04=Port, 05=Pycc, 06=Chinese, 07=Japan per source). Chk = XOR.
- id: get_osd_language
label: Get OSD Language
kind: query
command: "6E 51 82 EB 81 D7"
feedback_id: osd_language
- id: set_osd_timer
label: Set OSD Timer
kind: action
command: "6E 51 83 EA 83 {data0} {chk}"
params:
- name: data0
type: integer
description: OSD timer value (byte). Chk = XOR.
- id: get_osd_timer
label: Get OSD Timer
kind: query
command: "6E 51 82 EB 83 D5"
feedback_id: osd_timer
- id: set_osd_button_lock_unlock
label: Set OSD Button Lock Unlock
kind: action
command: "6E 51 83 EA 84 00 D2"
- id: set_osd_button_lock_lock
label: Set OSD Button Lock Lock
kind: action
command: "6E 51 83 EA 84 01 D3"
- id: get_osd_button_lock
label: Get OSD Button Lock
kind: query
command: "6E 51 82 EB 84 D2"
feedback_id: osd_button_lock
- id: reset_osd
label: Reset OSD
kind: action
command: "6E 51 82 EA 8F D8"
- id: get_version_firmware
label: Get Firmware Version
kind: query
command: "6E 51 82 EB A0 F6"
- id: get_lcd_conditioning
label: Get LCD Conditioning
kind: query
command: "6E 51 82 EB A4 F2"
feedback_id: lcd_conditioning
- id: set_lcd_conditioning_disable
label: Set LCD Conditioning Disable
kind: action
command: "6E 51 83 EA A4 00 F2"
- id: set_lcd_conditioning_enable
label: Set LCD Conditioning Enable
kind: action
command: "6E 51 83 EA A4 01 F3"
- id: factory_reset
label: Factory Reset
kind: action
command: "6E 51 82 EA AF F8"
- id: set_volume_level
label: Set Volume Level
kind: action
command: "6E 51 83 EA B0 64 82"
notes: Example at level 100 (0x64). Replace data byte for other levels. Chk = XOR.
- id: get_volume_level
label: Get Volume Level
kind: query
command: "6E 51 82 EB B0 E6"
feedback_id: volume_level
- id: set_speaker_mute
label: Set Speaker Mute
kind: action
command: "6E 51 83 EA B1 1 E6"
- id: set_speaker_unmute
label: Set Speaker Unmute
kind: action
command: "6E 51 83 EA B1 0 E7"
- id: get_speaker_mute
label: Get Speaker Mute
kind: query
command: "6E 51 82 EB B1 E7"
feedback_id: speaker_mute
- id: set_audio_source_hdmi_dp
label: Set Audio Source HDMI/DP
kind: action
command: "6E 51 83 EA B2 1 E5"
- id: set_audio_source_pc_audio
label: Set Audio Source PC Audio
kind: action
command: "6E 51 83 EA B2 2 E6"
- id: get_audio_source
label: Get Audio Source
kind: query
command: "6E 51 82 EB B2 E4"
feedback_id: audio_source
- id: audio_reset
label: Audio Reset
kind: action
command: "6E 51 82 EA BF E8"
Feedbacks
- id: power_state
type: enum
values: [on, off, saving]
source_command: get_power_state
source_examples:
on: "6F 6E 84 02 00 20 01 F7"
off: "6F 6E 84 02 00 20 00 F7"
saving: "6F 6E 84 02 00 20 02 F7"
notes: Reply byte at data position = 01 (ON), 00 (OFF), 02 (SAVING).
- id: power_led
type: enum
values: [on, off]
source_command: get_power_led
source_examples:
on: "6F 6E 84 02 00 21 01 F6"
off: "6F 6E 84 02 00 21 00 F6"
notes: Reply data byte = 01 (LED ON), 00 (LED OFF).
- id: power_usb
type: enum
values: [on, off]
source_command: get_power_usb
source_examples:
off: "6F 6E 84 02 00 22 00 F5"
on: "6F 6E 84 02 00 22 01 F5"
notes: Reply data byte = 00 (OFF), 01 (ON).
- id: brightness_level
type: integer
source_command: get_brightness
source_examples:
default: "6F 6E 84 02 00 30 4B E7"
notes: Reply data byte = brightness value (example 0x4B). Valid range not stated in source.
- id: contrast_level
type: integer
source_command: get_contrast
source_examples:
default: "6F 6E 84 02 00 31 4B E6"
notes: Reply data byte = contrast value (example 0x4B). Valid range not stated in source.
- id: sharpness_level
type: integer
source_command: get_sharpness
source_examples:
default: "6F 6E 84 02 00 34 32 E3"
notes: Reply data byte = sharpness value (example 0x32). Valid range not stated in source.
- id: aspect_ratio
type: enum
values: [wide_16_9, 4_3, 5_4]
source_command: get_aspect_ratio
source_examples:
wide_16_9: "6F 6E 84 02 00 33 00 E4"
4_3: "6F 6E 84 02 00 33 02 E4"
5_4: "6F 6E 84 02 00 33 04 E4"
notes: Reply data byte = 00 (WIDE 16:9), 02 (4:3), 04 (5:4).
- id: response_time
type: enum
values: [normal, fast]
source_command: get_response_time
source_examples:
normal: "6F 6E 84 02 00 35 00 E2"
fast: "6F 6E 84 02 00 35 01 E2"
notes: Reply data byte = 00 (NORMAL), 01 (FAST).
- id: input_color_format
type: enum
values: [rgb, ypbpr]
source_command: get_input_color_format
source_examples:
rgb: "6F 6E 84 02 00 46 00 91"
ypbpr: "6F 6E 84 02 00 46 01 91"
notes: Reply data byte = 00 (RGB), 01 (YPbPr).
- id: color_preset
type: enum
values: [custom, standard, warm]
source_command: get_color_preset
source_examples:
custom: "6F 6E 87 02 00 48 00 00 00 80 9C"
standard: "6F 6E 87 02 00 48 00 00 00 01 9C"
warm: "6F 6E 87 02 00 48 00 00 04 00 98"
notes: Reply = 4 data bytes. Examples: CUSTOMER COLOR, STANDARD, WARM.
- id: auto_select
type: enum
values: [on, off]
source_command: get_auto_select
source_examples:
on: "6F 6E 84 02 00 60 01 B7"
off: "6F 6E 84 02 00 60 00 B7"
notes: Reply data byte = 01 (ON), 00 (OFF).
- id: video_input
type: enum
values: [vga, hdmi1, hdmi2, hdmi3, dp]
source_command: get_video_input
source_examples:
vga: "6F 6E 87 02 00 62 00 00 00 40 B6"
hdmi1: "6F 6E 87 02 00 62 00 00 00 01 B6"
hdmi2: "6F 6E 87 02 00 62 00 00 00 02 B6"
hdmi3: "6F 6E 87 02 00 62 00 00 00 04 B6"
dp: "6F 6E 87 02 00 62 00 00 00 08 B6"
notes: Reply = 4 data bytes; last byte bitmask = 0x40 VGA, 0x01 HDMI1, 0x02 HDMI2, 0x04 HDMI3, 0x08 DP.
- id: osd_language
type: enum
values: [english, japan, espanol, fran, desu, port, pycc, chinese]
source_command: get_osd_language
source_examples:
english: "6F 6E 84 02 00 81 00 56"
japan: "6F 6E 84 02 00 81 07 56"
espanol: "6F 6E 84 02 00 81 01 56"
fran: "6F 6E 84 02 00 81 02 56"
desu: "6F 6E 84 02 00 81 03 56"
port: "6F 6E 84 02 00 81 04 56"
pycc: "6F 6E 84 02 00 81 05 56"
chinese: "6F 6E 84 02 00 81 06 56"
notes: Reply data byte = language code. Label spellings verbatim from source.
- id: osd_timer
type: integer
source_command: get_osd_timer
source_examples:
default: "6F 6E 84 02 00 83 07 54"
notes: Reply data byte = OSD timer value (example 0x07). Valid range not stated in source.
- id: osd_button_lock
type: enum
values: [unlock, lock]
source_command: get_osd_button_lock
source_examples:
unlock: "6F 6E 84 02 00 84 00 53"
lock: "6F 6E 84 02 00 84 01 53"
notes: Reply data byte = 00 (UNLOCK), 01 (LOCK).
- id: lcd_conditioning
type: enum
values: [disable, enable]
source_command: get_lcd_conditioning
source_examples:
disable: "6F 6E 84 02 00 A4 00 73"
enable: "6F 6E 84 02 00 A4 01 73"
notes: Reply data byte = 00 (DISABLE), 01 (ENABLE).
- id: volume_level
type: integer
source_command: get_volume_level
source_examples:
default: "6F 6E 84 02 00 B0 32 67"
notes: Reply data byte = volume level (example 0x32 = 50). Valid range not stated in source.
- id: speaker_mute
type: enum
values: [unmute, mute]
source_command: get_speaker_mute
source_examples:
unmute: "6F 6E 84 02 00 B1 00 66"
mute: "6F 6E 84 02 00 B1 01 66"
notes: Reply data byte = 00 (UNMUTE), 01 (MUTE).
- id: audio_source
type: enum
values: [hdmi_dp, pc_audio]
source_command: get_audio_source
source_examples:
hdmi_dp: "6F 6E 84 02 00 B2 01 65"
pc_audio: "6F 6E 84 02 00 B2 02 65"
notes: Reply data byte = 01 (HDMI/DP), 02 (PC AUDIO).
Variables
# UNRESOLVED: source documents parameters inline (data bytes) but does not enumerate
# their valid ranges. Brightness/contrast/sharpness ranges not stated.
Events
# UNRESOLVED: source does not document unsolicited notifications from monitor.
Macros
# UNRESOLVED: source does not document multi-step sequences.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no safety warnings, interlock procedures, or power-on sequencing requirements.
Notes
- Cable note: source states "The RS232 (pin2-3 swap) cable is not provided by Dell". Pinout uses TXD on pin 2, RXD on pin 3 (DTE facing).
- Checksum: write commands use [Chk] = XOR of [H0]…[DataN]. Replies use [Chk] = 0X50 xor [H2] xor … xor [Data[Len-5]] (additional 0X50 term not present in write formula).
- Len byte: 0x80 + N where N = number of bytes from [R/W] (write) or [Reply] (read) through last data byte.
- Reply header: 6F 6E. Write header: 6E 51.
- RC codes: 00=Success, 01=Timeout, 02=Parameters Error, 03=Not connected, 04=Other Failure.
- SetAspect Ratio example reply shown as "6F 6E 83 02 00 33 D0" (RC=00, Cmd=33, Chk=D0) — verify checksum implementation per formula.
- PIP/PBP MANAGEMENT section header present in source but contains no command rows.
- Save Audio Source reply RC example: source shows "6F 6E 84 02 00 82 01 65" (HDMI/DP) and "6F 6E 84 02 00 82 02 65" (PC AUDIO) — wait, that reply has Cmd byte 82 not B2, but the row is for GetAudioSource which is EB B2. The "82" in the reply Cmd position looks like a source transcription artifact (0x82 = 0xB2 with high bit clear). Treat as a typo in the vendor doc; canonical reply Cmd for GetAudioSource is 0xB2.
Upgrade pass done. Existing 51 actions preserved verbatim. Added:
- 18 Feedbacks (was 1) — every documented query reply now has feedback entry w/ verbatim reply examples from source
- `feedback_id` linkages on 18 query actions pointing to new feedbacks
Nothing else missing. Transport complete, all command rows covered, PIP/PBP empty in source (already noted).
## Provenance
```yaml
source_domains:
- dl.dell.com
- manualowl.com
- manualmachine.com
source_urls:
- "https://dl.dell.com/manuals/all-products/esuprt_display_projector/esuprt_Display/dell-c7017t-monitor_Reference%20Guide2_en-us.pdf"
- "https://www.manualowl.com/m/Dell/C7017T/Manual/590034?page=1"
- https://www.manualowl.com/m/Dell/C7017T/Manual/590034
- "https://dl.dell.com/manuals/all-products/esuprt_electronics/esuprt_display_projector/esuprt_display/dell-c7017t-monitor_Reference%20Guide2_en-us.pdf"
- https://manualmachine.com/dell/c7017t/10699999-user-manual/
retrieved_at: 2026-07-21T23:10:59.115Z
last_checked_at: 2026-07-22T00:02:39.639Z
```
## Verification Summary
```yaml
verdict: verified
checked_at: 2026-07-22T00:02:39.639Z
matched_actions: 69
action_count: 69
confidence: medium
summary: "All 69 spec actions match commands in the refined source document with identical hex opcodes. Transport parameters verified. Complete bidirectional coverage. (6 unresolved item(s) noted in Known Gaps.)"
```
## Known Gaps
```yaml
- "PIP/PBP section is documented as comment headers in source but contains no actual command rows"
- "source documents parameters inline (data bytes) but does not enumerate"
- "source does not document unsolicited notifications from monitor."
- "source does not document multi-step sequences."
- "source contains no safety warnings, interlock procedures, or power-on sequencing requirements."
- "firmware version compatibility not stated in source; brightness/contrast/sharpness valid byte ranges not documented; OSD timer valid byte range not documented."
```
---
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0