In this article you will learn how to control an NEC display via RS232 or UTP connection with the official nec-pd-sdk Python package from NEC. Reasons for controlling NEC displays programmatically vary from automatic turning them on and off, scheduling, monitoring, and more.

I became interested in controlling NEC displays programmatically when I was building a virtual waterfall system and had issues with one of the displays. I needed to restart one manually every few days when it entered an error state and displayed only a black picture.

Next, I will explain where and how this NEC display was used and then we’ll dive straight into the code.

General Overview of a Virtual Waterfall System

I was responsible for the maintenance of a 17 meter tall virtual waterfall on a cruise ship:

There are 34 NEC X551UN displays in the setup. Each display has a dedicated Linux PC for playback. Playback is delivered from the Linux PC to the NEC display via SDI, and each display has a DVI to HDMI active converter. An active converter means that the converter also supplies power.

Each Linux PC plays video for only one display. One additional Windows PC is responsible for synchronizing playout of all of the Linux PCs.

Installing the nec-pd-sdk Python Package

I recommended always using a virtual environment when developing with Python.

To install nec-pd-sdk with pip, run: