Summary

Samsung SNOW1810U LFD/TV controlled via Samsung Multiple Display Control (MDC) protocol. Supports RS-232 and TCP/IP (RJ45) transports with the same binary command format. Document covers the full common protocol command catalogue (0x00–0xFF).

Transport

protocols:
  - serial
  - tcp
serial:
  baud_rate: 9600
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none
addressing:
  port: 1515
auth:
  type: none  # inferred: no auth procedure in source

Traits

# - powerable       (power on/off commands present - 0x11)
# - queryable       (query commands returning state present throughout)
# - routable        (input source select present - 0x14)
# - levelable       (volume 0x12, brightness/contrast 0x24/0x25 etc.)
traits:
  - powerable
  - queryable
  - routable
  - levelable

Actions

# Common protocol frame: [Header 0xAA] [Command] [ID] [Data Length] [Data...] [Checksum]
# Checksum = sum of bytes from Command through last Data byte, modulo 256, lower 2 hex digits.
# ID 0xFE broadcasts to all displays (no ACK). ID 0x00 addresses a single display.
# Ack frame: 0xAA 0xFF [ID] [Data Length] 'A' [r-CMD] [Val 1..N] [Checksum]
# Nak frame: 0xAA 0xFF [ID] [Data Length] 'N' [r-CMD] [ERR] [Checksum]

- id: status_control_get
  label: Get Status
  kind: query
  command: "AA 00 {ID} 00 {sum}"
  params:
    - name: ID
      type: integer
      description: Display ID (0x00-0xFE; 0xFE = broadcast)

- id: video_status_get
  label: Get Video Status
  kind: query
  command: "AA 04 {ID} 00 {sum}"

- id: rgb_status_get
  label: Get RGB Status
  kind: query
  command: "AA 06 {ID} 00 {sum}"

- id: pip_status_get
  label: Get PIP Status
  kind: query
  command: "AA 07 {ID} 00 {sum}"

- id: maintenance_status_get
  label: Get Maintenance Status
  kind: query
  command: "AA 08 {ID} 00 {sum}"

- id: sound_status_get
  label: Get Audio Status
  kind: query
  command: "AA 09 {ID} 00 {sum}"

- id: serial_number_get
  label: Get Serial Number
  kind: query
  command: "AA 0B {ID} 00 {sum}"

- id: display_status_get
  label: Get Display Status
  kind: query
  command: "AA 0D {ID} 00 {sum}"

- id: sw_version_get
  label: Get Software Version
  kind: query
  command: "AA 0E {ID} 00 {sum}"

- id: auto_motion_plus_get
  label: Get Auto Motion Plus Status
  kind: query
  command: "AA 0F {ID} 00 {sum}"

- id: auto_motion_plus_set
  label: Set Auto Motion Plus
  kind: action
  command: "AA 0F {ID} 03 {Mode} {BlurReduction} {JudderReduction} {sum}"
  params:
    - name: Mode
      type: integer
      description: 0=Off, 1=Clear, 2=Standard, 3=Smooth, 4=Custom, 5=Demo
    - name: BlurReduction
      type: integer
      description: 0-10 (only when Mode=Custom)
    - name: JudderReduction
      type: integer
      description: 0-10 (only when Mode=Custom)

- id: model_number_get
  label: Get Model Number
  kind: query
  command: "AA 10 {ID} 00 {sum}"

- id: power_get
  label: Get Power Status
  kind: query
  command: "AA 11 {ID} 00 {sum}"

- id: power_set
  label: Set Power
  kind: action
  command: "AA 11 {ID} 01 {Power} {sum}"
  params:
    - name: Power
      type: integer
      description: 0=Off, 1=On, 2=Reboot

- id: volume_get
  label: Get Volume
  kind: query
  command: "AA 12 {ID} 00 {sum}"

- id: volume_set
  label: Set Volume
  kind: action
  command: "AA 12 {ID} 01 {Volume} {sum}"
  params:
    - name: Volume
      type: integer
      description: 0-100

- id: mute_get
  label: Get Mute Status
  kind: query
  command: "AA 13 {ID} 00 {sum}"

- id: mute_set
  label: Set Mute
  kind: action
  command: "AA 13 {ID} 01 {Mute} {sum}"
  params:
    - name: Mute
      type: integer
      description: 0=Off, 1=On

- id: input_source_get
  label: Get Input Source
  kind: query
  command: "AA 14 {ID} 00 {sum}"

- id: input_source_set
  label: Set Input Source
  kind: action
  command: "AA 14 {ID} 01 {Input} {sum}"
  params:
    - name: Input
      type: integer
      description: 0x04=S-Video, 0x08=Component, 0x0C=AV1, 0x0D=AV2, 0x0E=SCART1, 0x18=DVI, 0x14=PC, 0x1E=BNC, 0x1F=DVI_VIDEO, 0x20=Magicinfo, 0x21=HDMI1, 0x22=HDMI1_PC, 0x23=HDMI2, 0x24=HDMI2_PC, 0x25=DisplayPort1, 0x26=DisplayPort2, 0x27=DisplayPort3, 0x31=HDMI3, 0x32=HDMI3_PC, 0x33=HDMI4, 0x34=HDMI4_PC, 0x40=TV(DTV), 0x50=Plug In Module, 0x55=HDBaseT, 0x60=Media/MagicInfo S, 0x61=WiDi/Screen Mirroring, 0x62=Internal/USB, 0x63=URL Launcher, 0x64=IWB

- id: picture_size_get
  label: Get Picture Size
  kind: query
  command: "AA 15 {ID} 00 {sum}"

- id: picture_size_set
  label: Set Picture Size
  kind: action
  command: "AA 15 {ID} 01 {Aspect} {sum}"
  params:
    - name: Aspect
      type: integer
      description: "PC Mode: 0x10=16:9, 0x18=4:3, 0x20=Original Ratio, 0x21=21:9. Video Mode: 0x00=Auto Wide, 0x01=16:9, 0x04=Zoom, 0x05=Zoom1, 0x06=Zoom2, 0x09=Just Scan, 0x0B=4:3, 0x0C=Wide Fit, 0x0D=Custom, 0x0E=Smart View 1, 0x0F=Smart View 2, 0x31=Wide Zoom, 0x32=21:9"

