Summary

NEC NP-PA Series professional installation projectors. This spec covers binary control via RS-232C serial and TCP/IP network connections. The protocol uses hex-encoded command frames with checksum validation, supporting power control, input switching, picture/audio adjustment, lens control, shutter, freeze, eco mode, edge blending, and extensive status queries.

Transport

protocols:
  - serial
  - tcp
addressing:
  port: 7142  # TCP port for network control
serial:
  baud_rate: [115200, 38400, 19200, 9600, 4800]
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: UNRESOLVED  # Source does not specify flow control.
auth:
  type: UNRESOLVED  # Source does not specify an authentication method.

Traits

traits:
  - powerable    # power on/off commands (015, 016)
  - routable     # input switching command (018)
  - queryable    # extensive status request commands (037, 078, 305)
  - levelable    # volume, brightness, contrast, color, hue, sharpness, lamp adjust (030-1, 030-2, 030-15)
  - mutable      # picture mute, sound mute, onscreen mute (020-025)

Actions

actions:
  - id: power_on
    label: Power On
    kind: action
    command: "02h 00h 00h 00h 00h 02h"
    params: []
    notes: No other commands accepted while powering on.

  - id: power_off
    label: Power Off
    kind: action
    command: "02h 01h 00h 00h 00h 03h"
    params: []
    notes: No other commands accepted during power-off including cooling time.

  - id: input_switch
    label: Switch Input
    kind: action
    command: "02h 03h 00h 00h 02h 01h <DATA01> <CKS>"
    params:
      - name: input_terminal
        type: integer
        description: "Input terminal hex code - varies by model. Examples: COMPUTER=01h, VIDEO=06h, HDMI=A1h, DisplayPort=A6h, HDBaseT=BFh. See supplementary tables in source."
    response:
      success_data01: "00h = ended successfully, FFh = ended with error (no signal switch)"
    notes: Input terminal codes are model-specific. See Section 4 supplementary tables.

  - id: picture_mute_on
    label: Picture Mute On
    kind: action
    command: "02h 10h 00h 00h 00h 12h"
    params: []
    notes: Mute is cancelled by input terminal switch or video signal switch.

  - id: picture_mute_off
    label: Picture Mute Off
    kind: action
    command: "02h 11h 00h 00h 00h 13h"
    params: []

  - id: sound_mute_on
    label: Sound Mute On
    kind: action
    command: "02h 12h 00h 00h 00h 14h"
    params: []
    notes: Mute is cancelled by input switch, video signal switch, or volume adjustment.

  - id: sound_mute_off
    label: Sound Mute Off
    kind: action
    command: "02h 13h 00h 00h 00h 15h"
    params: []

  - id: onscreen_mute_on
    label: Onscreen Mute On
    kind: action
    command: "02h 14h 00h 00h 00h 16h"
    params: []

  - id: onscreen_mute_off
    label: Onscreen Mute Off
    kind: action
    command: "02h 15h 00h 00h 00h 17h"
    params: []

  - id: shutter_close
    label: Shutter Close
    kind: action
    command: "02h 16h 00h 00h 00h 18h"
    params: []

  - id: shutter_open
    label: Shutter Open
    kind: action
    command: "02h 17h 00h 00h 00h 19h"
    params: []

  - id: freeze_on
    label: Freeze On
    kind: action
    command: "01h 98h 00h 00h 01h 01h <CKS>"
    params: []

  - id: freeze_off
    label: Freeze Off
    kind: action
    command: "01h 98h 00h 00h 01h 02h <CKS>"
    params: []

  - id: picture_adjust
    label: Picture Adjust
    kind: action
    command: "03h 10h 00h 00h 05h <DATA01> FFh <MODE> <VALUE_LO> <VALUE_HI> <CKS>"
    params:
      - name: target
        type: integer
        description: "00h=Brightness, 01h=Contrast, 02h=Color, 03h=Hue, 04h=Sharpness"
      - name: mode
        type: integer
        description: "00h=absolute value, 01h=relative value"
      - name: value
        type: integer
        description: "16-bit signed adjustment value (low byte, high byte)"

  - id: volume_adjust
    label: Volume Adjust
    kind: action
    command: "03h 10h 00h 00h 05h 05h 00h <MODE> <VALUE_LO> <VALUE_HI> <CKS>"
    params:
      - name: mode
        type: integer
        description: "00h=absolute value, 01h=relative value"
      - name: value
        type: integer
        description: "16-bit signed adjustment value"

  - id: aspect_adjust
    label: Aspect Adjust
    kind: action
    command: "03h 10h 00h 00h 05h 18h 00h 00h <DATA01> 00h <CKS>"
    params:
      - name: aspect
        type: integer
        description: "Aspect value - model-specific. For the listed NP-PA models, 0Eh=NATIVE and 0Fh=AUTO; see supplementary tables."

  - id: lamp_adjust
    label: Lamp/Light Adjust
    kind: action
    command: "03h 10h 00h 00h 05h <DATA01> <DATA02> <MODE> <VALUE_LO> <VALUE_HI> <CKS>"
    params:
      - name: target
        type: integer
        description: "Two-byte target in DATA01-DATA02. Source lists 96h / FFh for LAMP ADJUST / LIGHT ADJUST but does not unambiguously assign the bytes to those values."
      - name: mode
        type: integer
        description: "00h=absolute value, 01h=relative value"
      - name: value
        type: integer
        description: "16-bit signed adjustment value"

  - id: lens_control
    label: Lens Control (Drive)
    kind: action
    command: "02h 18h 00h 00h 02h <TARGET> <DIRECTION> <CKS>"
    params:
      - name: target
        type: integer
        description: "00h=Zoom, 01h=Focus, 02h=Lens Shift H, 03h=Lens Shift V, 06h=Periphery Focus"
      - name: direction
        type: integer
        description: "00h=Stop, 01h=+1s, 02h=+0.5s, 03h=+0.25s, 7Fh=plus continuous, 81h=minus continuous, FDh=-0.25s, FEh=-0.5s, FFh=-1s"

  - id: lens_control_2
    label: Lens Control 2 (Absolute/Relative)
    kind: action
    command: "02h 1Dh 00h 00h 04h <TARGET> <MODE> <VALUE_LO> <VALUE_HI> <CKS>"
    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 value, 02h=relative value"
      - name: value
        type: integer
        description: "16-bit adjustment value"

  - id: lens_memory_control
    label: Lens Memory Control
    kind: action
    command: "02h 1Eh 00h 00h 01h <OPERATION> <CKS>"
    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: "02h 1Fh 00h 00h 01h <OPERATION> <CKS>"
    params:
      - name: operation
        type: integer
        description: "00h=MOVE, 01h=STORE, 02h=RESET"

  - id: lens_profile_set
    label: Lens Profile Set
    kind: action
    command: "02h 27h 00h 00h 01h <PROFILE> <CKS>"
    params:
      - name: profile
        type: integer
        description: "00h=Profile 1, 01h=Profile 2"

  - id: lens_memory_option_set
    label: Lens Memory Option Set
    kind: action
    command: "02h 21h 00h 00h 02h <TARGET> <VALUE> <CKS>"
    params:
      - name: target
        type: integer
        description: "00h=LOAD BY SIGNAL, 01h=FORCED MUTE"
      - name: value
        type: integer
        description: "00h=OFF, 01h=ON"

  - id: remote_key_code
    label: Remote Key Code
    kind: action
    command: "02h 0Fh 00h 00h 02h <KEY_LO> <KEY_HI> <CKS>"
    params:
      - name: key_code
        type: integer
        description: "WORD key code. Examples: 02h=POWER ON, 03h=POWER OFF, 05h=AUTO, 06h=MENU, 07h=UP, 08h=DOWN, 09h=RIGHT, 0Ah=LEFT, 0Bh=ENTER, 0Ch=EXIT"

  - id: eco_mode_set
    label: Eco Mode Set
    kind: action
    command: "03h B1h 00h 00h 02h 07h <VALUE> <CKS>"
    params:
      - name: value
        type: integer
        description: "Model-specific eco mode value. See supplementary tables."

  - id: projector_name_set
    label: Projector Name Set
    kind: action
    command: "03h B1h 00h 00h 12h 2Ch <DATA01-16> 00h <CKS>"
    params:
      - name: name
        type: string
        description: "Projector name up to 16 bytes"

  - id: edge_blending_set
    label: Edge Blending Set
    kind: action
    command: "03h B1h 00h 00h 03h DFh 00h <VALUE> <CKS>"
    params:
      - name: value
        type: integer
        description: "00h=OFF, 01h=ON"

  - id: pip_pbp_set
    label: PIP/Picture-by-Picture Set
    kind: action
    command: "03h B1h 00h 00h 03h C5h <TARGET> <VALUE> <CKS>"
    params:
      - name: target
        type: integer
        description: "00h=MODE, 01h=START POSITION, 02h=SUB INPUT/SUB INPUT 1, 09h=SUB INPUT 2, 0Ah=SUB INPUT 3"
      - name: value
        type: integer
        description: "MODE: 00h=PIP, 01h=PICTURE BY PICTURE. START POSITION: 00h=TOP-LEFT, 01h=TOP-RIGHT, 02h=BOTTOM-LEFT, 03h=BOTTOM-RIGHT. Sub-input values are model-specific."

  - id: audio_select_set
    label: Audio Select Set
    kind: action
    command: "03h C9h 00h 00h 03h 09h <INPUT> <VALUE> <CKS>"
    params:
      - name: input_terminal
        type: integer
        description: "Input terminal code; see supplementary tables."
      - name: value
        type: integer
        description: "UNRESOLVED: source section 3.53 gives 00h=the terminal specified in DATA01, 01h=BNC, 02h=COMPUTER; the appendix gives model-specific DATA02 mappings that conflict with this enumeration."

  - id: carbon_savings_information_request
    label: Carbon Savings Information Request
    kind: action
    command: "03h  9Ah  00h  00h  01h _<DATA01> <CKS>_"
    params:
      - name: target
        type: integer
        description: "00h=Total Carbon Savings, 01h=Carbon Savings during operation"

