Summary

Sharp PN-M Series professional displays support external control via RS-232C serial and LAN (Telnet-style TCP) connections. Ordinary commands use a fixed 4-character command field plus 4-character parameter field; commands with longer parameters use their specified payload lengths. Up to 4 monitors can be daisy-chained via RS-232C with individual ID addressing (1–255). This spec covers power, input selection, picture adjustment, PIP/multi-screen, scheduling, LAN setup, and diagnostic queries.

Transport

protocols:
  - serial
  - tcp
serial:
  baud_rate: 38400
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none
addressing:
  port: 10008
auth:
  type: credential
  method: telnet_login
  description: >-
    LAN connection requires Telnet-style login sequence.
    Connect to IP:10008, receive "Login:" prompt, send username + space,
    receive "Password:" prompt, send password + space.
    If credentials not set, send space for each.
    Successful login returns "OK ". Send "QUIT " to disconnect.
    RS-232C authentication requirements are UNRESOLVED: the source does not specify them.

Traits

traits:
  - powerable     # inferred from POWR command
  - queryable     # inferred from multiple R-direction commands
  - routable      # inferred from INPS input selection and MWIP PIP source
  - levelable     # inferred from VOLM volume and VLMP brightness controls

Actions

actions:
  - id: power_standby
    label: Power Standby
    kind: action
    command: POWR0000
    description: Switches monitor to standby mode
    params: []

  - id: power_on
    label: Power On
    kind: action
    command: POWR0001
    description: Returns from standby mode
    params: []

  - id: input_toggle
    label: Input Toggle
    kind: action
    command: INPS0000
    description: Toggle change for input mode
    params: []

  - id: select_input
    label: Select Input
    kind: action
    command: "INPS????"
    description: Selects input source
    params:
      - name: input
        type: integer
        enum:
          - value: 2
            label: D-SUB RGB
          - value: 3
            label: D-SUB Component
          - value: 10
            label: HDMI1
          - value: 13
            label: HDMI2
          - value: 14
            label: DisplayPort
          - value: 21
            label: OPTION
          - value: 24
            label: APPLICATION
        description: Input source number (zero-padded to 4 digits)

  - id: set_brightness
    label: Set Brightness
    kind: action
    command: "VLMP????"
    description: Sets brightness level
    params:
      - name: level
        type: integer
        min: 0
        max: 31
        description: Brightness level (zero-padded to 4 digits)

  - id: set_color_mode
    label: Set Color Mode
    kind: action
    command: "BMOD????"
    description: Sets color mode
    params:
      - name: mode
        type: integer
        enum:
          - value: 0
            label: STD
          - value: 2
            label: VIVID
          - value: 3
            label: sRGB
          - value: 4
            label: HIGH ILLUMINANCE
        description: Color mode value (zero-padded to 4 digits)

  - id: set_white_balance
    label: Set White Balance Mode
    kind: action
    command: "WHBL????"
    description: Sets white balance mode
    params:
      - name: mode
        type: integer
        enum:
          - value: 0
            label: THRU
          - value: 1
            label: PRESET
          - value: 2
            label: USER
        description: White balance mode (zero-padded to 4 digits)

  - id: set_color_temperature
    label: Set Color Temperature Preset
    kind: action
    command: "CTMP????"
    description: Sets color temperature preset (1=3000K to 15=10000K in 500K steps, 16=5600K, 17=9300K, 18=3200K, 19=10500K to 28=15000K). ERR when WHBL is not set to 1.
    params:
      - name: preset
        type: integer
        min: 1
        max: 28
        description: Color temperature preset number (zero-padded to 4 digits)

  - id: set_r_contrast
    label: Set R-Contrast
    kind: action
    command: "CRTR????"
    description: Sets red contrast. ERR when WHBL is not set to 2.
    params:
      - name: value
        type: integer
        min: 0
        max: 256
        description: Red contrast value (zero-padded to 4 digits)

  - id: set_g_contrast
    label: Set G-Contrast
    kind: action
    command: "CRTG????"
    description: Sets green contrast. ERR when WHBL is not set to 2.
    params:
      - name: value
        type: integer
        min: 0
        max: 256
        description: Green contrast value (zero-padded to 4 digits)

  - id: set_b_contrast
    label: Set B-Contrast
    kind: action
    command: "CRTB????"
    description: Sets blue contrast. ERR when WHBL is not set to 2.
    params:
      - name: value
        type: integer
        min: 0
        max: 256
        description: Blue contrast value (zero-padded to 4 digits)

  - id: set_r_offset
    label: Set R-Offset
    kind: action
    command: "OFSR????"
    description: Sets red offset
    params:
      - name: value
        type: integer
        min: -127
        max: 127
        description: Red offset value (3-digit signed, zero-padded)

  - id: set_g_offset
    label: Set G-Offset
    kind: action
    command: "OFSG????"
    description: Sets green offset
    params:
      - name: value
        type: integer
        min: -127
        max: 127
        description: Green offset value (3-digit signed, zero-padded)

  - id: set_b_offset
    label: Set B-Offset
    kind: action
    command: "OFSB????"
    description: Sets blue offset
    params:
      - name: value
        type: integer
        min: -127
        max: 127
        description: Blue offset value (3-digit signed, zero-padded)

  - id: copy_preset_to_user
    label: Copy Preset to User
    kind: action
    command: CPTU0000
    description: Copies a preset value to the user setting
    params: []

  - id: set_rgb_input_range
    label: Set RGB Input Range
    kind: action
    command: "INPR????"
    description: Sets RGB input range. ERR when input is D-SUB RGB, D-SUB Component, or APPLICATION.
    params:
      - name: range
        type: integer
        enum:
          - value: 0
            label: AUTO
          - value: 1
            label: FULL
          - value: 2
            label: LIMITED
        description: RGB input range (zero-padded to 4 digits)

  - id: set_date_time
    label: Set Date/Time
    kind: action
    command: DATE
    description: Sets date and time. Append the ten-character datetime payload AABBCCDDEE directly to the DATE command field, without spaces.
    params:
      - name: datetime
        type: string
        description: 10-digit string AABBCCDDEE (AA=Year, BB=Month, CC=Day, DD=Hour, EE=Minute)

  - id: set_schedule
    label: Set Schedule
    kind: action
    command: SC01
    description: Sets schedule. Select the command field SC01-SC08 using schedule_num, then append the ten-character parameter ABCDEFFGGH without spaces. A=effective(0/1), B=power(0=OFF/1=ON/2=Android restart), C=day pattern(0=once/1=weekly/2=daily), D=day1(0=Sun..6=Sat/9=NA), E=day2(0=Sun..6=Sat/9=NA), FF=hour(00-23), GG=minute(00-59), H=input(0=unspecified/1=APP/2=DP/3=HDMI1/4=HDMI2/5=D-SUB/6=OPTION)
    params:
      - name: schedule_num
        type: integer
        min: 1
        max: 8
        description: Schedule number (01-08); replace the final two digits of the command field with this zero-padded number.
      - name: param
        type: string
        description: 10-character schedule parameter string ABCDEFFGGH

  - id: set_schedule_brightness
    label: Set Schedule Brightness
    kind: action
    command: "SBXX????"
    description: Sets screen brightness for schedule (SB01-SB08). Value 0-31 or 99 to disable.
    params:
      - name: schedule_num
        type: integer
        min: 1
        max: 8
        description: Schedule number (01-08)
      - name: brightness
        type: integer
        description: Brightness 0-31 or 99 to disable (zero-padded to 4 digits)

  - id: set_control_interface
    label: Set Control Interface
    kind: action
    command: "CTLS????"
    description: Selects RS-232C or LAN control
    params:
      - name: interface
        type: integer
        enum:
          - value: 0
            label: RS-232C
          - value: 1
            label: LAN
        description: Interface selection (zero-padded to 4 digits)

  - id: set_id_number
    label: Set ID Number
    kind: action
    command: "IDST????"
    description: Sets monitor ID number (0 means no ID number)
    params:
      - name: id
        type: integer
        min: 0
        max: 255
        description: Monitor ID number (zero-padded to 4 digits)

  - id: set_id_once
    label: Set ID Once (IDSL)
    kind: action
    command: "IDSL????"
    description: Sets target monitor ID for the immediately next command only. 0 clears designation.
    params:
      - name: id
        type: integer
        min: 0
        max: 255
        description: Monitor ID number (zero-padded to 4 digits)

  - id: set_id_subsequent
    label: Set ID Subsequent (IDLK)
    kind: action
    command: "IDLK????"
    description: Sets target monitor ID for all subsequent commands. Remains until canceled or power off. 0 clears.
    params:
      - name: id
        type: integer
        min: 0
        max: 255
        description: Monitor ID number (zero-padded to 4 digits)

  - id: check_id
    label: Check ID
    kind: action
    command: IDCK0000
    description: Displays monitor's own ID and selected IDLK ID on screen. Response format "ID : xxx  IDLK : yyy"
    params: []

  - id: set_id_display
    label: Set ID Display
    kind: action
    command: "IDDP????"
    description: Controls on-screen display of IP/MAC address and ID
    params:
      - name: mode
        type: integer
        enum:
          - value: 0
            label: OFF
          - value: 1
            label: ON
          - value: 2
            label: "ON (auto-off after 4 sec)"
        description: Display mode (zero-padded to 4 digits)

  - id: set_orientation
    label: Set Orientation
    kind: action
    command: "STDR????"
    description: Sets portrait or landscape orientation
    params:
      - name: orientation
        type: integer
        enum:
          - value: 0
            label: LANDSCAPE
          - value: 1
            label: PORTRAIT
        description: Orientation (zero-padded to 4 digits)

  - id: set_horizontal_install
    label: Set Horizontal Installation
    kind: action
    command: "MLAY????"
    description: Sets horizontal installation mode
    params:
      - name: mode
        type: integer
        enum:
          - value: 0
            label: OFF
          - value: 1
            label: FACE UP
          - value: 2
            label: FACE DOWN
        description: Installation mode (zero-padded to 4 digits)

  - id: set_enlarge
    label: Set Enlarge Mode
    kind: action
    command: "ENLG????"
    description: Enables or disables enlarge mode
    params:
      - name: mode
        type: integer
        enum:
          - value: 0
            label: OFF
          - value: 1
            label: ON
        description: Enlarge mode (zero-padded to 4 digits)

  - id: set_enlarge_layout
    label: Set Enlarge Layout
    kind: action
    command: "EMHV????"
    description: Sets enlarge grid layout (mn where m=longest direction count, n=shortest direction count). Range 12 or 21 through 55.
    params:
      - name: layout
        type: string
        description: Two-digit layout code (e.g. 12 for 1x2, 55 for 5x5)

  - id: set_image_position
    label: Set Image Position
    kind: action
    command: "EPHV????"
    description: Sets image position within enlarge grid (longest/shortest direction). Range 11-55.
    params:
      - name: position
        type: string
        description: Two-digit position code (11-55)

  - id: set_bezel_compensation
    label: Set Bezel Compensation
    kind: action
    command: "BZCO????"
    description: Enables or disables bezel compensation
    params:
      - name: mode
        type: integer
        enum:
          - value: 0
            label: OFF
          - value: 1
            label: ON
        description: Bezel compensation mode (zero-padded to 4 digits)

  - id: set_bezel_width_top
    label: Set Bezel Width Top
    kind: action
    command: "BZWT????"
    description: Sets top bezel width
    params:
      - name: width
        type: integer
        min: 0
        max: 100
        description: Bezel width (zero-padded to 4 digits)

  - id: set_bezel_width_bottom
    label: Set Bezel Width Bottom
    kind: action
    command: "BZWB????"
    description: Sets bottom bezel width
    params:
      - name: width
        type: integer
        min: 0
        max: 100
        description: Bezel width (zero-padded to 4 digits)

  - id: set_bezel_width_right
    label: Set Bezel Width Right
    kind: action
    command: "BZWR????"
    description: Sets right bezel width
    params:
      - name: width
        type: integer
        min: 0
        max: 100
        description: Bezel width (zero-padded to 4 digits)

  - id: set_bezel_width_left
    label: Set Bezel Width Left
    kind: action
    command: "BZWL????"
    description: Sets left bezel width
    params:
      - name: width
        type: integer
        min: 0
        max: 100
        description: Bezel width (zero-padded to 4 digits)

  - id: set_enlarge_and_position
    label: Set Enlarge and Position
    kind: action
    command: "ESHV????"
    description: Combined enlarge mode and image position (XX=mode same as EMHV, YY=position same as EPHV)
    params:
      - name: value
        type: string
        description: Four-digit code XXYY (XX=enlarge mode, YY=image position)

  - id: set_pip_mode
    label: Set PIP Mode
    kind: action
    command: "MWIN????"
    description: Sets PIP mode
    params:
      - name: mode
        type: integer
        enum:
          - value: 0
            label: OFF
          - value: 1
            label: PIP
          - value: 2
            label: PbyP
        description: PIP mode (zero-padded to 4 digits)

  - id: set_pip_size
    label: Set PIP Size
    kind: action
    command: "MPSZ????"
    description: Sets PIP window size
    params:
      - name: size
        type: integer
        min: 1
        max: 64
        description: PIP size (zero-padded to 4 digits)

  - id: set_pip_horizontal_position
    label: Set PIP Horizontal Position
    kind: action
    command: "MHPS????"
    description: Sets PIP horizontal position (longest direction)
    params:
      - name: position
        type: integer
        min: 0
        max: 100
        description: Position percentage (zero-padded to 4 digits)

  - id: set_pip_vertical_position
    label: Set PIP Vertical Position
    kind: action
    command: "MVPS????"
    description: Sets PIP vertical position (shortest direction)
    params:
      - name: position
        type: integer
        min: 0
        max: 100
        description: Position percentage (zero-padded to 4 digits)

  - id: set_pip_position_batch
    label: Set PIP Position Batch
    kind: action
    command: MPOS
    description: Sets PIP position in MPOSxxxyyy format. Append a six-digit payload directly to MPOS without spaces (xxx=longer side, yyy=shorter side).
    params:
      - name: horizontal
        type: integer
        min: 0
        max: 100
        description: Longer side position (zero-padded to 3 digits, forming xxx)
      - name: vertical
        type: integer
        min: 0
        max: 100
        description: Shorter side position (zero-padded to 3 digits, forming yyy)

  - id: set_pip_source
    label: Set PIP Source
    kind: action
    command: "MWIP????"
    description: Sets PIP sub-window input source
    params:
      - name: input
        type: integer
        enum:
          - value: 2
            label: D-SUB RGB
          - value: 3
            label: D-SUB Component
          - value: 10
            label: HDMI1
          - value: 13
            label: HDMI2
          - value: 14
            label: DisplayPort
          - value: 21
            label: OPTION
          - value: 24
            label: APPLICATION
        description: Input source number (zero-padded to 4 digits)

  - id: set_sound_change
    label: Set Sound Change
    kind: action
    command: "MWAD????"
    description: Switches audio between main and sub in PIP mode
    params:
      - name: channel
        type: integer
        enum:
          - value: 1
            label: MAIN
          - value: 2
            label: SUB
        description: Audio channel (zero-padded to 4 digits)

  - id: reset_pip
    label: Reset PIP
    kind: action
    command: RPIP0001
    description: Resets PIP settings
    params: []

  - id: all_reset
    label: All Reset
    kind: action
    command: "RSET????"
    description: Performs full reset
    params:
      - name: type
        type: integer
        enum:
          - value: 0
            label: ALL RESET 1
          - value: 1
            label: ALL RESET 2
        description: Reset type (zero-padded to 4 digits)

  - id: set_adjustment_lock
    label: Set Adjustment Lock
    kind: action
    command: "ALCK????"
    description: Sets adjustment lock
    params:
      - name: mode
        type: integer
        enum:
          - value: 0
            label: OFF
          - value: 1
            label: "ON 1"
          - value: 2
            label: "ON 2"
        description: Lock mode (zero-padded to 4 digits)

  - id: set_adjustment_lock_target
    label: Set Adjustment Lock Target
    kind: action
    command: "ALTG????"
    description: Sets which inputs are locked
    params:
      - name: target
        type: integer
        enum:
          - value: 0
            label: REMOTE CONTROL
          - value: 1
            label: MONITOR BUTTONS
          - value: 2
            label: BOTH
        description: Lock target (zero-padded to 4 digits)

  - id: application_reboot
    label: Application Reboot
    kind: action
    command: AARB0001
    description: Reboots the application
    params: []

  - id: set_screen_size
    label: Set Screen Size
    kind: action
    command: "WIDE????"
    description: Sets screen size mode
    params:
      - name: mode
        type: integer
        enum:
          - value: 1
            label: WIDE
          - value: 2
            label: NORMAL
          - value: 3
            label: Dot by Dot
          - value: 4
            label: ZOOM1
          - value: 5
            label: ZOOM2
        description: Screen size mode (zero-padded to 4 digits)

  - id: set_volume
    label: Set Volume
    kind: action
    command: "VOLM????"
    description: Sets audio volume level
    params:
      - name: level
        type: integer
        min: 0
        max: 31
        description: Volume level (zero-padded to 4 digits)

  - id: set_mute
    label: Set Mute
    kind: action
    command: "MUTE????"
    description: Sets audio mute state
    params:
      - name: state
        type: integer
        enum:
          - value: 0
            label: OFF
          - value: 1
            label: ON
        description: Mute state (zero-padded to 4 digits)

  - id: init_standby_cause
    label: Initialize Standby Cause
    kind: action
    command: STCA0000
    description: Initializes/resets the last standby cause record
    params: []

  - id: set_dhcp
    label: Set DHCP Client
    kind: action
    command: "DHCP????"
    description: Enables or disables DHCP client. Must apply with NTUP command.
    params:
      - name: state
        type: integer
        enum:
          - value: 0
            label: OFF
          - value: 1
            label: ON
        description: DHCP state (zero-padded to 4 digits)

  - id: set_ip_address
    label: Set IP Address
    kind: action
    command: "IPAD????????????"
    description: Sets IP address as 12-digit numeric string (e.g. 192168150001 for 192.168.150.1). Apply with NTUP.
    params:
      - name: address
        type: string
        description: 12-digit IP address (each octet zero-padded to 3 digits)

  - id: set_subnet_mask
    label: Set Subnet Mask
    kind: action
    command: "SBMK????????????"
    description: Sets subnet mask as 12-digit numeric string. Apply with NTUP.
    params:
      - name: mask
        type: string
        description: 12-digit subnet mask (each octet zero-padded to 3 digits)

  - id: set_default_gateway
    label: Set Default Gateway
    kind: action
    command: "DFGW????????????"
    description: Sets default gateway as 12-digit numeric string. Apply with NTUP.
    params:
      - name: gateway
        type: string
        description: 12-digit gateway address (each octet zero-padded to 3 digits)

  - id: set_ftp
    label: Set FTP Connection
    kind: action
    command: "FCHE????"
    description: Enables or disables FTP connection
    params:
      - name: state
        type: integer
        enum:
          - value: 0
            label: FTP OFF
          - value: 1
            label: FTP ON
        description: FTP state (zero-padded to 4 digits)

  - id: set_monitor_name
    label: Set Monitor Name
    kind: action
    command: "MNTR????????????????"
    description: Sets monitor name (up to 16 half-width alphanumeric, hyphen, underscore characters in two 8-char fields)
    params:
      - name: name
        type: string
        description: Monitor name (up to 16 characters)

  - id: set_ftp_username
    label: Set FTP Username
    kind: action
    command: "FUSR????????"
    description: Sets FTP username (up to 8 half-width alphanumeric, hyphen, underscore characters)
    params:
      - name: username
        type: string
        description: FTP username (up to 8 characters)

  - id: set_ftp_password
    label: Set FTP Password
    kind: action
    command: "FPAS????????"
    description: Sets FTP password (up to 8 half-width alphanumeric, hyphen, underscore characters)
    params:
      - name: password
        type: string
        description: FTP password (up to 8 characters)

  - id: set_username
    label: Set Username
    kind: action
    command: "USER????????"
    description: Sets LAN control username (up to 8 half-width alphanumeric, hyphen, underscore characters)
    params:
      - name: username
        type: string
        description: Username (up to 8 characters)

  - id: set_password
    label: Set Password
    kind: action
    command: "PASS????????"
    description: Sets LAN control password (up to 8 half-width alphanumeric, hyphen, underscore characters)
    params:
      - name: password
        type: string
        description: Password (up to 8 characters)

  - id: set_auto_logout_time
    label: Set Auto Logout Time
    kind: action
    command: LOTM
    description: Sets auto logout time in minutes. Append minutes as exactly five zero-padded digits directly to LOTM without spaces.
    params:
      - name: minutes
        type: integer
        min: 0
        max: 65535
        description: Auto logout time in minutes (zero-padded to 5 digits)

  - id: set_data_port
    label: Set Data Port
    kind: action
    command: TCPP
    description: Sets TCP data port number. Append port as exactly five zero-padded digits directly to TCPP without spaces. Apply with NTUP.
    params:
      - name: port
        type: integer
        min: 1025
        max: 65535
        description: TCP port number (zero-padded to 5 digits)

  - id: apply_lan_settings
    label: Apply LAN Settings
    kind: action
    command: NTUP0001
    description: Applies DHCP, IP address, subnet mask, default gateway, and data port settings
    params: []

  - id: lan_quit
    label: LAN Disconnect
    kind: action
    command: "QUIT "
    description: Disconnects LAN session. Monitor responds with "goodbye".
    params: []