- id: direct_channel_set
  label: Set DTV Channel
  kind: action
  command: "AA 17 {ID} 08 {Country} {ATV_DTV} {AirCable} {CH_NUM_Hi} {CH_NUM_Lo} {Sel_Minor} {Minor_CH_Hi} {Minor_CH_Lo} {sum}"
  params:
    - name: Country
      type: integer
      description: "0=Korea, 1=USA, ..."
    - name: ATV_DTV
      type: integer
      description: "0=Analog, 1=Digital"
    - name: AirCable
      type: integer
      description: "0=general, 1=cabled"
    - name: CH_NUM
      type: integer
      description: "Analog 1-135, Digital 0-999"

- id: screen_mode_set
  label: Set Screen Mode
  kind: action
  command: "AA 18 {ID} 01 {ScrMode} {sum}"
  params:
    - name: ScrMode
      type: integer
      description: "0x01=16:9, 0x04=Zoom, 0x0B=4:3, 0x31=Wide Zoom"

- id: screen_size_get
  label: Get Screen Size
  kind: query
  command: "AA 19 {ID} 00 {sum}"

- id: mdc_connection_type_get
  label: Get MDC Connection Type
  kind: query
  command: "AA 1D {ID} 00 {sum}"
  notes: "Response: 0x00=RS232C, 0x01=RJ45"

- id: contrast_set
  label: Set Contrast
  kind: action
  command: "AA 24 {ID} 01 {Contrast} {sum}"
  params:
    - name: Contrast
      type: integer
      description: 0-100

- id: brightness_set
  label: Set Brightness
  kind: action
  command: "AA 25 {ID} 01 {Brightness} {sum}"
  params:
    - name: Brightness
      type: integer
      description: 0-100

- id: sharpness_set
  label: Set Sharpness
  kind: action
  command: "AA 26 {ID} 01 {Sharpness} {sum}"
  params:
    - name: Sharpness
      type: integer
      description: 0-100

- id: color_set
  label: Set Color
  kind: action
  command: "AA 27 {ID} 01 {Color} {sum}"
  params:
    - name: Color
      type: integer
      description: 0-100

- id: tint_set
  label: Set Tint
  kind: action
  command: "AA 28 {ID} 01 {Tint} {sum}"
  params:
    - name: Tint
      type: integer
      description: 0-100 in 50 steps (0,2,4,...100); 50=neutral, R=Tint, G=100-Tint

- id: coarse_set
  label: Set Coarse
  kind: action
  command: "AA 2F {ID} 01 {Coarse} {sum}"
  params:
    - name: Coarse
      type: integer
      description: "0=Decrease, 1=Increase"

- id: fine_set
  label: Set Fine
  kind: action
  command: "AA 30 {ID} 01 {Fine} {sum}"
  params:
    - name: Fine
      type: integer
      description: "0=Decrease (phase), 1=Increase"

- id: h_position_set
  label: Set H-Position
  kind: action
  command: "AA 31 {ID} 01 {H-Pos} {sum}"
  params:
    - name: H-Pos
      type: integer
      description: "0=Left, 1=Right"

- id: v_position_set
  label: Set V-Position
  kind: action
  command: "AA 32 {ID} 01 {V-Pos} {sum}"
  params:
    - name: V-Pos
      type: integer
      description: "0=Up, 1=Down"

- id: auto_power_set
  label: Set Auto Power
  kind: action
  command: "AA 33 {ID} 01 {AutoPower} {sum}"
  params:
    - name: AutoPower
      type: integer
      description: "0=Auto Power Off, 1=Auto Power On"

- id: clear_menu_set
  label: Clear Menu
  kind: action
  command: "AA 34 {ID} 01 00 {sum}"

- id: remote_control_set
  label: Set IR Remocon Enable
  kind: action
  command: "AA 36 {ID} 01 {RMC} {sum}"
  params:
    - name: RMC
      type: integer
      description: "0=Disable, 1=Enable"

- id: rgb_contrast_set
  label: Set RGB Contrast
  kind: action
  command: "AA 37 {ID} 01 {Contrast} {sum}"
  params:
    - name: Contrast
      type: integer
      description: 0-100

- id: rgb_brightness_set
  label: Set RGB Brightness
  kind: action
  command: "AA 38 {ID} 01 {Brightness} {sum}"
  params:
    - name: Brightness
      type: integer
      description: 0-100

- id: pip_on_off_set
  label: Set PIP On/Off
  kind: action
  command: "AA 3C {ID} 01 {PIP} {sum}"
  params:
    - name: PIP
      type: integer
      description: "0=Off, 1=On"

- id: auto_adjustment_set
  label: Auto Adjustment
  kind: action
  command: "AA 3D {ID} 01 00 {sum}"

- id: color_tone_set
  label: Set Color Tone
  kind: action
  command: "AA 3E {ID} 01 {ColorTone} {sum}"
  params:
    - name: ColorTone
      type: integer
      description: "0=Cool2, 1=Cool1, 2=Normal, 3=Warm1, 4=Warm2, 0x50=Off"

- id: color_temperature_set
  label: Set Color Temperature
  kind: action
  command: "AA 3F {ID} 01 {C_Temp} {sum}"
  params:
    - name: C_Temp
      type: integer
      description: "0x00-0x10=5000K-15000K (linear), 0xFD=2800K, 0xFE=3000K, 0xFF=4000K. Extended range: 28-160 in 5K steps"

- id: pip_source_set
  label: Set PIP Source
  kind: action
  command: "AA 40 {ID} 01 {P.Source} {sum}"
  params:
    - name: P.Source
      type: integer
      description: Input source code (see 0x14)

- id: pip_size_set
  label: Set PIP Size
  kind: action
  command: "AA 42 {ID} 01 {P.Size} {sum}"
  params:
    - name: P.Size
      type: integer
      description: "0x00=Off, 0x04=Double1, 0x05=Double2, 0x06=Medium, 0x07=Large, 0x08=Small, 0x09=Double3, 0x10=Custom"

- id: pip_locate_set
  label: Set PIP Locate
  kind: action
  command: "AA 43 {ID} 01 {P.Locate} {sum}"
  params:
    - name: P.Locate
      type: integer
      description: "0=Off, 1=Upper Left, 2=Upper Right, 3=Lower Right, 4=Lower Left"

