Skip to main content

Samsung MDC Display

Samsung commercial displays and digital-signage panels — the QM, QB, QH, BE, DM, ED, and PM series, the LH-model signage panels, and most "Smart Signage"/MagicINFO displays — are controlled over Samsung's MDC (Multiple Display Control) protocol. GEM speaks MDC's binary command set over TCP, either natively on the panel's Ethernet port or through a serial-to-IP adapter wired to the display's RS-232C input. One panel becomes one GEM device; commands target the panel directly (this driver creates no zones).

This is the driver for commercial / signage Samsung panels that expose MDC. A consumer Samsung "The Frame"/Tizen smart TV uses a different control path and is not what this driver targets.

What's controlled

  • Power on/off, plus a panel (backlight) blank that keeps the unit responsive while the screen is dark
  • Volume — absolute set (0100), up/down, and mute on/off/toggle
  • Input switching — quick HDMI buttons (hdmi_1hdmi_4) and a fuller input picker that also reaches DisplayPort, MagicINFO, the URL launcher, and the web browser
  • Full on-screen-remote key set: D-pad, enter/exit/menu/info/guide/back, the digit keys, and a catch-all keypress command for anything else
  • Channel up/down, last channel, and direct channel tuning (ATV/DTV)
  • Video-wall control — turn the wall mode on/off and switch between full and natural scaling
  • Safety lock (front-key/IR lock) on/off
  • Live status polling for power, volume, mute, and the selected input

Prerequisites

  • A Samsung commercial/MDC display reachable on the LAN — either by its own IP (native MDC over Ethernet) or by the IP of a serial-to-IP adapter cabled to the panel's RS-232C IN jack.
  • MDC control enabled on the panel. On most models this is under the service/system menu as MDC or RS-232C control; the exact menu path varies by model and firmware year. If the panel ignores commands, this is the first thing to check.
  • The panel's MDC ID noted. Every MDC display has a unit ID (factory default 01). GEM must be told the same ID — both to address the panel and to recognize its replies.

Give the display (or the serial-to-IP adapter) a static IP or a DHCP reservation so the address never moves.

Setup

  1. On the panel, enable MDC/RS-232C control and confirm its MDC ID (default 01).
  2. In GEM, open Devices, add a device, and choose the Samsung MDC Display driver.
  3. Set the IP Address field to the panel's LAN IP (or the serial-to-IP adapter's IP).
  4. TCP Port defaults to 1515, the typical native-MDC port. Leave it for Ethernet MDC; for a serial-to-IP adapter, set the adapter's configured listening port instead.
  5. If the panel's MDC ID is not the default 01, set the MDC Unit ID field (under the advanced settings) to match.
  6. Save and enable the device. On connect, GEM begins polling the panel's status (see below).
Multiple panels on one link

On a serial daisy-chain (panel RS-232 OUT → next panel's IN) fed by a single serial-to-IP adapter, several displays share one IP. Give each panel a distinct MDC ID, add one GEM device per panel pointed at the same adapter IP/port, and set each device's MDC Unit ID to that panel's ID. With native Ethernet MDC, each panel has its own IP and uses the default ID 01.

Status polling and feedback

While connected, GEM cycles through four status queries — mute, then volume, then input, then power — about three seconds apart, so a full refresh of all four takes roughly twelve seconds. The values it reads back populate read-only state attributes on the device (power_state, volume, mute_state, input) and drive the volume slider and mute indicator on any AV zone this panel is linked to. The reported input comes back as a friendly name (for example hdmi_1, hdmi_2, displayport_1, magic_info, screen_mirroring).

Feedback depends on the MDC ID matching

GEM only applies a reply when the panel's reply carries the same MDC ID set in MDC Unit ID. If the panel is set to a different ID than the device, commands may still reach it but the live status (power/volume/mute/input) will not refresh. A panel whose status never updates is almost always an MDC-ID mismatch.

Linking to an AV zone

A Samsung commercial panel usually has its own speakers and amplifier, so it can act as the volume control for the room it serves:

  1. Open AV Zones and edit (or create) the zone for that room.
  2. In Device Configuration, set the Volume Device field to this Samsung display.
  3. Save. The zone's volume slider and mute control now drive the panel, and the panel's reported volume/mute mirror back onto the zone.

To wake the panel and select the right HDMI input when a source is chosen, put the display's power_on and an input command (hdmi_1hdmi_4, or input) into the AV zone's On macro — the same place a theater zone powers up a projector and receiver. Powering the room off can run power_off, or panel_off if you want the panel to blank but stay reachable for the next power-up. See AV Zones and Macros.

note

Switching the panel's input is a device command, not an AV source change by itself. Selecting a room source on a touchpanel only changes the panel's input if that input command is wired into the source's on-macro — see AV Sources.

Attributes

Device — required

AttributeTypeDescription
ipstringThe panel's LAN IP (or the serial-to-IP adapter's IP).