Feedbacks

feedbacks:
  - id: error_status
    label: Error Status
    type: binary_flags
    command: "00h 88h 00h 00h 00h 88h"
    query_command: "009. ERROR STATUS REQUEST"
    response_bytes: 12
    description: "12 bytes of bit-flagged error info (cover error, fan error, temp error, lamp error, etc.)"

  - id: projector_info
    label: Projector Information
    type: composite
    command: "03h 8Ah 00h 00h 00h 8Dh"
    query_command: "037. INFORMATION REQUEST"
    response_fields:
      - name: projector_name
        offset: "DATA01-49"
        description: "NUL-terminated string"
      - name: lamp_usage_seconds
        offset: "DATA83-86"
        description: "Lamp usage time in seconds (updated at 1-min intervals)"
      - name: filter_usage_seconds
        offset: "DATA87-90"
        description: "Filter usage time in seconds"

  - id: lamp_info
    label: Lamp Information
    type: composite
    command: "03h 96h 00h 00h 02h <LAMP> <CONTENT> <CKS>"
    query_command: "037-4. LAMP INFORMATION REQUEST 3"
    params:
      - name: lamp
        description: "00h=Lamp 1, 01h=Lamp 2 (two-lamp models only)"
      - name: content
        description: "01h=usage time (seconds), 04h=remaining life (%)"

  - id: filter_usage_info
    label: Filter Usage Information
    type: composite
    command: "03h 95h 00h 00h 00h 98h"
    query_command: "037-3. FILTER USAGE INFORMATION REQUEST"
    response_fields:
      - name: filter_usage_seconds
        offset: "DATA01-04"
      - name: filter_alarm_start_seconds
        offset: "DATA05-08"

  - id: running_status
    label: Running Status
    type: composite
    command: "00h 85h 00h 00h 01h 01h 87h"
    query_command: "078-2. RUNNING STATUS REQUEST"
    response_fields:
      - name: power_status
        offset: "DATA03"
        values: "00h=Standby, 01h=Power On, FFh=Not supported"
      - name: cooling_process
        offset: "DATA04"
        values: "00h=Not executing, 01h=During execution"
      - name: power_onoff_process
        offset: "DATA05"
        values: "00h=Not executing, 01h=During execution"
      - name: operation_status
        offset: "DATA06"
        values: "00h=Standby(Sleep), 04h=Power On, 05h=Cooling, 06h=Standby(error), 0Fh=Standby(Power saving), 10h=Network standby"

  - id: input_status
    label: Input Status
    type: composite
    command: "00h 85h 00h 00h 01h 02h 88h"
    query_command: "078-3. INPUT STATUS REQUEST"
    response_fields:
      - name: signal_switch_process
        offset: "DATA01"
      - name: signal_type_1
        offset: "DATA03"
      - name: signal_type_2
        offset: "DATA04"
        values: "01h=COMPUTER, 02h=VIDEO, 03h=S-VIDEO, 04h=COMPONENT, 20h=DVI-D, 21h=HDMI, 22h=DisplayPort"
      - name: content_displayed
        offset: "DATA09"
        values: "00h=Video signal, 01h=No signal, 02h=Viewer, 03h=Test pattern"

  - id: mute_status
    label: Mute Status
    type: composite
    command: "00h 85h 00h 00h 01h 03h 89h"
    query_command: "078-4. MUTE STATUS REQUEST"
    response_fields:
      - name: picture_mute
        offset: "DATA01"
        values: "00h=Off, 01h=On"
      - name: sound_mute
        offset: "DATA02"
        values: "00h=Off, 01h=On"
      - name: onscreen_mute
        offset: "DATA03"
        values: "00h=Off, 01h=On"

  - id: model_name
    label: Model Name
    type: string
    command: "00h 85h 00h 00h 01h 04h 8Ah"
    query_command: "078-5. MODEL NAME REQUEST"
    response_description: "32-byte NUL-terminated model name string"

  - id: cover_status
    label: Cover Status
    type: enum
    command: "00h 85h 00h 00h 01h 05h 8Bh"
    query_command: "078-6. COVER STATUS REQUEST"
    values: ["00h=Normal (cover opened)", "01h=Cover closed"]

  - id: lens_control_request
    label: Lens Position
    type: composite
    command: "02h 1Ch 00h 00h 02h <TARGET> 00h <CKS>"
    query_command: "053-1. LENS CONTROL REQUEST"
    params:
      - name: target
        description: "00h=Zoom, 01h=Focus, 02h=Lens Shift H, 03h=Lens Shift V"
    response_fields:
      - name: upper_limit
        description: "16-bit value"
      - name: lower_limit
        description: "16-bit value"
      - name: current_value
        description: "16-bit value"

  - id: lens_info
    label: Lens Operation Status
    type: binary_flags
    command: "02h 22h 00h 00h 01h 00h 25h"
    query_command: "053-7. LENS INFORMATION REQUEST"
    response_description: "Bit flags: Bit0=Lens Memory, Bit1=Zoom, Bit2=Focus, Bit3=Lens Shift H, Bit4=Lens Shift V (0=Stop, 1=Operating)"

  - id: lens_profile_request
    label: Lens Profile
    type: enum
    command: "02h 28h 00h 00h 00h 2Ah"
    query_command: "053-11. LENS PROFILE REQUEST"
    values: ["00h=Profile 1", "01h=Profile 2"]

  - id: lens_memory_option_request
    label: Lens Memory Option
    type: composite
    command: "02h 20h 00h 00h 01h <TARGET> <CKS>"
    query_command: "053-5. LENS MEMORY OPTION REQUEST"
    params:
      - name: target
        description: "00h=LOAD BY SIGNAL, 01h=FORCED MUTE"
    response_values: "00h=OFF, 01h=ON"

  - id: gain_parameter
    label: Gain Parameter
    type: composite
    command: "03h 05h 00h 00h 03h <GAIN_ID> 00h 00h <CKS>"
    query_command: "060-1. GAIN PARAMETER REQUEST 3"
    params:
      - name: gain_id
        description: "00h=Brightness, 01h=Contrast, 02h=Color, 03h=Hue, 04h=Sharpness, 05h=Volume, 96h=Lamp Adjust"
    response_fields:
      - name: status
        description: "00h=display not possible, 01h=adjust not possible, 02h=adjustable, FFh=gain does not exist"
      - name: upper_limit
      - name: lower_limit
      - name: default_value
      - name: current_value

  - id: eco_mode_request
    label: Eco Mode
    type: integer
    command: "03h B0h 00h 00h 01h 07h BBh"
    query_command: "097-8. ECO MODE REQUEST"
    response_description: "Eco mode value - model-specific"

  - id: projector_name_request
    label: Projector Name
    type: string
    command: "03h B0h 00h 00h 01h 2Ch E0h"
    query_command: "097-45. LAN PROJECTOR NAME REQUEST"
    response_description: "17-byte NUL-terminated projector name"

  - id: mac_address_request
    label: MAC Address
    type: string
    command: "03h B0h 00h 00h 02h 9Ah 00h 4Fh"
    query_command: "097-155. LAN MAC ADDRESS STATUS REQUEST2"
    response_description: "6-byte MAC address"

  - id: edge_blending_request
    label: Edge Blending Mode
    type: enum
    command: "03h B0h 00h 00h 02h DFh 00h 94h"
    query_command: "097-243-1. EDGE BLENDING MODE REQUEST"
    values: ["00h=OFF", "01h=ON"]

  - id: pip_pbp_request
    label: PIP/Picture-by-Picture
    type: composite
    command: "03h B0h 00h 00h 02h C5h <TARGET> <CKS>"
    query_command: "097-198. PIP/PICTURE BY PICTURE REQUEST"
    response_description: "Returns mode, position, or sub-input based on target parameter"

  - id: basic_information
    label: Basic Information
    type: composite
    command: "00h BFh 00h 00h 01h 02h C2h"
    query_command: "305-3. BASIC INFORMATION REQUEST"
    response_fields:
      - name: operation_status
        offset: "DATA01"
        values: "00h=Standby(Sleep), 04h=Power On, 05h=Cooling, 06h=Standby(error), 0Fh=Standby(Power saving), 10h=Network standby"
      - name: content_displayed
        offset: "DATA02"
      - name: signal_type
        offset: "DATA03-DATA04"
      - name: video_mute
        offset: "DATA06"
      - name: sound_mute
        offset: "DATA07"
      - name: freeze_status
        offset: "DATA09"

  - id: base_model_type_request
    label: Base Model Type
    type: composite
    command: "00h BFh 00h 00h 01h 00h C0h"
    query_command: "305-1. BASE MODEL TYPE REQUEST"
    response_fields:
      - name: base_model_type
        description: "2-byte type code"
      - name: model_name
        description: "NUL-terminated string"

  - id: serial_number_request
    label: Serial Number
    type: string
    command: "00h BFh 00h 00h 02h 01h 06h C8h"
    query_command: "305-2. SERIAL NUMBER REQUEST"
    response_description: "16-byte NUL-terminated serial number"

  - id: info_string_request
    label: Information String
    type: string
    command: "00h D0h 00h 00h 03h 00h <TYPE> 01h <CKS>"
    query_command: "084. INFORMATION STRING REQUEST"
    params:
      - name: type
        description: "03h=Horizontal sync frequency, 04h=Vertical sync frequency"

  - id: setting_request
    label: Setting Information
    type: composite
    command: "00h 85h 00h 00h 01h 00h 86h"
    query_command: "078-1. SETTING REQUEST"
    response_fields:
      - name: base_model_type
        offset: "DATA01-03"
      - name: sound_function
        offset: "DATA04"
        values: "00h=Not available, 01h=Available"

