Summary
RS-232C control reference for the Samsung SDP Series visual presenter / document camera line. Every command is a 6-byte frame: 0xB0 (start) + 4-byte command code + 0xBF (stop), sent at 9600 8N1. The device echoes each command back; the 2nd received byte (ACK data) must equal 0x80 to indicate the system is idle and ready for the next command.
Transport
protocols:
- serial
serial:
baud_rate: 9600
data_bits: 8
parity: none
stop_bits: 1
flow_control: none # UNRESOLVED: flow control not stated in source
auth:
type: none # inferred: no auth procedure in source
Traits
- powerable # inferred: Power ON / Power OFF commands present
- queryable # inferred: Status query commands present
- levelable # inferred: Iris / Red / Blue / Zoom / Focus level commands present
Actions
# Frame format for every action below:
# TX: 0xB0 <4-byte command code> 0xBF (6 bytes total)
# RX: 0xB0 <4-byte echo> 0xBF (2nd RX byte = ACK data; 0x80 = idle/ready)
#
# Where the source lists a parameter (Number / data / MSB / LSB), the variable
# is shown as a {param} placeholder inside the 4-byte command code and the
# range is taken from the source "Remark" column.
- id: awc
label: Auto White Balance
kind: action
command: "B0 01 00 05 00 BF"
params: []
- id: af
label: Auto Focus
kind: action
command: "B0 02 00 05 00 BF"
params: []
- id: upper_lamp
label: Upper Lamp On
kind: action
# UNRESOLVED: 1st byte of command code not legible in source OCR; bytes 2-4 are 0x00 0x05 0x00
command: "B0 {byte1} 00 05 00 BF"
params:
- name: byte1
type: hex
description: First byte of command code; not legible in source (grouped with lamp commands)
- id: lower_lamp
label: Lower Lamp On
kind: action
command: "B0 03 00 08 00 BF"
params: []
- id: lamp_off
label: Lamp Off
kind: action
# UNRESOLVED: 1st byte of command code not legible in source OCR; bytes 2-4 are 0x00 0x0A 0x00
command: "B0 {byte1} 00 0A 00 BF"
params:
- name: byte1
type: hex
description: First byte of command code; not legible in source (grouped with lamp commands)
- id: input_internal
label: Input Select - Internal
kind: action
command: "B0 {byte1} 00 05 00 BF"
params:
- name: byte1
type: hex
description: First byte of command code; not legible in source (grouped with input-select commands)
- id: input_external_1
label: Input Select - External 1
kind: action
command: "B0 04 00 08 00 BF"
params: []
- id: input_external_2
label: Input Select - External 2
kind: action
command: "B0 {byte1} 00 0A 00 BF"
params:
- name: byte1
type: hex
description: First byte of command code; not legible in source (grouped with input-select commands)
- id: polarity_positive
label: Polarity - Positive
kind: action
command: "B0 {byte1} 00 05 00 BF"
params:
- name: byte1
type: hex
description: First byte of command code; not legible in source (grouped with polarity commands)
- id: polarity_negative
label: Polarity - Negative
kind: action
command: "B0 {byte1} 00 0A 00 BF"
params:
- name: byte1
type: hex
description: First byte of command code; not legible in source (grouped with polarity commands)
- id: video_format_ntsc
label: Video Format - NTSC
kind: action
command: "B0 08 00 05 00 BF"
params: []
- id: video_format_pal
label: Video Format - PAL
kind: action
command: "B0 08 00 0A 00 BF"
params: []
- id: aperture_on
label: Aperture On
kind: action
command: "B0 09 00 05 00 BF"
params: []
- id: aperture_off
label: Aperture Off
kind: action
command: "B0 09 00 0A 00 BF"
params: []
- id: power_on
label: Power On
kind: action
command: "B0 0F 00 05 00 BF"
params: []
- id: power_off
label: Power Off
kind: action
command: "B0 0F 00 0A 00 BF"
params: []
- id: rotate_off
label: Image Rotate Off
kind: action
command: "B0 11 00 05 00 BF"
params: []
- id: rotate_90
label: Image Rotate 90°
kind: action
command: "B0 11 00 08 00 BF"
params: []
- id: rotate_180
label: Image Rotate 180°
kind: action
command: "B0 11 00 0A 00 BF"
params: []
- id: rotate_360
label: Image Rotate 360°
kind: action
command: "B0 11 00 0D 00 BF"
params: []
- id: freeze_on
label: Image Freeze On
kind: action
command: "B0 12 00 05 00 BF"
params: []
- id: freeze_off
label: Image Freeze Off
kind: action
command: "B0 12 00 0A 00 BF"
params: []
- id: image_save
label: Image Save
kind: action
command: "B0 13 00 {number} 00 BF"
params:
- name: number
type: integer
description: Slot number (1-8)
- id: image_recall
label: Image Recall
kind: action
command: "B0 14 00 {number} 00 BF"
params:
- name: number
type: integer
description: Slot number (1-8)
- id: image_divide
label: Image Divide
kind: action
command: "B0 15 00 {number} 00 BF"
params:
- name: number
type: integer
description: Divide number (1-9). Note: number 9 = 3x3 multi-screen mode.
- id: image_shift
label: Image Shift
kind: action
command: "B0 16 00 05 00 BF"
params: []
- id: preset_save
label: Preset Save
kind: action
command: "B0 17 00 {number} 00 BF"
params:
- name: number
type: integer
description: Preset slot number
- id: preset_exe
label: Preset Execute
kind: action
command: "B0 18 00 {number} 00 BF"
params:
- name: number
type: integer
description: Preset slot number (1-4)
- id: multi_screen_3x3
label: 3x3 Multi-screen (Recall / Divide / Cancel)
kind: action
command: "B0 1F 00 05 00 BF"
params: []
- id: iris_up
label: Iris Up
kind: action
command: "B0 21 00 05 00 BF"
params: []
- id: iris_down
label: Iris Down
kind: action
command: "B0 21 00 0A 00 BF"
params: []
- id: red_up
label: Red Gain Up
kind: action
command: "B0 23 00 05 00 BF"
params: []
- id: red_down
label: Red Gain Down
kind: action
command: "B0 23 00 0A 00 BF"
params: []
- id: blue_up
label: Blue Gain Up
kind: action
command: "B0 24 00 05 00 BF"
params: []
- id: blue_down
label: Blue Gain Down
kind: action
command: "B0 24 00 0A 00 BF"
params: []
- id: focus_far
label: Focus Far
kind: action
command: "B0 25 00 05 00 BF"
params: []
- id: focus_near
label: Focus Near
kind: action
command: "B0 25 00 0A 00 BF"
params: []
- id: zoom_tele
label: Zoom Tele
kind: action
command: "B0 26 00 05 00 BF"
params: []
- id: zoom_wide
label: Zoom Wide
kind: action
command: "B0 26 00 0A 00 BF"
params: []
- id: iris_target
label: Iris Set Target
kind: action
command: "B0 41 00 00 {data} BF"
params:
- name: data
type: integer
description: Iris target value (1-120)
- id: red_target
label: Red Gain Set Target
kind: action
command: "B0 43 00 00 {data} BF"
params:
- name: data
type: integer
description: Red gain target value (1-200)
- id: blue_target
label: Blue Gain Set Target
kind: action
command: "B0 44 00 00 {data} BF"
params:
- name: data
type: integer
description: Blue gain target value (1-200)
- id: focus_target
label: Focus Set Target
kind: action
command: "B0 45 00 {msb} {lsb} BF"
params:
- name: msb
type: hex
description: Focus MSB byte
- name: lsb
type: hex
description: Focus LSB byte
# Combined value range 0-2225
- id: zoom_target
label: Zoom Set Target
kind: action
command: "B0 46 00 {msb} {lsb} BF"
params:
- name: msb
type: hex
description: Zoom MSB byte
- name: lsb
type: hex
description: Zoom LSB byte
# Combined value range 0-1812
- id: focus_zoom_concurrent_target
label: Focus + Zoom Concurrent Set Target
kind: action
# Source shows two 6-byte forms (one with focus MSB/LSB, one with zoom MSB/LSB),
# differing in the 3rd byte (0x05 = zoom-target variant, 0x0A = focus-target variant).
command: "B0 47 {zoom_or_focus_marker} {msb} {lsb} BF"
params:
- name: zoom_or_focus_marker
type: hex
description: 0x05 for zoom-MSB/LSB payload, 0x0A for focus-MSB/LSB payload
- name: msb
type: hex
description: MSB byte (zoom 0-1812 or focus 0-2225)
- name: lsb
type: hex
description: LSB byte
- id: drive_stop
label: Drive Stop
kind: action
# UNRESOLVED: source shows 0x2F in TX column and 0x2D in RX column; treated as the same op-code with receive echo.
command: "B0 2F 00 05 00 BF"
params: []
- id: set_status_normal
label: Set Status (Normal) Query
kind: query
command: "B0 61 00 00 00 BF"
params: []
- id: set_status_digital
label: Set Status (Digital) Query
kind: query
command: "B0 62 00 00 00 BF"
params: []
- id: message_status
label: Message Status Query
kind: query
command: "B0 64 00 00 00 BF"
params: []
- id: iris_status
label: Iris Status Query
kind: query
command: "B0 65 00 00 00 BF"
params: []
- id: red_status
label: Red Gain Status Query
kind: query
command: "B0 67 00 00 00 BF"
params: []
- id: blue_status
label: Blue Gain Status Query
kind: query
command: "B0 68 00 00 00 BF"
params: []
- id: zoom_status
label: Zoom Status Query
kind: query
command: "B0 69 00 00 00 BF"
params: []
- id: focus_status
label: Focus Status Query
kind: query
command: "B0 6A 00 00 00 BF"
params: []
- id: focus_status_max
label: Focus Status (Max at current zoom) Query
kind: query
command: "B0 6B 00 05 00 BF"
params: []
- id: focus_status_min
label: Focus Status (Min at current zoom) Query
kind: query
command: "B0 6B 00 0A 00 BF"
params: []
Feedbacks
- id: ack_data
type: enum
description: 2nd received byte of every echo. 0x80 = system idle/ready; any other value means the system is busy with another operation.
values:
- "0x80"
- "non-0x80 (busy)"
- id: iris_value
type: integer
description: Returned by Iris-Status query. Range 1-120.
- id: red_value
type: integer
description: Returned by Red-Status query. Range 1-200.
- id: blue_value
type: integer
description: Returned by Blue-Status query. Range 1-200.
- id: zoom_value
type: integer
description: Returned by Zoom-Status query. Range 0-1904.
- id: focus_value
type: integer
description: Returned by Focus-Status query. Range 0-2225.
- id: focus_value_at_max_zoom
type: integer
description: Returned by Focus-Status(Max) query. Range 648-2225.
- id: focus_value_at_min_zoom
type: integer
description: Returned by Focus-Status(Min) query. Range 0-1383.
- id: set_status_normal_word
type: integer
description: 16-bit status word returned by Set-Status(Normal). Encodes lamp state, input source, polarity, video format, power, aperture, and model variant (DX vs ST).
- id: set_status_digital_word
type: integer
description: 16-bit status word returned by Set-Status(Digital). Encodes divide position, divide/recall slot, divide ON/OFF, 3x3 multi-screen ON/OFF, image rotate state, image freeze ON/OFF, image recall ON/OFF.
- id: message_status_word
type: integer
description: 16-bit status word returned by Message-Status. Encodes which input source (panel / remocon / RS232C / USB / MOUSE) issued the current command, and which long-running command is in progress (AF / Preset-Exe / Image-Save / Image-Rotate).
Variables
# Settable level parameters that take a numeric target value (not discrete action IDs).
- id: iris_level
type: integer
range: [1, 120]
action_ref: iris_target
- id: red_level
type: integer
range: [1, 200]
action_ref: red_target
- id: blue_level
type: integer
range: [1, 200]
action_ref: blue_target
- id: focus_level
type: integer
range: [0, 2225]
description: Effective range depends on current zoom position (see Focus-Status Max/Min).
action_ref: focus_target
- id: zoom_level
type: integer
range: [0, 1812]
action_ref: zoom_target
Events
# UNRESOLVED: source does not document any unsolicited notifications from the device
Macros
# UNRESOLVED: source does not document any multi-step control sequences
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no safety warnings, interlock procedures, or power-on sequencing requirements
Notes
- Frame: every command is 6 bytes —
0xB0start + 4-byte command code +0xBFstop. Every receive is also 6 bytes with the same envelope; the 2nd received byte is theACK dataand must be0x80before the next command is sent. - Application flow: when starting a multi-command session, send
Message-Status(0xB0 0x64 0x00 0x00 0x00 0xBF) and confirm the echoedACK datais0x80before issuing the next command. - Continuous-motion commands (Iris Up/Down, Red Up/Down, Blue Up/Down, Focus Far/Near, Zoom Tele/Wide) run to the end of travel once started; use
Drive Stopto halt at an intermediate point. - Image Divide with number
9triggers 3x3 multi-screen mode. Set-Status(Digital)reports divide position (shift1/shift2/shift3), divide/recall slot number (1-8), divide ON/OFF, 3x3 multi-screen ON/OFF, image rotate state (off/90/180/270), image freeze ON/OFF, and image recall ON/OFF.Set-Status(Normal)reports lamp state (all off / upper on / lower on), input source (internal / NO SYNC EXT1 / NO SYNC EXT2 / external 1 / external 2), polarity (positive / negative), video format (NTSC / PAL), system power (off / on), aperture (on / off), and model variant (DX / ST).Message-Statusreports which input source issued the current command (panel / remocon / RS232C / USB / MOUSE) and which long-running command class is in progress (AF, Preset-Exe, Image-Save, Image-Rotate).ACK databit definition: bit pattern indicates active source (panel / remocon / RS232C / USB / MOUSE) plus an acknowledgement flag.
Provenance
source_domains:
- res.cloudinary.com
- gist.github.com
- manualslib.com
- github.com
source_urls:
- "https://res.cloudinary.com/iwh/image/upload/q_auto,g_center/assets/1/26/Documents/samsung/sdp-900dxa_rs232.pdf"
- https://gist.github.com/paltaio-admin/0c6ca6c2a5210684fb6a81cbc913feeb
- https://www.manualslib.com/manual/376555/Samsung-Sdp-950sta.html
- https://github.com/vgavro/samsung-mdc
retrieved_at: 2026-05-14T19:41:00.200Z
last_checked_at: 2026-06-02T06:13:08.641Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T06:13:08.641Z
matched_actions: 56
action_count: 56
confidence: medium
summary: "All 56 spec actions matched verbatim to source command codes; transport parameters confirmed. (11 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "vendor PDF OCR is partially garbled; several first-byte opcodes are inferred from grouping context. The literal hex bytes shown are taken verbatim from the source."
- "flow control not stated in source"
- "1st byte of command code not legible in source OCR; bytes 2-4 are 0x00 0x05 0x00"
- "1st byte of command code not legible in source OCR; bytes 2-4 are 0x00 0x0A 0x00"
- "source shows 0x2F in TX column and 0x2D in RX column; treated as the same op-code with receive echo."
- "source does not document any unsolicited notifications from the device"
- "source does not document any multi-step control sequences"
- "source contains no safety warnings, interlock procedures, or power-on sequencing requirements"
- "vendor PDF OCR is partially garbled — first byte of Upper Lamp, Lamp Off, Input Internal, Input External 2, Polarity Positive, and Polarity Negative command codes is not legible. Listed op-codes for those actions are placeholders and need to be re-verified against a clean copy of the manual."
- "firmware version compatibility across SDP900DXA / SDP950DXA / SDP950DXA/STA / SDP990DXA is not stated in source."
- "cable pinout is described in the source (2-2, 3-3, 5-5) but the formal signal mapping (TX/RX/RTS/CTS) is not transcribed cleanly; refer to the source PDF for the exact wiring."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0