- id: fan_speed_set
  label: Set Fan Speed
  kind: action
  command: "AA 44 {ID} 01 {FANSpeed} {sum}"
  params:
    - name: FANSpeed
      type: integer
      description: 0-100

- id: user_auto_color_set
  label: Set User Auto Color
  kind: action
  command: "AA 45 {ID} 01 {AutoColorCmd} {sum}"
  params:
    - name: AutoColorCmd
      type: integer
      description: "0=Reset, 1=Auto Color"

- id: sound_select_set_0x47
  label: Set Sound Select (PIP)
  kind: action
  command: "AA 47 {ID} 01 {S.Select} {sum}"
  params:
    - name: S.Select
      type: integer
      description: "0=Sub, 1=Main"

- id: auto_volume_set
  label: Set Auto Volume
  kind: action
  command: "AA 48 {ID} 01 {A_VOL} {sum}"
  params:
    - name: A_VOL
      type: integer
      description: "0=Off, 1=Normal(On), 2=Night"

- id: standby_set
  label: Set Standby
  kind: action
  command: "AA 4A {ID} 01 {StandbySetting} {sum}"
  params:
    - name: StandbySetting
      type: integer
      description: "0=Off, 1=On, 2=Auto"

- id: video_picture_position_size_set
  label: Set Video Picture Position & Size
  kind: action
  command: "AA 4B {ID} 02 {TypeCMD} {DirectionCMD} {sum}"
  params:
    - name: TypeCMD
      type: integer
      description: "0=Reset, 1=Position, 2=Size, 3=Reserved"
    - name: DirectionCMD
      type: integer
      description: "Position: 0=Down, 1=Up, 2=Left, 3=Right. Size: 0=VScaleDown, 1=VScaleUp, 2=HScaleDown, 3=HScaleUp"

- id: pixel_shift_set
  label: Set Pixel Shift
  kind: action
  command: "AA 4C {ID} 04 {Shift} {H.Dot} {V.Line} {S.Time} {sum}"
  params:
    - name: Shift
      type: integer
      description: "0=Off, 1=On"
    - name: H.Dot
      type: integer
      description: 0-4
    - name: V.Line
      type: integer
      description: 0-4
    - name: S.Time
      type: integer
      description: 1-4

- id: eq_100hz_set
  label: Set EQ 100Hz
  kind: action
  command: "AA 51 {ID} 01 {100Hz} {sum}"
  params:
    - name: 100Hz
      type: integer
      description: 0-20

- id: eq_300hz_set
  label: Set EQ 300Hz
  kind: action
  command: "AA 52 {ID} 01 {300Hz} {sum}"
  params:
    - name: 300Hz
      type: integer
      description: 0-20

- id: eq_1khz_set
  label: Set EQ 1kHz
  kind: action
  command: "AA 53 {ID} 01 {1kHz} {sum}"
  params:
    - name: 1kHz
      type: integer
      description: 0-20

- id: eq_3khz_set
  label: Set EQ 3kHz
  kind: action
  command: "AA 54 {ID} 01 {3kHz} {sum}"
  params:
    - name: 3kHz
      type: integer
      description: 0-20

- id: eq_10khz_set
  label: Set EQ 10kHz
  kind: action
  command: "AA 55 {ID} 01 {10kHz} {sum}"
  params:
    - name: 10kHz
      type: integer
      description: 0-20

- id: auto_lamp_set
  label: Set Auto Lamp Control
  kind: action
  command: "AA 57 {ID} 08 {LMax_H} {LMax_M} {LMax_AP} {LMaxValue} {LMin_H} {LMin_M} {LMin_AP} {LMinValue} {sum}"
  params:
    - name: LMax_H
      type: integer
      description: Hour 1-12
    - name: LMax_M
      type: integer
      description: Minute 0-59
    - name: LMax_AP
      type: integer
      description: "0=PM, 1=AM"
    - name: LMaxValue
      type: integer
      description: 0-100
    - name: LMin_H
      type: integer
      description: 1-12
    - name: LMin_M
      type: integer
      description: 0-59
    - name: LMin_AP
      type: integer
      description: "0=PM, 1=AM"
    - name: LMinValue
      type: integer
      description: "0-100 (0xFF=Off)"

- id: manual_lamp_set
  label: Set Manual Lamp Control
  kind: action
  command: "AA 58 {ID} 01 {LampValue} {sum}"
  params:
    - name: LampValue
      type: integer
      description: "0-100 (0xFF=Off)"

- id: safety_screen_run_set
  label: Run Safety Screen Immediately
  kind: action
  command: "AA 59 {ID} 01 {SafetyScreenType} {sum}"
  params:
    - name: SafetyScreenType
      type: integer
      description: "0=Off, 1=Signal Pattern, 2=All White, 3=Scroll, 4=Bar, 6=Eraser, 7=Pixel, 0x10=Rolling Bar, 0x11=Fading Screen"

- id: inverse_set
  label: Set Inverse
  kind: action
  command: "AA 5A {ID} 01 {Inverse} {sum}"
  params:
    - name: Inverse
      type: integer
      description: "0=Off, 1=On"

- id: safety_screen_set
  label: Set Safety Screen Timer
  kind: action
  command: "AA 5B {ID} {Len} {Type} {T.Period} {T.Time} {sum}"
  notes: "Data Length 3 for Repeat (Type/T.Period/T.Time), 7 for Interval (adds Start/End times). Type MSB=0=Repeat, MSB=1=Interval. T.Period 1-10 Hr, T.Time 0x01-0x05 (10-50 sec)."

- id: video_wall_mode_set
  label: Set Video Wall Mode
  kind: action
  command: "AA 5C {ID} 01 {WallMode} {sum}"
  params:
    - name: WallMode
      type: integer
      description: "0=Full, 1=Natural"

- id: safety_lock_set
  label: Set Safety Lock
  kind: action
  command: "AA 5D {ID} 01 {Lock} {sum}"
  params:
    - name: Lock
      type: integer
      description: "0=Off, 1=On"

- id: panel_key_lock_set
  label: Set Panel Key Lock
  kind: action
  command: "AA 5F {ID} 01 {ButtonLock} {sum}"
  params:
    - name: ButtonLock
      type: integer
      description: "0=Unlock, 1=Lock"