Feedbacks

feedbacks:
  - id: power_state
    label: Power State
    type: enum
    query_command: "POWR????"
    values:
      - value: 0
        label: Standby mode
      - value: 1
        label: Normal mode
      - value: 2
        label: Input signal waiting mode

  - id: input_source
    label: Input Source
    type: enum
    query_command: "INPS????"
    values:
      - value: 2
        label: D-SUB RGB
      - value: 3
        label: D-SUB Component
      - value: 10
        label: HDMI1
      - value: 13
        label: HDMI2
      - value: 14
        label: DisplayPort
      - value: 21
        label: OPTION
      - value: 24
        label: APPLICATION

  - id: resolution
    label: Resolution
    type: string
    query_command: "PXCK????"
    description: Returns current resolution as hhh,vvv

  - id: brightness_level
    label: Brightness Level
    type: integer
    query_command: "VLMP????"
    min: 0
    max: 31

  - id: color_mode
    label: Color Mode
    type: enum
    query_command: "BMOD????"
    values:
      - value: 0
        label: STD
      - value: 2
        label: VIVID
      - value: 3
        label: sRGB
      - value: 4
        label: HIGH ILLUMINANCE

  - id: white_balance_mode
    label: White Balance Mode
    type: enum
    query_command: "WHBL????"
    values:
      - value: 0
        label: THRU
      - value: 1
        label: PRESET
      - value: 2
        label: USER

  - id: color_temperature
    label: Color Temperature Preset
    type: integer
    query_command: "CTMP????"
    min: 1
    max: 28

  - id: r_contrast
    label: R-Contrast
    type: integer
    query_command: "CRTR????"
    min: 0
    max: 256

  - id: g_contrast
    label: G-Contrast
    type: integer
    query_command: "CRTG????"
    min: 0
    max: 256

  - id: b_contrast
    label: B-Contrast
    type: integer
    query_command: "CRTB????"
    min: 0
    max: 256

  - id: r_offset
    label: R-Offset
    type: integer
    query_command: "OFSR????"
    min: -127
    max: 127

  - id: g_offset
    label: G-Offset
    type: integer
    query_command: "OFSG????"
    min: -127
    max: 127

  - id: b_offset
    label: B-Offset
    type: integer
    query_command: "OFSB????"
    min: -127
    max: 127

  - id: rgb_input_range
    label: RGB Input Range
    type: enum
    query_command: "INPR????"
    values:
      - value: 0
        label: AUTO
      - value: 1
        label: FULL
      - value: 2
        label: LIMITED

  - id: orientation
    label: Orientation
    type: enum
    query_command: "STDR????"
    values:
      - value: 0
        label: LANDSCAPE
      - value: 1
        label: PORTRAIT

  - id: horizontal_install
    label: Horizontal Installation
    type: enum
    query_command: "MLAY????"
    values:
      - value: 0
        label: OFF
      - value: 1
        label: FACE UP
      - value: 2
        label: FACE DOWN

  - id: volume_level
    label: Volume Level
    type: integer
    query_command: "VOLM????"
    min: 0
    max: 31

  - id: mute_state
    label: Mute State
    type: enum
    query_command: "MUTE????"
    values:
      - value: 0
        label: OFF
      - value: 1
        label: ON

  - id: model_info
    label: Model Information
    type: string
    query_command: "INF1????"
    description: Returns monitor model name

  - id: serial_number
    label: Serial Number
    type: string
    query_command: "SRNO????"
    description: Returns monitor serial number

  - id: temperature_sensor_status
    label: Temperature Sensor Status
    type: enum
    query_command: "DSTA????"
    values:
      - value: 0
        label: Internal temperature normal
      - value: 1
        label: Internal temperature abnormal - monitor in standby
      - value: 2
        label: Internal temperature abnormal occurred
      - value: 3
        label: Internal temperature abnormal - backlight dimmed
      - value: 4
        label: Temperature sensor abnormal

  - id: temperature_value
    label: Temperature Value
    type: integer
    query_command: "ERRT????"
    description: Returns temperature sensor reading. Value 126 indicates sensor abnormality.

  - id: standby_cause
    label: Last Standby Cause
    type: enum
    query_command: "STCA????"
    values:
      - value: 0
        label: No detectable error
      - value: 1
        label: Standby by POWER/MONITOR OFF button
      - value: 2
        label: Main power off by main power switch
      - value: 3
        label: Standby by RS-232C or LAN
      - value: 4
        label: Input signal waiting by No Signal
      - value: 6
        label: Standby by abnormal temperature
      - value: 8
        label: Standby by SCHEDULE setting
      - value: 20
        label: Standby by OFF IF NO OPERATION

  - id: screen_size
    label: Screen Size Mode
    type: enum
    query_command: "WIDE????"
    values:
      - value: 1
        label: WIDE
      - value: 2
        label: NORMAL
      - value: 3
        label: Dot by Dot
      - value: 4
        label: ZOOM1
      - value: 5
        label: ZOOM2

  - id: adjustment_lock
    label: Adjustment Lock
    type: enum
    query_command: "ALCK????"
    values:
      - value: 0
        label: OFF
      - value: 1
        label: "ON 1"
      - value: 2
        label: "ON 2"

  - id: control_interface
    label: Control Interface
    type: enum
    query_command: "CTLS????"
    values:
      - value: 0
        label: RS-232C
      - value: 1
        label: LAN

  - id: dhcp_state
    label: DHCP Client State
    type: enum
    query_command: "DHCP????"
    values:
      - value: 0
        label: OFF
      - value: 1
        label: ON

  - id: pip_mode
    label: PIP Mode
    type: enum
    query_command: "MWIN????"
    values:
      - value: 0
        label: OFF
      - value: 1
        label: PIP
      - value: 2
        label: PbyP

  - id: pip_source
    label: PIP Source
    type: enum
    query_command: "MWIP????"
    values:
      - value: 2
        label: D-SUB RGB
      - value: 3
        label: D-SUB Component
      - value: 10
        label: HDMI1
      - value: 13
        label: HDMI2
      - value: 14
        label: DisplayPort
      - value: 21
        label: OPTION
      - value: 24
        label: APPLICATION

  - id: schedule_brightness
    label: Schedule Brightness
    type: integer
    query_command: "SBXX????"
    description: Returns brightness for schedule SB01-SB08 (0-31 or 99 for disabled)

