NEC / Sharp NEC MultiSync Display
Drive NEC / Sharp NEC MultiSync large-format displays over LAN using the External Control Protocol. Covers the M, P, V, C, E, UN, and X series — the same protocol runs across nearly every commercial NEC panel from ~2010 onward.
What this driver supports
- Power on / off / standby, and live power-state readback.
- Input select — VGA, DVI, DisplayPort, HDMI 1–4, Option, USB, and Compute Module.
- Volume (0–100), mute on/off/toggle.
- Backlight, brightness, and contrast set.
- Diagnostics telemetry — panel temperature (°C) and cumulative panel usage hours (history-enabled attributes suitable for commercial-signage health monitoring).
- Auto model-name detection on connect.
Prerequisites
- Firmware that speaks the External Control Protocol version 2.x or newer (any current NEC LFD firmware from the last decade qualifies).
- LAN control enabled on the panel: Menu → Control → LAN Setup → LAN Power → ON.
- External Control source set to LAN: Menu → Control → External Control → LAN.
- A static IP or DHCP reservation for the display. Default control port is 7142.
Setup
- On the display OSD, enable LAN control and set the External Control source to LAN as above.
- Confirm the display's IP under Menu → Control → LAN Setup → IP Address.
- In GEM, navigate to /admin/devices and add a device with driver NEC LFD.
- Fill in the display IP. Leave
portat 7142 unless your commissioning integrator overrode it. - If you have multiple displays daisy-chained through an RS-232 → LAN bridge, set Monitor ID to the target panel's ID (1 for the first).
- Save. On connect the driver runs an initial sweep (power, input, volume, mute, temperature, lifetime hours) and then polls every 30 seconds.
Zone address format
Not used. This driver models one panel per device row. If you're mapping panels to AV zones, link the panel via volume_device_id on the AV zone so volume/mute reflect on both surfaces.
Attribute reference
| Attribute | Type | Direction | Notes |
|---|---|---|---|
ip | string | required | Display IP or hostname. |
port | int | optional | Control TCP port. Default 7142. |
monitor_id | int | optional | Chain address. 1 for a single panel. |
status_interval | int (ms) | optional | Poll cadence for power/input/volume/mute + telemetry. Default 30000. |
model_name | string | readonly | Populated from the model-name reply on connect. |
power_state | enum | readonly | on / standby / suspend / off. |
input | enum | readonly | Current source. |
volume | int (0-100) | readonly | Panel speaker volume. |
mute_state | enum | readonly | on / off. |
backlight | int (0-100) | readonly | Current backlight level. |
panel_temp | int (°C) | readonly, history | Panel temperature sensor #1. |
lifetime_hours | int (h) | readonly, history | Cumulative panel-on hours. |
Commands
Power: power_on, power_off, power_standby, get_power. Standby draws slightly less than a full off — most operators use power_off for scheduled cinema-style dark cycles and power_standby for quick-recovery between meetings.
Input: set_input / input accepting one of vga, rgb_hv, dvi, video1, svideo, component, displayport, hdmi1–hdmi4, dvd_hd, option, usb, compute_module.
Audio: volume (0-100), volume_up, volume_down, mute_on, mute_off, mute_toggle, get_volume, get_mute.
Image: backlight, brightness, contrast — each takes a level argument 0-100 and mirrors the OSD Image adjustments.
Diagnostics (poll targets, but callable ad-hoc for scripts):
get_temperature— reads panel temperature sensor #1.get_lifetime_hours— reads cumulative usage hours.get_model_name— populates themodel_nameattribute.
Known limitations
- Model-name decoding — NEC returns the model as a value inside a get-parameter reply, and the string encoding varies by firmware. The driver stores whatever comes back; it may render as a hex code on older panels. Not blocking day-to-day control.
- Video-wall configuration commands (tile mode, gap correction, monitor grouping) are intentionally out of scope for this initial driver. Commercial video-wall setup remains an OSD/commissioning task; the driver focuses on runtime control after commissioning.
- Some early-2010s panels do not support opcode
0x07F4(lifetime usage). The driver logs a single "unsupported opcode" line and skips the reading — no error is surfaced to callers. - Multi-monitor RS-232 chaining is supported via the
monitor_idattribute, but each addressable display should still be added as its own GEM device row so state polling doesn't collide.
Troubleshooting
- No response on connect. LAN Power is off in the OSD — commercial NEC panels default the LAN port to power off with the panel. Set Menu → Control → LAN Setup → LAN Power → ON.
- Commands accepted but the wrong display responds. Two chained displays share the same monitor ID. Assign unique IDs via Menu → Multi-Screen → Monitor ID, or address each panel from its own GEM device row.
lifetime_hoursnever populates. Older firmware may not support opcode0x07F4. Update to the newest LFD firmware from the Sharp NEC support portal.- Backlight command has no effect. Some picture modes (notably "Dynamic") lock backlight adjustment. Switch to
StandardorCustomin the OSD before scripting backlight changes.
Related
docs/admin/drivers/samsung_mdc.md— Samsung's equivalent commercial-display protocol; similar shape.docs/admin/drivers/pjlink.md— cross-brand projector/display control; simpler command surface, more limited telemetry.