Summary

NEC NP-P Series projectors support control via RS-232C serial and TCP/IP (wired LAN) connections. This spec covers the binary command protocol used to control power, input switching, picture/sound/onscreen mute, volume, lens adjustment, and query device status. Commands are sent as hexadecimal byte sequences with a checksum. Over 50 commands are documented, with model-specific support indicated in the source's Supported Command List appendix.

Transport

protocols:
  - serial
  - tcp
serial:
  baud_rate: 115200, 38400, 19200, 9600, 4800
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none  # UNRESOLVED: flow control not stated beyond RTS/CTS pin wiring
addressing:
  port: 7142  # TCP port for LAN connection
auth:
  type: none  # inferred: no auth procedure in source

Traits

traits:
  - powerable     # inferred from power on/off commands
  - routable      # inferred from input switching commands
  - queryable     # inferred from status request commands
  - levelable     # inferred from volume, brightness, contrast, etc. adjust commands

Actions

actions:
  - id: power_on
    label: Power On
    kind: action
    command_hex: "02 00 00 00 00 02"
    description: "Turns on the projector. No other commands accepted during power-on sequence."
    params: []

  - id: power_off
    label: Power Off
    kind: action
    command_hex: "02 01 00 00 00 03"
    description: "Turns off the projector. No other commands accepted during cooling."
    params: []

  - id: input_switch
    label: Switch Input
    kind: action
    command_hex: "02 03 00 00 02 01 <DATA01> <CKS>"
    description: "Switches the input terminal or entry list."
    params:
      - name: input_terminal
        type: integer
        description: "Input terminal hex code (model-specific, e.g. 01h=COMPUTER, 06h=VIDEO, A1h=HDMI, A2h=HDMI2, A6h=DisplayPort, BFh=HDBaseT, 1Fh=VIEWER/USB-A)"

  - id: picture_mute_on
    label: Picture Mute On
    kind: action
    command_hex: "02 10 00 00 00 12"
    description: "Turns picture mute on. Auto-released on input/signal switch."
    params: []

  - id: picture_mute_off
    label: Picture Mute Off
    kind: action
    command_hex: "02 11 00 00 00 13"
    description: "Turns picture mute off."
    params: []

  - id: sound_mute_on
    label: Sound Mute On
    kind: action
    command_hex: "02 12 00 00 00 14"
    description: "Turns sound mute on. Auto-released on input switch, signal switch, or volume adjust."
    params: []

  - id: sound_mute_off
    label: Sound Mute Off
    kind: action
    command_hex: "02 13 00 00 00 15"
    description: "Turns sound mute off."
    params: []

  - id: onscreen_mute_on
    label: Onscreen Mute On
    kind: action
    command_hex: "02 14 00 00 00 16"
    description: "Turns onscreen mute on. Auto-released on input/signal switch."
    params: []

  - id: onscreen_mute_off
    label: Onscreen Mute Off
    kind: action
    command_hex: "02 15 00 00 00 17"
    description: "Turns onscreen mute off."
    params: []

  - id: picture_adjust
    label: Picture Adjust
    kind: action
    command_hex: "03 10 00 00 05 <DATA01> FF <DATA02> <DATA03> <DATA04> <CKS>"
    description: "Adjusts picture parameters (brightness, contrast, color, hue, sharpness)."
    params:
      - name: target
        type: integer
        description: "00h=Brightness, 01h=Contrast, 02h=Color, 03h=Hue, 04h=Sharpness"
      - name: mode
        type: integer
        description: "00h=absolute, 01h=relative"
      - name: value
        type: integer
        description: "16-bit signed value (low byte, high byte)"

  - id: volume_adjust
    label: Volume Adjust
    kind: action
    command_hex: "03 10 00 00 05 05 00 <DATA01> <DATA02> <DATA03> <CKS>"
    description: "Adjusts sound volume."
    params:
      - name: mode
        type: integer
        description: "00h=absolute, 01h=relative"
      - name: value
        type: integer
        description: "16-bit signed value (low byte, high byte)"

  - id: aspect_adjust
    label: Aspect Adjust
    kind: action
    command_hex: "03 10 00 00 05 18 00 00 <DATA01> 00 <CKS>"
    description: "Sets the aspect ratio."
    params:
      - name: aspect
        type: integer
        description: "Aspect value (model-specific, e.g. 00h=AUTO, 03h=16:9, 04h=NATIVE, 05h=4:3)"

  - id: lamp_adjust
    label: Lamp/Light Adjust
    kind: action
    command_hex: "03 10 00 00 05 96 FF <DATA03> <DATA04> <DATA05> <CKS>"
    description: "Adjusts lamp/light output."
    params:
      - name: mode
        type: integer
        description: "00h=absolute, 01h=relative"
      - name: value
        type: integer
        description: "16-bit signed value (low byte, high byte)"

  - id: freeze_control
    label: Freeze Control
    kind: action
    command_hex: "01 98 00 00 01 <DATA01> <CKS>"
    description: "Controls the freeze function."
    params:
      - name: operation
        type: integer
        description: "01h=freeze on, 02h=freeze off"

  - id: remote_key_code
    label: Remote Key Code
    kind: action
    command_hex: "02 0F 00 00 02 <DATA01> <DATA02> <CKS>"
    description: "Sends a remote control key code."
    params:
      - name: key_code
        type: integer
        description: "WORD key code (e.g. 0200h=POWER ON, 0300h=POWER OFF, 0500h=AUTO, 0600h=MENU, 13200h=VOLUME UP, 13300h=VOLUME DOWN, 13800h=FREEZE)"

  - id: shutter_close
    label: Shutter Close
    kind: action
    command_hex: "02 16 00 00 00 18"
    description: "Closes the lens shutter."
    params: []

  - id: shutter_open
    label: Shutter Open
    kind: action
    command_hex: "02 17 00 00 00 19"
    description: "Opens the lens shutter."
    params: []

  - id: lens_control
    label: Lens Control
    kind: action
    command_hex: "02 18 00 00 02 <DATA01> <DATA02> <CKS>"
    description: "Adjusts lens position (zoom, focus, lens shift)."
    params:
      - name: target
        type: integer
        description: "00h=Zoom, 01h=Focus, 02h=Lens Shift H, 03h=Lens Shift V, 06h=Periphery Focus"
      - name: content
        type: integer
        description: "00h=Stop, 01h=drive plus 1s, 02h=plus 0.5s, 03h=plus 0.25s, 7Fh=plus continuous, 81h=minus continuous, FDh=minus 0.25s, FEh=minus 0.5s, FFh=minus 1s"

  - id: lens_control_2
    label: Lens Control 2
    kind: action
    command_hex: "02 1D 00 00 04 <DATA01> <DATA02> <DATA03> <DATA04> <CKS>"
    description: "Adjusts lens position with absolute/relative values."
    params:
      - name: target
        type: integer
        description: "00h=Zoom, 01h=Focus, 02h=Lens Shift H, 03h=Lens Shift V, FFh=Stop"
      - name: mode
        type: integer
        description: "00h=absolute, 02h=relative"
      - name: value
        type: integer
        description: "16-bit adjustment value (low byte, high byte)"

  - id: lens_memory_control
    label: Lens Memory Control
    kind: action
    command_hex: "02 1E 00 00 01 <DATA01> <CKS>"
    description: "Controls the lens memory."
    params:
      - name: operation
        type: integer
        description: "00h=MOVE, 01h=STORE, 02h=RESET"

  - id: reference_lens_memory_control
    label: Reference Lens Memory Control
    kind: action
    command_hex: "02 1F 00 00 01 <DATA01> <CKS>"
    description: "Controls the reference lens memory."
    params:
      - name: operation
        type: integer
        description: "00h=MOVE, 01h=STORE, 02h=RESET"

  - id: lens_memory_option_set
    label: Lens Memory Option Set
    kind: action
    command_hex: "02 21 00 00 02 <DATA01> <DATA02> <CKS>"
    description: "Sets lens memory options."
    params:
      - name: target
        type: integer
        description: "00h=LOAD BY SIGNAL, 01h=FORCED MUTE"
      - name: value
        type: integer
        description: "00h=OFF, 01h=ON"

  - id: lens_profile_set
    label: Lens Profile Set
    kind: action
    command_hex: "02 27 00 00 01 <DATA01> <CKS>"
    description: "Selects the reference lens memory profile."
    params:
      - name: profile
        type: integer
        description: "00h=Profile 1, 01h=Profile 2"

  - id: eco_mode_set
    label: Eco Mode Set
    kind: action
    command_hex: "03 B1 00 00 02 07 <DATA01> <CKS>"
    description: "Sets the eco/lamp mode."
    params:
      - name: eco_mode
        type: integer
        description: "Value varies by model (see supplementary tables)"

  - id: lan_projector_name_set
    label: LAN Projector Name Set
    kind: action
    command_hex: "03 B1 00 00 12 2C <DATA01-16> 00 <CKS>"
    description: "Sets the projector name (up to 16 bytes)."
    params:
      - name: name
        type: string
        description: "Projector name up to 16 bytes"

  - id: pip_picture_by_picture_set
    label: PIP/Picture by Picture Set
    kind: action
    command_hex: "03 B1 00 00 03 C5 <DATA01> <DATA02> <CKS>"
    description: "Sets PIP or picture-by-picture mode."
    params:
      - name: target
        type: integer
        description: "00h=MODE, 01h=START POSITION, 02h=SUB INPUT"
      - name: value
        type: integer
        description: "Mode-specific value"

  - id: edge_blending_mode_set
    label: Edge Blending Mode Set
    kind: action
    command_hex: "03 B1 00 00 03 DF 00 <DATA01> <CKS>"
    description: "Sets edge blending on/off."
    params:
      - name: value
        type: integer
        description: "00h=OFF, 01h=ON"

  - id: audio_select_set
    label: Audio Select Set
    kind: action
    command_hex: "03 C9 00 00 03 09 <DATA01> <DATA02> <CKS>"
    description: "Sets the audio input selection."
    params:
      - name: input_terminal
        type: integer
        description: "Input terminal code"
      - name: audio_source
        type: integer
        description: "00h=same as terminal, 01h=BNC, 02h=COMPUTER"