- id: channel_up_down_set
  label: Channel Up/Down
  kind: action
  command: "AA 61 {ID} 01 {ChannelUpDown} {sum}"
  params:
    - name: ChannelUpDown
      type: integer
      description: "0=Up, 1=Down"

- id: volume_up_down_set
  label: Volume Up/Down
  kind: action
  command: "AA 62 {ID} 01 {VolumeUpDown} {sum}"
  params:
    - name: VolumeUpDown
      type: integer
      description: "0=Up, 1=Down"

- id: ticker_set
  label: Set Ticker
  kind: action
  command: "AA 63 {ID} {Length} {OnOff} {StartH} {StartM} {StartAMPM} {EndH} {EndM} {EndAMPM} {PosH} {PosV} {Motion} {Direction} {Speed} {FontSize} {FGColor} {BGColor} {FGOpacity} {BGOpacity} {Message} {sum}"
  notes: "Variable length up to 128 bytes. Message encoded as Unicode hex."

- id: sound_select_set_0x65
  label: Set Sound Select (PIP, alt)
  kind: action
  command: "AA 65 {ID} 01 {S.Select} {sum}"
  params:
    - name: S.Select
      type: integer
      description: "0=Sub, 1=Main"

- id: pc_module_detect_get
  label: Get PC Module Detect
  kind: query
  command: "AA 66 {ID} 00 {sum}"
  notes: "Response: 0x00=Not Detected, 0x01=MagicInfo, 0x02=Plug In Module"

- id: device_name_get
  label: Get Device Name
  kind: query
  command: "AA 67 {ID} 00 {sum}"
  notes: "Max 15 chars"

- id: speaker_select_set
  label: Set Speaker Select
  kind: action
  command: "AA 68 {ID} 01 {S.Select} {sum}"
  params:
    - name: S.Select
      type: integer
      description: "0=Internal, 1=External"

- id: osd_set
  label: Set OSD On/Off
  kind: action
  command: "AA 70 {ID} 01 {OSD} {sum}"
  params:
    - name: OSD
      type: integer
      description: "0=OSD Off, 1=OSD On"

- id: picture_mode_set
  label: Set Picture Mode
  kind: action
  command: "AA 71 {ID} 01 {PMode} {sum}"
  params:
    - name: PMode
      type: integer
      description: "AV/S-Video/Component/HDCP: 0x00=Dynamic, 0x01=Standard, 0x02=Movie, 0x03=Custom, 0x04=Natural, 0x05=Calibration, 0x50=Off. PC/BNC/DVI/DP: 0x10=Entertain, 0x11=Internet, 0x12=Text, 0x13=Custom, 0x14=Advertisement, 0x15=Information, 0x16=Calibration, 0x50=Off. All: 0x20-0x27=Shop/Mall/Office/Terminal/Videowall variants"

- id: sound_mode_set
  label: Set Sound Mode
  kind: action
  command: "AA 72 {ID} 01 {SMode} {sum}"
  params:
    - name: SMode
      type: integer
      description: "0=Standard, 1=Music, 2=Movie, 3=Speech, 4=Custom, 5=Amplify"

- id: digital_nr_set
  label: Set Digital NR
  kind: action
  command: "AA 73 {ID} 01 {NRMode} {sum}"
  params:
    - name: NRMode
      type: integer
      description: "0=Off, 1=Low, 2=Medium, 3=High, 4=Auto, 5=Auto Visualization"

- id: pc_color_tone_set
  label: Set PC Color Tone
  kind: action
  command: "AA 75 {ID} 01 {ColorTone} {sum}"
  params:
    - name: ColorTone
      type: integer
      description: "0=Custom, 1=Cool, 2=Normal, 3=Warm, 0x50=Off"

- id: auto_auto_adjustment_set
  label: Set Auto Auto-Adjustment
  kind: action
  command: "AA 76 {ID} 01 {A.Adjustment} {sum}"
  notes: "Get returns NAK"

- id: all_keys_lock_set
  label: Set All Keys Lock
  kind: action
  command: "AA 77 {ID} 01 {AKL} {sum}"
  params:
    - name: AKL
      type: integer
      description: "0=Off, 1=On"

- id: srs_tsxt_set
  label: Set SRS TS XT
  kind: action
  command: "AA 78 {ID} 01 {SRS} {sum}"
  params:
    - name: SRS
      type: integer
      description: "0=Off, 1=On"

- id: film_mode_set
  label: Set Film Mode
  kind: action
  command: "AA 79 {ID} 01 {FMode} {sum}"
  params:
    - name: FMode
      type: integer
      description: "0=Off, 1=Auto1, 2=Auto2, 3=Cinema Smooth"

- id: panel_on_time_get
  label: Get Panel On Time
  kind: query
  command: "AA 83 {ID} 00 {sum}"

- id: video_wall_on_set
  label: Set Video Wall On/Off
  kind: action
  command: "AA 84 {ID} 01 {V.Wall_On} {sum}"
  params:
    - name: V.Wall_On
      type: integer
      description: "0=Off, 1=On"

- id: temperature_set
  label: Set Temperature Threshold
  kind: action
  command: "AA 85 {ID} 01 {Temperature} {sum}"
  params:
    - name: Temperature
      type: integer
      description: 75-124 (degrees C)

- id: brightness_sensor_set
  label: Set Brightness Sensor
  kind: action
  command: "AA 86 {ID} 01 {BR_Sensor} {sum}"
  params:
    - name: BR_Sensor
      type: integer
      description: "0=Off, 1=On"

- id: dynamic_contrast_set
  label: Set Dynamic Contrast
  kind: action
  command: "AA 87 {ID} 01 {DY_Cont} {sum}"
  params:
    - name: DY_Cont
      type: integer
      description: "0=Off, 1=Low, 2=Medium, 3=High"

- id: video_wall_user_set
  label: Set Video Wall Divider/SNo
  kind: action
  command: "AA 89 {ID} 02 {Wall_Div} {Wall_SNo} {sum}"
  params:
    - name: Wall_Div
      type: integer
      description: Divider code from 15x15 table (e.g. 0xFF=15x15)
    - name: Wall_SNo
      type: integer
      description: SNo 1-225 (model dependent)

