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 (
0–100), up/down, and mute on/off/toggle - Input switching — quick HDMI buttons (
hdmi_1–hdmi_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
- On the panel, enable MDC/RS-232C control and confirm its MDC ID (default
01). - In GEM, open Devices, add a device, and choose the Samsung MDC Display driver.
- Set the IP Address field to the panel's LAN IP (or the serial-to-IP adapter's IP).
- 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. - If the panel's MDC ID is not the default
01, set the MDC Unit ID field (under the advanced settings) to match. - Save and enable the device. On connect, GEM begins polling the panel's status (see below).
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).
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:
- Open AV Zones and edit (or create) the zone for that room.
- In Device Configuration, set the Volume Device field to this Samsung display.
- 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_1…hdmi_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.
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
| Attribute | Type | Description |
|---|---|---|
ip | string | The panel's LAN IP (or the serial-to-IP adapter's IP). |
Device — optional
| Attribute | Type | Default | Description |
|---|---|---|---|
port | int | 1515 | TCP port. 1515 for native Ethernet MDC; set the adapter's port for a serial-to-IP link. |
unit_id | string | 01 | The 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
| Command | Action |
|---|---|
power_on / power_off | Full power on / off. |
panel_on / panel_off | Turn 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
| Command | Action |
|---|---|
volume (arg volume) | Set absolute volume, 0–100. GEM converts the level to the panel's hex scale. |
volume_up / volume_down | Step volume up / down. |
mute_on / mute_off | Mute / unmute. |
mute_toggle | Toggle mute (native — no server emulation needed). |
Input selection
| Command | Action |
|---|---|
hdmi_1 … hdmi_4 | Jump 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
| Command | Action |
|---|---|
up down left right enter | D-pad and select. |
menu exit back info guide | On-screen menu, exit, back, info overlay, and guide. |
0–9 | Number 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
| Command | Action |
|---|---|
channel_up / channel_down | Step channels. |
previous_channel | Return to the last channel. |
channel (args tuner, major, minor) | Tune directly. tuner is atv or dtv; major/minor are the channel numbers. |
Video wall
| Command | Action |
|---|---|
videowall_on / videowall_off | Enable / disable video-wall mode. |
set_videowall_mode (arg mode) | Switch wall scaling between full and natural. |
get_videowall_mode / get_videowall_status | Query the current wall mode / status. |
Safety lock and status queries
| Command | Action |
|---|---|
safety_lock_on | Lock the panel's front keys / IR remote. |
safety_lock_of | Unlock the front keys / IR remote. (The command name is spelled safety_lock_of — enter it exactly that way in a macro.) |
get_safety_lock | Query the safety-lock state. |
get_screen_mode | Query the current picture/screen mode. |
get_power get_volume get_mute get_input get_channel | One-off status queries. GEM already runs these on its polling cycle, but you can trigger one on demand. |
Raw passthrough
| Command | Action |
|---|---|
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_modereads 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
| Symptom | Check |
|---|---|
| No response from the panel | Confirm 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 updates | The 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 chain | Each 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 oddly | The panel scales 0–100; verify the linked AV zone's Volume Device is this display and that the panel is reporting volume on the poll. |
| Unlock command does nothing | The 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.