Feedbacks

feedbacks:
  - id: error_status
    label: Error Status
    command_hex: "00 88 00 00 00 88"
    response_data: "DATA01-DATA12"
    description: "Returns error information as bit flags (cover error, fan error, temperature error, lamp errors, etc.)"

  - id: power_status
    label: Power Status
    description: "Queried via 078-2 RUNNING STATUS REQUEST or 305-3 BASIC INFORMATION REQUEST"
    values:
      - "00h: Standby (Sleep)"
      - "04h: Power on"
      - "05h: Cooling"
      - "06h: Standby (error)"
      - "0Fh: Standby (Power saving)"
      - "10h: Network standby"

  - id: running_status
    label: Running Status
    command_hex: "00 85 00 00 01 01 87"
    response_data: "DATA01-DATA16"
    description: "Returns power status, cooling status, power on/off process, and operation status."

  - id: input_status
    label: Input Status
    command_hex: "00 85 00 00 01 02 88"
    response_data: "DATA01-DATA16"
    description: "Returns current input signal type, signal list number, and display content."

  - id: mute_status
    label: Mute Status
    command_hex: "00 85 00 00 01 03 89"
    response_data: "DATA01-DATA06"
    description: "Returns picture mute, sound mute, onscreen mute, forced onscreen mute, and OSD status."
    values:
      - "00h: Off"
      - "01h: On"
      - "FFh: Not supported"

  - id: model_name
    label: Model Name
    command_hex: "00 85 00 00 01 04 8A"
    response_data: "DATA01-DATA32"
    description: "Returns the projector model name as NUL-terminated string."

  - id: cover_status
    label: Cover Status
    command_hex: "00 85 00 00 01 05 8B"
    response_data: "DATA01"
    description: "Returns mirror cover or lens cover status."
    values:
      - "00h: Normal (cover opened)"
      - "01h: Cover closed"

  - id: projector_information
    label: Projector Information
    command_hex: "03 8A 00 00 00 8D"
    response_data: "DATA01-DATA98"
    description: "Returns projector name, lamp usage time (seconds), filter usage time (seconds)."

  - id: filter_usage
    label: Filter Usage Information
    command_hex: "03 95 00 00 00 98"
    response_data: "DATA01-DATA08"
    description: "Returns filter usage time (seconds) and filter alarm start time (seconds). Returns -1 if undefined."

  - id: lamp_information
    label: Lamp Information
    command_hex: "03 96 00 00 02 <DATA01> <DATA02> <CKS>"
    response_data: "DATA01-DATA06"
    description: "Returns lamp usage time (seconds) or remaining life (%)."
    params:
      - name: target
        type: integer
        description: "00h=Lamp 1, 01h=Lamp 2"
      - name: content
        type: integer
        description: "01h=usage time (seconds), 04h=remaining life (%)"

  - id: carbon_savings
    label: Carbon Savings Information
    command_hex: "03 9A 00 00 01 <DATA01> <CKS>"
    response_data: "DATA01-DATA09"
    description: "Returns carbon savings in kg and mg."

  - id: gain_parameter
    label: Gain Parameter
    command_hex: "03 05 00 00 03 <DATA01> 00 00 <CKS>"
    response_data: "DATA01-DATA16"
    description: "Returns current value, upper/lower limits, default, and adjustment widths for a given parameter."
    params:
      - name: parameter
        type: integer
        description: "00h=Brightness, 01h=Contrast, 02h=Color, 03h=Hue, 04h=Sharpness, 05h=Volume, 96h=Lamp Adjust"

  - id: lens_control_request
    label: Lens Position
    command_hex: "02 1C 00 00 02 <DATA01> 00 <CKS>"
    response_data: "DATA01-DATA07"
    description: "Returns upper limit, lower limit, and current value for lens position."
    params:
      - name: target
        type: integer
        description: "00h=Zoom, 01h=Focus, 02h=Lens Shift H, 03h=Lens Shift V"

  - id: lens_information
    label: Lens Information
    command_hex: "02 22 00 00 01 00 25"
    response_data: "DATA01"
    description: "Returns lens motor operation status as bit flags (zoom, focus, lens shift H/V, lens memory)."

  - id: lens_memory_option
    label: Lens Memory Option
    command_hex: "02 20 00 00 01 <DATA01> <CKS>"
    response_data: "DATA01-DATA02"
    description: "Returns LOAD BY SIGNAL or FORCED MUTE setting."

  - id: lens_profile
    label: Lens Profile
    command_hex: "02 28 00 00 00 2A"
    response_data: "DATA01-DATA02"
    description: "Returns selected reference lens memory profile number."

  - id: setting_request
    label: Setting Request
    command_hex: "00 85 00 00 01 00 86"
    response_data: "DATA01-DATA32"
    description: "Returns base model type, sound function, and profile number."

  - id: information_string
    label: Information String
    command_hex: "00 D0 00 00 03 00 <DATA01> 01 <CKS>"
    response_data: "Variable length"
    description: "Returns horizontal or vertical sync frequency strings."
    params:
      - name: info_type
        type: integer
        description: "03h=horizontal sync frequency, 04h=vertical sync frequency"

  - id: eco_mode
    label: Eco Mode
    command_hex: "03 B0 00 00 01 07 BB"
    response_data: "DATA01"
    description: "Returns current eco/lamp mode setting."

  - id: lan_projector_name
    label: LAN Projector Name
    command_hex: "03 B0 00 00 01 2C E0"
    response_data: "DATA01-DATA17"
    description: "Returns the projector name (NUL-terminated string)."

  - id: mac_address
    label: MAC Address
    command_hex: "03 B0 00 00 02 9A 00 4F"
    response_data: "DATA01-DATA06"
    description: "Returns the projector MAC address."

  - id: pip_pbp_status
    label: PIP/Picture by Picture Status
    command_hex: "03 B0 00 00 02 C5 <DATA01> <CKS>"
    response_data: "DATA01-DATA02"
    description: "Returns PIP/PbP mode, start position, or sub-input setting."

  - id: edge_blending_status
    label: Edge Blending Status
    command_hex: "03 B0 00 00 02 DF 00 94"
    response_data: "DATA01"
    description: "Returns edge blending on/off."
    values:
      - "00h: OFF"
      - "01h: ON"

  - id: base_model_type
    label: Base Model Type
    command_hex: "00 BF 00 00 01 00 C0"
    response_data: "DATA01-DATA15"
    description: "Returns base model type codes and model name string."

  - id: serial_number
    label: Serial Number
    command_hex: "00 BF 00 00 02 01 06 C8"
    response_data: "DATA01-DATA16"
    description: "Returns serial number as NUL-terminated string."

  - id: basic_information
    label: Basic Information
    command_hex: "00 BF 00 00 01 02 C2"
    response_data: "DATA01-DATA15"
    description: "Returns operation status, content displayed, signal types, mute states, and freeze status."