Variables

variables:
  - id: volume
    label: Volume
    type: integer
    min: null  # UNRESOLVED: range not stated; use gain_parameter request to discover
    max: null
    command: volume_adjust

  - id: brightness
    label: Brightness
    type: integer
    command: picture_adjust
    target_code: "00h"

  - id: contrast
    label: Contrast
    type: integer
    command: picture_adjust
    target_code: "01h"

  - id: color
    label: Color
    type: integer
    command: picture_adjust
    target_code: "02h"

  - id: hue
    label: Hue
    type: integer
    command: picture_adjust
    target_code: "03h"

  - id: sharpness
    label: Sharpness
    type: integer
    command: picture_adjust
    target_code: "04h"

  - id: lamp_adjust
    label: Lamp Adjust / Light Adjust
    type: integer
    command: lamp_adjust

  - id: eco_mode
    label: Eco Mode
    type: integer
    command: eco_mode_set
    notes: Values are model-specific. See supplementary tables.

  - id: aspect
    label: Aspect Ratio
    type: integer
    command: aspect_adjust
    notes: Values are model-specific.

  - id: projector_name
    label: Projector Name
    type: string
    max_length: 16
    command: projector_name_set

Events

# UNRESOLVED: no unsolicited event/notification mechanism described in source.
# All responses are synchronous replies to commands.

Macros

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

Safety

confirmation_required_for: []
interlocks: []
notes: >
  Power ON and Power OFF commands block all other commands during execution
  (including cooling period for power off). The error status request (009) provides
  bit-flagged hardware error detection including cover, fan, temperature, lamp,
  and interlock switch status.
# UNRESOLVED: source mentions interlock switch (DATA09 Bit1) but no explicit
# interlock procedure is documented in the command reference.

Notes

  • All commands and responses are binary (hex-encoded) with a simple additive checksum (low byte of sum of all preceding bytes).
  • Commands include <ID1> (control ID) and <ID2> (model code) parameters in responses.
  • Error responses use a standard format with ERR1/ERR2 codes. See error code table in source Section 2.4.
  • Lens control supports both timed drive (0.25s/0.5s/1s) and continuous drive modes. Continuous drive requires an explicit stop command.
  • Input terminal hex codes and eco mode values vary significantly across NP-PA sub-models. Consult the supplementary tables in Sections 4 for exact mappings.
  • Lamp usage time and filter usage time are returned in seconds but updated at one-minute intervals.
  • Some models cannot receive commands in standby mode.

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:25.396Z
last_checked_at: 2026-10-07T15:43:21.947Z

Verification Summary

verdict: verified
checked_at: 2026-10-07T15:43:21.947Z
matched_actions: 54
action_count: 54
confidence: medium
summary: "All 54 action units match source frames and shapes, transport values are supported, and the spec covers every source command (about 53), so the ratio is above 0.9. (14 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "exact model-specific input terminal hex codes vary by model — see supplementary tables in source"
- "eco mode values vary by model subgroup"
- "some models cannot receive commands in standby mode — see Appendix \"Standby Mode setting for receiving commands\""
- "source section 3.53 gives 00h=the terminal specified in DATA01, 01h=BNC, 02h=COMPUTER; the appendix gives model-specific DATA02 mappings that conflict with this enumeration.\""
- "range not stated; use gain_parameter request to discover"
- "no unsolicited event/notification mechanism described in source."
- "no multi-step macro sequences described in source"
- "source mentions interlock switch (DATA09 Bit1) but no explicit"
- "exact control ID (ID1) and model code (ID2) values not specified in source — likely configured per projector"
- "supported input terminal codes are model-specific; only representative examples listed"
- "eco mode, aspect ratio values are model-specific"
- "maximum/minimum values for picture and volume adjustment ranges not stated; must be queried via gain parameter request (060-1)"
- "standby mode command reception capability varies by model"
- "document revision is BDT140013 Rev 7.1 / BDT140014 Rev 29.0; firmware compatibility ranges not stated"

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