- id: model_name_get
  label: Get Model Name
  kind: query
  command: "AA 8A {ID} 00 {sum}"

- id: video_wall_direct_set
  label: Set Video Wall Direct
  kind: action
  command: "AA 8B {ID} 05 {V.Wall_On} {WallMode} {Wall_Div} {Wall_SNo} {Input} {sum}"
  params:
    - name: V.Wall_On
      type: integer
      description: "0=Off, 1=On"
    - name: WallMode
      type: integer
      description: "0=Natural, 1=Full"
    - name: Wall_Div
      type: integer
      description: see 0x89
    - name: Wall_SNo
      type: integer
      description: see 0x89
    - name: Input
      type: integer
      description: see 0x14

- id: fan_control_set
  label: Set Fan Control
  kind: action
  command: "AA 8F {ID} 01 {FAN} {sum}"
  params:
    - name: FAN
      type: integer
      description: "0=Manual, 1=Auto"

- id: energy_saving_set
  label: Set Energy Saving
  kind: action
  command: "AA 92 {ID} 01 {E_SAV} {sum}"
  params:
    - name: E_SAV
      type: integer
      description: "0=Off, 1=Low, 2=Medium, 3=High, 4=Picture Off"

- id: hdmi_black_level_set
  label: Set HDMI Black Level
  kind: action
  command: "AA 94 {ID} 01 {HDMI_b} {sum}"
  params:
    - name: HDMI_b
      type: integer
      description: "0=Normal, 1=Low, 2=Auto"

- id: black_adjust_set
  label: Set Black Adjust
  kind: action
  command: "AA 95 {ID} 01 {B_ADJ} {sum}"
  params:
    - name: B_ADJ
      type: integer
      description: "0=Off, 1=Low(Dark), 2=Medium(Darker), 3=High(Darkest)"

- id: gamma_set
  label: Set Gamma
  kind: action
  command: "AA 96 {ID} 01 {GAMMA} {sum}"
  params:
    - name: GAMMA
      type: integer
      description: "0-5=Mode0-5, 0x11-0x15=-1 to -5, 0x20=Custom"

- id: edge_enhancement_set
  label: Set Edge Enhancement
  kind: action
  command: "AA 9C {ID} 01 {EDGE} {sum}"
  params:
    - name: EDGE
      type: integer
      description: "0=Off, 1=On"

- id: color_space_set
  label: Set Color Space
  kind: action
  command: "AA 9D {ID} 01 {COS} {sum}"
  params:
    - name: COS
      type: integer
      description: "0=Auto, 1=Native, 2=Custom"

- id: xvycc_set
  label: Set xvYCC
  kind: action
  command: "AA 9E {ID} 01 {XVYCC} {sum}"
  params:
    - name: XVYCC
      type: integer
      description: "0=Off, 1=On"

- id: reset_set
  label: Reset
  kind: action
  command: "AA 9F {ID} 01 {RST} {sum}"
  params:
    - name: RST
      type: integer
      description: "0=Picture Reset, 1=Sound Reset, 2=Setup Reset, 3=Reset All, 4=Screen Display Reset"
  notes: "Get returns NAK"

- id: ambient_brightness_set
  label: Set Ambient Brightness Mode
  kind: action
  command: "AA A1 {ID} 03 {AB_Mode} {Valid_LampValue} {LampValue} {sum}"
  params:
    - name: AB_Mode
      type: integer
      description: "0=Off, 1=On"
    - name: Valid_LampValue
      type: integer
      description: "0=Invalid (don't apply), 1=Valid (apply)"
    - name: LampValue
      type: integer
      description: 0-100

- id: osd_display_type_set
  label: Set OSD Display Type On/Off
  kind: action
  command: "AA A3 {ID} 02 {OSDType} {OSDOnOff} {sum}"
  params:
    - name: OSDType
      type: integer
      description: "0=Source, 1=Not Optimum Mode, 2=No Signal, 3=MDC, 4=Schedule Channel Info"
    - name: OSDOnOff
      type: integer
      description: "0=Off, 1=On"

- id: timer1_set
  label: Set Timer1
  kind: action
  command: "AA A4 {ID} 0D|0F {OnH} {OnM} {OnAMPM} {OnAct} {OffH} {OffM} {OffAMPM} {OffAct} ... {sum}"
  notes: "Data Length 0x0D (On only) or 0x0F (On+Off+Repeat+ManualWeekday). 0xFF=time unset."

- id: timer2_set
  label: Set Timer2
  kind: action
  command: "AA A5 {ID} 0D|0F {OnH} {OnM} {OnAMPM} {OnAct} {OffH} {OffM} {OffAMPM} {OffAct} ... {sum}"
  notes: "Same structure as 0xA4"

- id: timer3_set
  label: Set Timer3
  kind: action
  command: "AA A6 {ID} 0D|0F {OnH} {OnM} {OnAMPM} {OnAct} {OffH} {OffM} {OffAMPM} {OffAct} ... {sum}"
  notes: "Same structure as 0xA4"

- id: clock_set
  label: Set Clock (MFM, pre-2014)
  kind: action
  command: "AA A7 {ID} 07 {Day} {HTime} {MTime} {Month} {Year1} {Year2} {APTime} {sum}"
  params:
    - name: Day
      type: integer
      description: 1-31
    - name: HTime
      type: integer
      description: 1-12
    - name: MTime
      type: integer
      description: 0-59
    - name: Month
      type: integer
      description: 1-12
    - name: Year1
      type: integer
      description: Year high byte
    - name: Year2
      type: integer
      description: Year low byte
    - name: APTime
      type: integer
      description: "0=PM, 1=AM"

- id: holiday_add_delete_set
  label: Add/Delete Holiday
  kind: action
  command: "AA A8 {ID} 05 {Management} {Month1} {Day1} {Month2} {Day2} {sum}"
  params:
    - name: Management
      type: integer
      description: "0=Add, 1=Delete, 2=Delete All"

- id: holiday_get_total
  label: Get Total Holidays Count
  kind: query
  command: "AA A9 {ID} 00 {sum}"

- id: holiday_get_by_index
  label: Get Holiday by Index
  kind: query
  command: "AA A9 {ID} 01 {Index} {sum}"

- id: timer4_set
  label: Set Timer4
  kind: action
  command: "AA AB {ID} 0D|0F {OnH} {OnM} {OnAMPM} {OnAct} {OffH} {OffM} {OffAMPM} {OffAct} ... {sum}"
  notes: "Same structure as 0xA4"

- id: timer5_set
  label: Set Timer5
  kind: action
  command: "AA AC {ID} 0D|0F {OnH} {OnM} {OnAMPM} {OnAct} {OffH} {OffM} {OffAMPM} {OffAct} ... {sum}"

- id: timer6_set
  label: Set Timer6
  kind: action
  command: "AA AD {ID} 0D|0F {OnH} {OnM} {OnAMPM} {OnAct} {OffH} {OffM} {OffAMPM} {OffAct} ... {sum}"

- id: timer7_set
  label: Set Timer7
  kind: action
  command: "AA AE {ID} 0D|0F {OnH} {OnM} {OnAMPM} {OnAct} {OffH} {OffM} {OffAMPM} {OffAct} ... {sum}"

- id: edit_name_set
  label: Set Edit Name (input)
  kind: action
  command: "AA AF {ID} 01 {EName} {sum}"
  params:
    - name: EName
      type: integer
      description: "0=None, 1=VCR, 2=DVD, 3=Cable STB, 4=Sat STB, 5=PVR STB, 6=AV Receiver, 7=Game, 8=Camcorder, 9=PC, 0xA=DVI PC, 0xB=DVI, 0xC=TV, 0xD=IPTV, 0xE=Blu-ray, 0xF=HD DVD, 0x10=DMA, 0x11=DVD Receiver, 0x12=HD STB, 0x13=DVD Combo, 0x14=DHR"

- id: virtual_remote_set
  label: Virtual Remote Key
  kind: action
  command: "AA B0 {ID} 01 {KeyCode} {sum}"
  params:
    - name: KeyCode
      type: integer
      description: "0x01=SOURCE, 0x02=POWER, 0x04=1, 0x05=2, 0x06=3, 0x07=VOL_UP, 0x08=4, 0x09=5, 0x0A=6, 0x0B=VOL_DOWN, 0x0C=7, 0x0D=8, 0x0E=9, 0x0F=MUTE, 0x10=CH_DOWN, 0x11=0, 0x12=CH_UP, 0x14=GREEN, 0x15=YELLOW, 0x16=CYAN, 0x1A=MENU, 0x1F=DISPLAY, 0x23=DIGIT, 0x24=PIP_TV_VIDEO, 0x2D=EXIT, 0x45=REW, 0x46=STOP, 0x47=PLAY, 0x48=FF, 0x4A=PAUSE, 0x4B=TOOLS, 0x58=RETURN, 0x5B=MAGICINFO_LITE, 0x60=CURSOR_UP, 0x61=CURSOR_DOWN, 0x62=CURSOR_RIGHT, 0x65=CURSOR_LEFT, 0x68=ENTER, 0x6C=RED, 0x77=LOCK, 0x79=CONTENT, 0x98=DISCRET_POWER_OFF, 0x9F=3D"
- id: display_port_daisy_chain_get
  label: Get Display Port Daisy Chain
  kind: query
  command: "AA B1 {ID} 00 {sum}"

- id: display_port_daisy_chain_set
  label: Set Display Port Daisy Chain
  kind: action
  command: "AA B1 {ID} 01 {Value} {sum}"
  params:
    - name: Value
      type: integer
      description: "0=Clone, 1=Expand"

- id: video_conference_sound_set
  label: Set Video Conference Sound Mode
  kind: action
  command: "AA B3 {ID} 01 {CSound} {sum}"
  params:
    - name: CSound
      type: integer
      description: "0=Video Conference Sound Off, 1=Video Conference Sound On"

- id: network_standby_set
  label: Set Network Standby
  kind: action
  command: "AA B5 {ID} 01 {Standby} {sum}"
  params:
    - name: Standby
      type: integer
      description: "0=Network Standby Off, 1=Network Standby On"

- id: dst_set
  label: Set DST (Daylight Saving Time)
  kind: action
  command: "AA B6 {ID} 0C {DSTOnOff} {StartMonth} {StartDay1} {StartDay2} {StartH} {StartM} {EndMonth} {EndDay1} {EndDay2} {EndH} {EndM} {TimeOffset} {sum}"
  params:
    - name: DSTOnOff
      type: integer
      description: "Tunerless: 0=Off, 2=On. Tuner: 0=DST Off, 1=Auto, 2=Manual"
    - name: StartMonth
      type: integer
      description: "0x00=Jan ~ 0x0B=Dec (valid when DST On or Manual)"
    - name: TimeOffset
      type: integer
      description: "0x00=+1:00, 0x01=+2:00"
  notes: "Data2~12 valid when DST On or Manual."

- id: custom_pip_set
  label: Set Custom PIP
  kind: action
  command: "AA B7 {ID} 08 {HPosH} {HPosL} {VPosH} {VPosL} {HSizeH} {HSizeL} {VSizeH} {VSizeL} {sum}"
  params:
    - name: HPosH
      type: integer
      description: "PIP H-Start High-Byte (interval 10 pixel)"
    - name: HPosL
      type: integer
      description: "PIP H-Start Low-Byte"
    - name: VPosH
      type: integer
      description: "PIP V-Start High-Byte"
    - name: VPosL
      type: integer
      description: "PIP V-Start Low-Byte"
    - name: HSizeH
      type: integer
      description: "PIP H-width High-Byte"
    - name: HSizeL
      type: integer
      description: "PIP H-width Low-Byte"
    - name: VSizeH
      type: integer
      description: "PIP V-width High-Byte"
    - name: VSizeL
      type: integer
      description: "PIP V-width Low-Byte"
  notes: "Only when PIP Size is set to Custom."

- id: auto_id_setting_status_set
  label: Set Auto ID Setting Status
  kind: action
  command: "AA B8 {ID} 01 {Status} {sum}"
  params:
    - name: Status
      type: integer
      description: "0x00=Auto ID Setting START, 0x01=Auto ID Setting END"

- id: display_id_information_set
  label: Set Display ID Information
  kind: action
  command: "AA B9 {ID} 01 {IDDisplay} {sum}"
  params:
    - name: IDDisplay
      type: integer
      description: "0x00=Monitor ID Display Off, 0x01=Monitor ID Display On"

- id: clock_mfm_seconds_set
  label: Set Clock (MFM with Seconds)
  kind: action
  command: "AA C5 {ID} 08 {Day} {HTime} {MTime} {STime} {Month} {Year1} {Year2} {APTime} {sum}"
  params:
    - name: Day
      type: integer
      description: 1-31
    - name: HTime
      type: integer
      description: "1-12"
    - name: MTime
      type: integer
      description: 0-59
    - name: STime
      type: integer
      description: 0-59
    - name: Month
      type: integer
      description: 1-12
    - name: Year1
      type: integer
      description: Year high byte
    - name: Year2
      type: integer
      description: Year low byte
    - name: APTime
      type: integer
      description: "0=PM, 1=AM"
  notes: "For signage devices produced after 2013. Use 0xA7 for pre-2014 models."

- id: eco_solution_set
  label: Set Eco Solution
  kind: action
  command: "AA C6 {ID} 02 {SubCMD} {Data1} {sum}"
  params:
    - name: SubCMD
      type: integer
      description: "0x81=Auto Power Off"
    - name: Data1
      type: integer
      description: "Auto Power Off: 0x00=Off, 0x01=4 Hour(On), 0x02=6 Hour, 0x03=8 Hour"

- id: execute_launcher_set
  label: Set Execute Launcher
  kind: action
  command: "AA C7 {ID} {Len} {SubCMD} {Data} {sum}"
  params:
    - name: SubCMD
      type: integer
      description: "0x81=Launcher Mode (Play Via), 0x82=URL Address"
    - name: Data
      type: integer
      description: "Launcher Mode: 0x00=MagicInfo, 0x01=URL Launcher, 0x02=MagicIWB. URL: ASCII string up to 200 chars"
  notes: "Set Play Via: Data Length 0x02. Set URL: Data Length variable."

- id: osd_menu_control_set
  label: Set OSD Menu Control
  kind: action
  command: "AA C8 {ID} 02 {SubCMD} {Mode} {sum}"
  params:
    - name: SubCMD
      type: integer
      description: "0x81=Menu Orientation, 0x82=Source Content Orientation, 0x83=Aspect Ratio, 0x84=PIP Rotation"
    - name: Mode
      type: integer
      description: "Orientation: 0x00=Landscape(0), 0x01=Portrait(270), 0x02=180, 0x03=90. Aspect Ratio: 0x00=Full Screen, 0x01=Original."

- id: system_menu_control_set
  label: Set System Menu Control
  kind: action
  command: "AA CA {ID} {Len} {SubCMD} {Data1} {sum}"
  params:
    - name: SubCMD
      type: integer
      description: "0x81=Auto Source Switch OnOff, 0x82=Auto Source Switch Control (4 bytes), 0x91=Power Button, 0xA1=No Signal Power Off"
    - name: Data1
      type: integer
      description: "AutoSourceSwitch: 0=Off,1=On. PowerButton: 0=Power On Only,1=Power On/Off. NoSignalPowerOff: 0=Off,1=15min,2=30min,3=60min"

- id: net_pip_set
  label: Set Net PIP (MagicInfo)
  kind: action
  command: "AA E0 {ID} {Len} {PIP_OnOff} {HPosH} {HPosL} {VPosH} {VPosL} {HSizeH} {HSizeL} {VSizeH} {VSizeL} {PSource} {TVCh} {SSelect} {Country} {ATV_DTV} {AirCable} {CH_NUM_H} {CH_NUM_L} {Sel_Minor} {Minor_H} {Minor_L} {sum}"
  params:
    - name: PIP_OnOff
      type: integer
      description: "0x00=PIP Off (Data Length 0x01), 0x01=PIP On (Data Length 0x14)"
    - name: PSource
      type: integer
      description: Input source code (see 0x14)
    - name: SSelect
      type: integer
      description: "0x00=MagicInfo Sound, 0x01=PIP Sound"
  notes: "MagicInfo only."

- id: apply_to_status_set
  label: Set Apply To Status
  kind: action
  command: "AA E4 {ID} 01 {Status} {sum}"
  params:
    - name: Status
      type: integer
      description: "0x00=Current Source, 0x01=MagicInfo Player S"

- id: panel_on_off_set
  label: Set Panel On/Off
  kind: action
  command: "AA F9 {ID} 01 {PN_State} {sum}"
  params:
    - name: PN_State
      type: integer
      description: "0x00=Panel On, 0x01=Panel Off"

- id: auto_id_set
  label: Set Auto ID
  kind: action
  command: "AA FD {ID} 02 {RS_Status} {M_ID} {sum}"
  params:
    - name: RS_Status
      type: integer
      description: "Bit0=RS232 Loop Out Disable(1)/Enable(0), Bit4=Initialize Monitor ID(1)."
    - name: M_ID
      type: integer
      description: "Target ID 1-99. Ignored when ID reset bit set. 0=no change."
  notes: "Broadcast to 0xFE to apply to all."

- id: rtv_annex_a_set
  label: Set RTV Annex A Sub-Command
  kind: action
  command: "AA C0 {ID} {Len} {SubCMD} {Data} {sum}"
  params:
    - name: SubCMD
      type: integer
      description: "0x01=3D Mode, 0x02=3D Effect, 0x03=3D Perspective, 0x04=3D Effect Depth, 0x05=3D L/R Change, 0x06=3D->2D, 0x07=3D Auto View, 0x08=3D Optimization, 0x09=Expert Pattern, 0x0A=RGB Mode Only, 0x0B=Color Space, 0x0C=Color Space Color, 0x0D=Color Space Red, 0x0E=Color Space Green, 0x0F=Color Space Blue, 0x10=Color Space Reset, 0x11=WB RGB Offset, 0x12=WB RGB Gain, 0x13=WB Reset, 0x14=Flesh Tone, 0x15=Motion Lighting, 0x16=LED Motion Plus, 0x17=MPEG Noise Filter, 0x18=Smart LED, 0x19=Cinema Black, 0x1A=Marker On/Off, 0x1B=Overlay Aspect Ratio, 0x1C=Cross Marker, 0x1D=Safety Area, 0x1E=Black Matte, 0x1F=Marker Color, 0x20=Marker Thickness, 0xA0=Calibration Command"
    - name: Data
      type: integer
      description: "Value for the selected sub-command; see SubCMD description for range"
  notes: "Annex A RTV (Reference TV) commands. Get uses Data Length 0x01 with SubCMD only."