Variables

variables:
  - id: volume
    label: Volume
    type: integer
    writable: true
    description: "Sound volume level, adjustable via 030-2 VOLUME ADJUST."

  - id: brightness
    label: Brightness
    type: integer
    writable: true
    description: "Picture brightness, adjustable via 030-1 PICTURE ADJUST (target 00h)."

  - id: contrast
    label: Contrast
    type: integer
    writable: true
    description: "Picture contrast, adjustable via 030-1 PICTURE ADJUST (target 01h)."

  - id: color
    label: Color
    type: integer
    writable: true
    description: "Picture color, adjustable via 030-1 PICTURE ADJUST (target 02h)."

  - id: hue
    label: Hue
    type: integer
    writable: true
    description: "Picture hue, adjustable via 030-1 PICTURE ADJUST (target 03h)."

  - id: sharpness
    label: Sharpness
    type: integer
    writable: true
    description: "Picture sharpness, adjustable via 030-1 PICTURE ADJUST (target 04h)."

  - id: lamp_output
    label: Lamp/Light Output
    type: integer
    writable: true
    description: "Lamp adjust / light adjust, adjustable via 030-15 OTHER ADJUST."

  - id: lamp_usage_time
    label: Lamp Usage Time
    type: integer
    writable: false
    unit: seconds
    description: "Queried via 037 INFORMATION REQUEST or 037-4 LAMP INFORMATION REQUEST 3."

  - id: filter_usage_time
    label: Filter Usage Time
    type: integer
    writable: false
    unit: seconds
    description: "Queried via 037-3 FILTER USAGE INFORMATION REQUEST."

  - id: lamp_remaining_life
    label: Lamp Remaining Life
    type: integer
    writable: false
    unit: percent
    description: "Queried via 037-4 LAMP INFORMATION REQUEST 3 (content 04h). Negative if replacement deadline exceeded."

  - id: eco_mode
    label: Eco Mode
    type: integer
    writable: true
    description: "Eco/lamp mode setting, queried/set via 097-8/098-8. Values vary by model."