Variables

variables: []
# All settable parameters are represented as Actions with corresponding query Feedbacks.

Events

events: []
# UNRESOLVED: source does not document unsolicited event notifications from the monitor

Macros

macros:
  - id: daisy_chain_auto_id
    label: Daisy Chain Auto-ID Assignment
    description: >-
      Uses IDST command with repeater control to automatically assign sequential
      ID numbers to all monitors in a daisy chain. Send "IDST001+" to assign
      IDs 1, 2, 3, 4 etc. to each monitor in order. Each monitor responds
      "OK" with its assigned ID number.
    steps:
      - Send IDST001+ (ID set command with repeater)
      - Wait for WAIT response
      - Wait for OK responses from all monitors (each includes ID number)

  - id: repeater_set_volume_all
    label: Set Volume on All Monitors
    description: >-
      Sets volume on all daisy-chained monitors simultaneously using repeater
      control. Set 4th character of parameter to "+".
    steps:
      - Send VOLM0xxx+ where xxx is desired volume (zero-padded)
      - Wait for WAIT response
      - Wait for OK responses from all monitors

  - id: lan_login
    label: LAN Login Sequence
    description: >-
      Connect to monitor via LAN and authenticate. Port 10008.
    steps:
      - Connect TCP to monitor IP address port 10008
      - Receive "Login:" prompt
      - Send username followed by space character
      - Receive "Password:" prompt
      - Send password followed by space character (space if no password set)
      - Receive "OK " on success

Safety

confirmation_required_for:
  - all_reset
  - application_reboot
interlocks:
  - description: >-
      After sending RSET (all reset), wait at least 30 seconds before sending
      next command.
  - description: >-
      After POWR (power on) with POWER ON DELAY active, wait POWER ON DELAY
      period + 10 seconds before sending next command.
  - description: >-
      Commands IDSL, IDLK, RSET, POWR, RPIP return WAIT and require at least
      10 seconds before sending next command. Resend if no response.
  - description: >-
      Command timeout should be 10 seconds or longer. In daisy chain, multiply
      monitor position by 10 seconds for timeout.
# UNRESOLVED: specific power-on sequencing requirements beyond POWER ON DELAY not detailed in source

Notes

  • Ordinary command format is a 4-character command field + 4-character parameter field, terminated with return code (0DH 0AH or 0DH). Ordinary parameters must be exactly 4 characters, padded with spaces when necessary. Parameters of 5 or more characters use the specified number of characters without spaces.
  • For the corrected DATE, MPOS, LOTM and TCPP Actions, the command field contains the opcode only; append the payload described by the Action before the return code. For set_schedule, select SC01-SC08 using schedule_num and append the ten-character payload before the return code.
  • Repeater control: setting the 4th parameter character to "+" broadcasts to all daisy-chained monitors.
  • Query commands (Direction R) use "?" characters as parameters to read current values (e.g., VOLM????).
  • Up to 4 monitors can be daisy-chained via RS-232C with ID numbers 1-255.
  • RS-232C and LAN control cannot be used simultaneously (select via CTLS command).
  • Baud rate default is 38400 bps; configurable via SETUP menu BAUD RATE setting.
  • Minimum 100 ms interval required between command response and next command transmission.
  • LAN control uses same RS-232C command set over Telnet-style connection on port 10008.
  • LAN login required: connect to port 10008, authenticate with username/password, then send commands.
  • When POWER SAVE MODE is ON, some RS-232C commands and LAN control are unavailable in standby mode.
  • Response codes: "OK" (success), "ERR" (invalid command or wrong state), "WAIT" (processing, wait 10+ seconds), "UNSELECTED" (RS-232C/LAN SELECT is set to the other interface).
  • IDSL targets one next command; IDLK targets all subsequent commands until canceled.

Provenance

source_domains:
  - business.sharpusa.com
source_urls:
  - https://business.sharpusa.com/portals/0/downloads/Manuals/PN-M401_M501_operation_manual.pdf
retrieved_at: 2026-05-02T23:19:32.799Z
last_checked_at: 2026-10-07T12:52:45.395Z

Verification Summary

verdict: verified
checked_at: 2026-10-07T12:52:45.395Z
matched_actions: 96
action_count: 96
confidence: medium
summary: "All 96 action units match source command tokens with correct shapes, transport values are supported, and the spec covers essentially the full command catalogue. (8 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "exact PN-M model numbers (PN-M401, PN-M501, PN-M601, etc.) not listed in source; only \"PN-M Series\" referenced"
- "firmware version compatibility not stated in source"
- "LAN Telnet protocol details beyond login handshake not fully specified"
- "the source does not specify them."
- "source does not document unsolicited event notifications from the monitor"
- "specific power-on sequencing requirements beyond POWER ON DELAY not detailed in source"
- "exact PN-M model variants not specified in source"
- "LAN protocol beyond basic Telnet login not fully documented"

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