Feedbacks

# All queries return the standard ack frame: AA FF [ID] [DataLength] 'A' [r-CMD] [Val 1..N] [Checksum]
# NAK frame: AA FF [ID] 03 'N' [r-CMD] [ERR] [Checksum]

- id: status_control
  type: object
  description: Combined status - Power, Volume, Mute, Input, Aspect, plus N/F Time NF flags

- id: power_state
  type: enum
  values: [off, on, reboot]

- id: volume
  type: integer
  description: 0-100

- id: mute
  type: enum
  values: [off, on]

- id: input_source
  type: enum
  description: see input_source_set params for full list

- id: aspect
  type: integer
  description: Aspect code (see picture_size_set)

- id: video_status
  type: object
  description: Contrast, Brightness, Sharpness, Color, Tint, ColorTone, ColorTemp

- id: rgb_status
  type: object
  description: Contrast, Brightness, ColorTone, ColorTemp, RedGain, GreenGain, BlueGain (0xFF if not supported)

- id: pip_status
  type: object
  description: P.Size, P.Source

- id: sound_status
  type: object
  description: Vol, Balance, 100Hz, 300Hz, 1kHz, 3kHz, 10kHz, SRS

- id: serial_number
  type: string
  description: Up to 15 chars

- id: display_status
  type: object
  description: "Lamp err (0=Normal,1=Error), Temp err, Bright_Sensor (0=None,1=Error,2=Normal), No_Sync, Cur_Temp 0-125 C, FAN err"

- id: sw_version
  type: string
  description: Variable length, Version1-50 (1-12=Project Info, 13-50=SW version)

- id: model_number
  type: object
  description: Species (1=PDP,2=LCD,3=DLP,4=LED,5=CRT,6=OLED) + Model code

- id: model_name
  type: string
  description: Variable length, ASCII model name

- id: screen_size
  type: integer
  description: Inches 0-255

- id: mdc_connection_type
  type: enum
  values: [rs232c, rj45]

- id: panel_on_time
  type: integer
  description: High/Low byte pair

- id: pc_module_detect
  type: enum
  values: [not_detected, magicinfo, plug_in_module]

- id: device_name
  type: string
  description: Up to 15 chars

- id: holiday_entry
  type: object
  description: "Index, Month1, Day1, Month2, Day2 (0xFF=unset)"

- id: ack_nak
  type: enum
  values: [ack, nak]
  description: All commands return Ack ('A') or Nak ('N') in the Ack/Nak field

Variables

# UNRESOLVED: source defines commands but no persistent variable store abstraction.
# Settable numeric parameters are encoded inline in the action payload.

Events

# UNRESOLVED: source describes query/response model; unsolicited events not documented.

Macros

# UNRESOLVED: no multi-step macro sequences defined in source beyond compound
# commands (e.g. Video Wall Direct 0x8B which sets multiple fields in one frame).

Safety

confirmation_required_for:
  - reset_all  # 0x9F RST=3
interlocks: []
# Per source: Power commands may need retry (3x every 2 sec) for Ack when used via RJ45.
# Power On via RJ45 requires socket reconnection after 10 sec.
# Network Standby:Off models require WOL protocol (not MDC) for Power On.
# Auto Lamp and Manual Lamp Control are mutually exclusive.
# Dynamic Contrast On disables Auto/Manual Lamp Control.
# Safety Screen types 1 (Signal Pattern), 2 (All White), 9, 10 only work on PDP models.

Notes

SNOW1810U not directly listed in the source's Model Number Control (0x10) table; the model must be identified via 0x8A Model Name. Source documents Samsung Multiple Display Control protocol generically across many models. SNOW1810U-specific command support subset unverified.

RS-232: 9600 bps, 8N1, no flow control. Pin 2 RxD, 3 TxD, 5 GND. Max cable 4m. ID 0xFE = broadcast (no Ack).

RJ45/TCP: Default IP 192.168.0.10, port 1515. Same binary frame format as RS-232. Power On via RJ45 needs WOL protocol when Network Standby=Off (DMD/DBD/DHD/UED/DMD-S models). Power On/Off commands must be retried 3x every 2 sec until Ack.

Checksum = sum of bytes from Command byte through last Data byte, lower 2 hex digits (discard higher if sum exceeds 0xFF, e.g. 0x11+0xFE+0x01+0x01=0x111 → 0x11).

Provenance

source_domains:
  - aca.im
  - image-us.samsung.com
  - manuals.plus
  - manua.ls
  - objects.icecat.biz
source_urls:
  - "https://aca.im/driver_docs/Samsung/MDC%20Protocol%202015%20v13.7c.pdf"
  - https://image-us.samsung.com/SamsungUS/samsungbusiness/products/tvs/tvci-8-21-17/resource-center/control-codes/TV_RS232_CommandList_1.2_1pager.pdf
  - https://manuals.plus/m/081842c776d616c56e7076b31e6b1b4a5ef06c86767045761f573c7ea8f2466a_optim.pdf
  - https://www.manua.ls/samsung/snow-1810u/manual
  - https://objects.icecat.biz/objects/mmo_71776134_1582793297_5333_23331.pdf
retrieved_at: 2026-06-14T12:55:13.955Z
last_checked_at: 2026-06-23T07:49:50.283Z

Verification Summary

verdict: verified
checked_at: 2026-06-23T07:49:50.283Z
matched_actions: 132
action_count: 132
confidence: medium
summary: "All 132 spec actions confirmed verbatim in Samsung MDC source; transport verified; catalogue fully covered. (5 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "SNOW1810U-specific feature subset not enumerated in source. Source documents MDC protocol generically; SNOW1810U command support may differ."
- "source defines commands but no persistent variable store abstraction."
- "source describes query/response model; unsolicited events not documented."
- "no multi-step macro sequences defined in source beyond compound"
- "SNOW1810U-specific command support matrix not stated; firmware version not stated; no auth method stated."

From the AI4AV catalog (https://ai4av.net) · ODbL-1.0