Events

# UNRESOLVED: no unsolicited event/notification mechanism documented in source

Macros

# UNRESOLVED: no multi-step macro sequences documented in source

Safety

confirmation_required_for: []
interlocks: []
notes: >
  While powering on or off (including cooling period), no other commands can be accepted.
  The error status request (009) provides interlock-relevant data: cover error, temperature
  error, fan error, lamp errors, interlock switch status (DATA09 Bit1), and foreign matter
  sensor error. These are query-only; the source does not describe automatic interlock
  behavior beyond command rejection during power transitions.
# UNRESOLVED: no explicit safety interlock procedures or power-on sequencing requirements documented

Notes

  • Binary protocol: all commands and responses are hexadecimal byte sequences with a trailing checksum byte (low-order 8 bits of the sum of all preceding bytes).
  • Commands include model-specific parameters ID1 (control ID) and ID2 (model code) in responses.
  • Error responses return ERR1 and ERR2 codes; see error code table in source for details.
  • Command support varies significantly by model; consult the "Supported Command List" appendix in the source for per-model availability.
  • Input terminal codes are model-specific; consult the "Supplementary Information by Command" appendix.
  • Some models cannot receive commands in standby mode; see "Standby Mode setting for receiving commands" appendix.
  • Lens control continuous drive (7Fh/81h) requires sending 00h to stop.
  • Picture mute and sound mute are auto-released on input switch or signal switch.
  • Lamp usage time is updated at one-minute intervals despite being reported in seconds.

Provenance

source_domains:
  - sharpdisplays.eu
source_urls:
  - https://www.sharpdisplays.eu/p/download/cp/Products/Projectors/Shared/CommandLists/NEC-ExternalControlManual-english.pdf
retrieved_at: 2026-04-29T13:52:17.262Z
last_checked_at: 2026-06-02T22:11:04.502Z

Verification Summary

verdict: verified
checked_at: 2026-06-02T22:11:04.502Z
matched_actions: 28
action_count: 28
confidence: medium
summary: "All 28 spec actions traced to source (dip-safe re-verify). (10 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "exact list of all compatible models is extensive; the source covers NP4100 through NP-VE303X series; only NP-P and related series are listed above as primary targets"
- "flow control not stated beyond RTS/CTS pin wiring"
- "no unsolicited event/notification mechanism documented in source"
- "no multi-step macro sequences documented in source"
- "no explicit safety interlock procedures or power-on sequencing requirements documented"
- "exact control ID and model code values for each projector model not specified in source"
- "no warm-up or cooldown timing values specified"
- "LAN connection parameters beyond TCP port 7142 not specified"
- "no notification/subscription mechanism for unsolicited status updates"
- "eco mode values are model-specific and require supplementary lookup tables"

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