Device — optional

AttributeTypeDefaultDescription
portint1515TCP port. 1515 for native Ethernet MDC; set the adapter's port for a serial-to-IP link.
unit_idstring01The panel's MDC ID, as a two-character hex value. Must match the ID set on the display. Override per command if you mix IDs on one link.

The driver also auto-populates these state attributes as the panel reports them: power_state, volume, mute_state, and input. They are read-only status — not values you set by hand.

Commands

Driver-declared commands appear on the device's Commands tab and can be used in macros, triggers, and on UI buttons. GEM computes each command's MDC checksum automatically, so you never enter one.

Power

CommandAction
power_on / power_offFull power on / off.
panel_on / panel_offTurn the screen (backlight) on or off while the unit stays powered and reachable. Use panel_off to blank a signage panel without dropping control.

Volume and mute

CommandAction
volume (arg volume)Set absolute volume, 0100. GEM converts the level to the panel's hex scale.
volume_up / volume_downStep volume up / down.
mute_on / mute_offMute / unmute.
mute_toggleToggle mute (native — no server emulation needed).

Input selection

CommandAction
hdmi_1hdmi_4Jump straight to HDMI 1–4.
input (arg input)Pick an input from the fuller list: hdmi_1, hdmi_2, hdmi_3, hdmi_4, display_port, magic_info, url_launcher, web_browser.

Remote keys and navigation

CommandAction
up down left right enterD-pad and select.
menu exit back info guideOn-screen menu, exit, back, info overlay, and guide.
09Number keys.
keypress (arg keycode)Send any supported remote key by name — covers the digits, source, power_toggle, volume_up/volume_down, mute_toggle, channel_up/channel_down, menu, exit, enter, the D-pad directions, and power_off. Use this for keys without their own command.

Channels

CommandAction
channel_up / channel_downStep channels.
previous_channelReturn to the last channel.
channel (args tuner, major, minor)Tune directly. tuner is atv or dtv; major/minor are the channel numbers.

Video wall

CommandAction
videowall_on / videowall_offEnable / disable video-wall mode.
set_videowall_mode (arg mode)Switch wall scaling between full and natural.
get_videowall_mode / get_videowall_statusQuery the current wall mode / status.

Safety lock and status queries

CommandAction
safety_lock_onLock the panel's front keys / IR remote.
safety_lock_ofUnlock the front keys / IR remote. (The command name is spelled safety_lock_of — enter it exactly that way in a macro.)
get_safety_lockQuery the safety-lock state.
get_screen_modeQuery the current picture/screen mode.
get_power get_volume get_mute get_input get_channelOne-off status queries. GEM already runs these on its polling cycle, but you can trigger one on demand.

Raw passthrough

CommandAction
passthrough (arg command)Send a raw MDC command (space-separated hex bytes) for anything the built-in commands don't cover. GEM still appends the checksum, so supply the command without it.

Known limitations

  • No native input-feedback for every source. Status polling reports power, volume, mute, and input. Other settings (screen mode, video-wall state, safety lock) are queryable on demand but are not part of the automatic poll, so they are not continuously tracked.
  • One picture/mode picker is read-only. get_screen_mode reads the current mode back, but there is no set-screen-mode command in this revision — set the picture mode on the panel.
  • MDC must be enabled per panel. A factory-fresh display ignores MDC until control is turned on in its menu; there is no way for GEM to enable it remotely.

Troubleshooting

SymptomCheck
No response from the panelConfirm MDC/RS-232C control is enabled on the display, the IP/port are correct, and (for a serial-to-IP adapter) the port matches the adapter's listener.
Commands work but status never updatesThe MDC Unit ID must match the ID set on the panel — GEM ignores replies whose ID doesn't match. Set them the same and reload the device.
Wrong panel responds on a daisy chainEach panel on a shared serial/IP link needs a unique MDC ID, and each GEM device must point at the correct ID.
Volume slider behaves oddlyThe panel scales 0100; verify the linked AV zone's Volume Device is this display and that the panel is reporting volume on the poll.
Unlock command does nothingThe unlock command is safety_lock_of (not safety_lock_off); enter it exactly.

See also

  • AV Zones — set this display as a zone's Volume Device, and wire its power/input commands into the zone's on/off macros.
  • AV Sources — how room sources route, and where an input-switch macro lives.
  • Commands — running and scripting device commands.
  • Devices — adding and configuring devices.