Summary
The IP-NINJAR NJR-CTB is a network-based AV management and control box supporting HDMI routing, EDID management, and transmission control over TCP/IP and RS-232C. The device accepts ASCII text commands starting with @ followed by comma-separated parameters and terminated with CR LF.
Transport
protocols:
- tcp
- serial
addressing:
port: 1100 # TCP command control port; HTTP web control port 80 stated separately
serial:
baud_rate: 9600 # default per source
data_bits: 8 # default per source
parity: none # default per source
stop_bits: 1 # default per source
flow_control: null # UNRESOLVED: flow control not mentioned in source
auth:
type: none # inferred: no auth procedure in source
Traits
- routable # inferred from @GSW/@SSW, @GSV/@SSV, @GSA/@SSA switching commands
- queryable # inferred from GET commands (@GCHI, @GVOS, @GAOS, etc.)
- levelable # UNRESOLVED: volume/gain commands not found in source
Actions
# --- Switching channel ---
- id: set_video_audio_switch
label: Switch Video and Audio
kind: action
command: "@SSW,type,ch,reserved,input,output"
params:
- name: type
type: integer
description: Type "0" fixed
- name: ch
type: integer
description: Channel "0" fixed
- name: reserved
type: integer
description: Reservation "1" fixed
- name: input
type: integer
description: Input channel 0=OFF, 1-512=Input channel1-512
- name: output
type: integer
description: Output channel 0=All outputs, 1-512=Output channel1-512
- id: get_video_audio_switch
label: Get Video and Audio Switch
kind: query
command: "@GSW,type,ch,reserved,input"
params:
- name: type
type: integer
description: Type "0" fixed
- name: ch
type: integer
description: Channel "0" fixed
- name: reserved
type: integer
description: Reservation "1" fixed
- name: input
type: integer
description: Input channel 0=OFF, 1-512=Input channel1-512
- id: set_video_switch
label: Switch Video
kind: action
command: "@SSV,type,ch,reserved,input,output"
params:
- name: type
type: integer
description: Type "0" fixed
- name: ch
type: integer
description: Channel "0" fixed
- name: reserved
type: integer
description: Reservation "1" fixed
- name: input
type: integer
description: Input channel 0=OFF, 1-512=Input channel1-512
- name: output
type: integer
description: Output channel 0=All outputs, 1-512=Output channel1-512
- id: get_video_switch
label: Get Video Switch
kind: query
command: "@GSV,type,ch,reserved,input"
params:
- name: type
type: integer
description: Type "0" fixed
- name: ch
type: integer
description: Channel "0" fixed
- name: reserved
type: integer
description: Reservation "1" fixed
- name: input
type: integer
description: Input channel 0=OFF, 1-512=Input channel1-512
- id: set_audio_switch
label: Switch Audio
kind: action
command: "@SSA,type,ch,reserved,input,output"
params:
- name: type
type: integer
description: Type "0" fixed
- name: ch
type: integer
description: Channel "0" fixed
- name: reserved
type: integer
description: Reservation "1" fixed
- name: input
type: integer
description: Input channel 0=OFF, 1-512=Input channel1-512
- name: output
type: integer
description: Output channel 0=All outputs, 1-512=Output channel1-512
- id: get_audio_switch
label: Get Audio Switch
kind: query
command: "@GSA,type,ch,reserved,input"
params:
- name: type
type: integer
description: Type "0" fixed
- name: ch
type: integer
description: Channel "0" fixed
- name: reserved
type: integer
description: Reservation "1" fixed
- name: input
type: integer
description: Input channel 0=OFF, 1-512=Input channel1-512
- id: set_analog_audio_switch
label: Switch Analog Audio
kind: action
command: "@SSAA,type,ch,reserved,input,output"
params:
- name: type
type: integer
description: Type "0" fixed
- name: ch
type: integer
description: Channel "0" fixed
- name: reserved
type: integer
description: Reservation "1" fixed
- name: input
type: integer
description: Input channel 0=OFF, 1-512=Input channel1-512
- name: output
type: integer
description: Output channel 0=All outputs, 1-512=Output channel1-512
- id: get_analog_audio_switch
label: Get Analog Audio Switch
kind: query
command: "@GSAA,type,ch,reserved,input"
params:
- name: type
type: integer
description: Type "0" fixed
- name: ch
type: integer
description: Channel "0" fixed
- name: reserved
type: integer
description: Reservation "1" fixed
- name: input
type: integer
description: Input channel 0=OFF, 1-512=Input channel1-512
- id: set_rs232_switch
label: Switch RS-232C Channel
kind: action
command: "@SSWR,src_type,src_ch,src_port,dst_type,dst_ch,dst_port"
params:
- name: src_type
type: integer
description: Source type 1=Input, 2=Output
- name: src_ch
type: integer
description: Source channel 1-512
- name: src_port
type: integer
description: Source connector "1" fixed
- name: dst_type
type: integer
description: Destination type 1=Input, 2=Output
- name: dst_ch
type: integer
description: Destination channel 1-512
- name: dst_port
type: integer
description: Destination connector "1" fixed
- id: get_rs232_switch
label: Get RS-232C Channel
kind: query
command: "@GSWR,src_type,src_ch,src_port"
params:
- name: src_type
type: integer
description: Source type 1=Input, 2=Output
- name: src_ch
type: integer
description: Source channel 1-512
- name: src_port
type: integer
description: Source connector "1" fixed
# --- Setting transmission ---
- id: set_video_audio_transmission
label: Video and Audio Transmission
kind: action
command: "@SWDS,type,ch,reserved,mode,free"
params:
- name: type
type: integer
description: Type 1=Input, 2=Output
- name: ch
type: integer
description: Channel 0=All (setting only), 1-512=Channel1-512
- name: reserved
type: integer
description: Reservation "0" fixed
- name: mode
type: integer
description: Mode 0=Stop, 1=Transmit or Receive
- name: free
type: integer
description: Initialize transmission address 0=Disabled, 1=Enabled
- id: get_video_audio_transmission
label: Get Video and Audio Transmission Status
kind: query
command: "@GWDS,type,ch,reserved"
params:
- name: type
type: integer
description: Type 1=Input, 2=Output
- name: ch
type: integer
description: Channel 0=All (setting only), 1-512=Channel1-512
- name: reserved
type: integer
description: Reservation "0" fixed
- id: set_video_transmission
label: Video Transmission
kind: action
command: "@SVDS,type,ch,reserved,mode,free"
params:
- name: type
type: integer
description: Type 1=Input, 2=Output
- name: ch
type: integer
description: Channel 0=All (setting only), 1-512=Channel1-512
- name: reserved
type: integer
description: Reservation "0" fixed
- name: mode
type: integer
description: Mode 0=Stop, 1=Start
- name: free
type: integer
description: Initialize transmission address 0=Disabled, 1=Enabled
- id: get_video_transmission
label: Get Video Transmission Status
kind: query
command: "@GVDS,type,ch,reserved"
params:
- name: type
type: integer
description: Type 1=Input, 2=Output
- name: ch
type: integer
description: Channel 0=All (setting only), 1-512=Channel1-512
- name: reserved
type: integer
description: Reservation "0" fixed
- id: set_audio_transmission
label: Audio Transmission
kind: action
command: "@SADS,type,ch,reserved,mode,free"
params:
- name: type
type: integer
description: Type 1=Input, 2=Output
- name: ch
type: integer
description: Channel 0=All (setting only), 1-512=Channel1-512
- name: reserved
type: integer
description: Reservation "0" fixed
- name: mode
type: integer
description: Mode 0=Stop, 1=Transmit or Receive
- name: free
type: integer
description: Initialize transmission address 0=Disabled, 1=Enabled
- id: get_audio_transmission
label: Get Audio Transmission Status
kind: query
command: "@GADS,type,ch,reserved"
params:
- name: type
type: integer
description: Type 1=Input, 2=Output
- name: ch
type: integer
description: Channel 0=All (setting only), 1-512=Channel1-512
- name: reserved
type: integer
description: Reservation "0" fixed
- id: set_analog_audio_transmission
label: Analog Audio Transmission
kind: action
command: "@SNDS,type,ch,reserved,mode,free"
params:
- name: type
type: integer
description: Type 1=Input, 2=Output
- name: ch
type: integer
description: Channel 0=All (setting only), 1-512=Channel1-512
- name: reserved
type: integer
description: Reservation "0" fixed
- name: mode
type: integer
description: Mode 0=Stop, 1=Transmit or Receive
- name: free
type: integer
description: Initialize transmission address 0=Disabled, 1=Enabled
- id: get_analog_audio_transmission
label: Get Analog Audio Transmission Status
kind: query
command: "@GNDS,type,ch,reserved"
params:
- name: type
type: integer
description: Type 1=Input, 2=Output
- name: ch
type: integer
description: Channel 0=All (setting only), 1-512=Channel1-512
- name: reserved
type: integer
description: Reservation "0" fixed
# --- Setting video / audio ---
- id: set_output_video
label: Set Output Video
kind: action
command: "@SVOS,type,ch,reserved,mode,submode,resolution"
params:
- name: type
type: integer
description: Type "2" fixed
- name: ch
type: integer
description: Channel 0=All, 1-512=Channel1-512
- name: reserved
type: integer
description: Reservation "1" fixed
- name: mode
type: integer
description: Switching mode 0=Standard, 1=Fast & Scaling
- name: submode
type: integer
description: Sub mode "0" fixed
- name: resolution
type: integer
description: >-
Resolution code per EDID table in source (-1=No change, 1=VGA@60,
2=SVGA@60, 3=XGA@60, 4-49 various; see source table 4.4.2.2)
- id: get_output_video
label: Get Output Video
kind: query
command: "@GVOS,type,ch,reserved"
params:
- name: type
type: integer
description: Type "2" fixed
- name: ch
type: integer
description: Channel 0=All, 1-512=Channel1-512
- name: reserved
type: integer
description: Reservation "1" fixed
- id: set_output_audio
label: Set Output Audio
kind: action
command: "@SAOS,type,ch,reserved,analog,hdmi"
params:
- name: type
type: integer
description: Type "2" fixed
- name: ch
type: integer
description: Channel 0=All, 1-512=Channel1-512
- name: reserved
type: integer
description: Reservation "1" fixed
- name: analog
type: integer
description: Audio output connector 2=HDMI audio, 3=Analog input audio
- name: hdmi
type: integer
description: HDMI audio output 2=HDMI audio, 3=Analog input audio
- id: get_output_audio
label: Get Output Audio
kind: query
command: "@GAOS,type,ch,reserved"
params:
- name: type
type: integer
description: Type "2" fixed
- name: ch
type: integer
description: Channel 0=All, 1-512=Channel1-512
- name: reserved
type: integer
description: Reservation "1" fixed
# --- Setting EDID ---
- id: copy_edid
label: Copy EDID
kind: action
command: "@RMEC,type,ch,reserved,input,output"
params:
- name: type
type: integer
description: Type "0" fixed
- name: ch
type: integer
description: Channel "0" fixed
- name: reserved
type: integer
description: Reservation "1" fixed
- name: input
type: integer
description: Input Channel 0=All inputs, 1-512=Input Channel1-512
- name: output
type: integer
description: Output Channel 1-512=Output Channel1-512
# --- Setting channel information ---
- id: set_channel_info
label: Set Channel Information
kind: action
command: "@SCHI,type,ch,reserved,mac,hdmi"
params:
- name: type
type: integer
description: Type 1=Input, 2=Output
- name: ch
type: integer
description: Channel 1-512
- name: reserved
type: integer
description: Reservation "1" fixed
- name: mac
type: string
description: MAC address in hex format (00-FF x6)
- name: hdmi
type: integer
description: HDMI connector 0=All, 1-4=Connector1-4
- id: get_channel_info
label: Get Channel Information
kind: query
command: "@GCHI,type,ch,reserved"
params:
- name: type
type: integer
description: Type 1=Input, 2=Output
- name: ch
type: integer
description: Channel 1-512
- name: reserved
type: integer
description: Reservation "1" fixed
# --- RS-232C communication setting ---
- id: set_rs232_settings
label: Set RS-232C Settings
kind: action
command: "@SRSS,type,ch,reserved,baudrate,databit,stopbit,parity"
params:
- name: type
type: integer
description: Type 1=Input, 2=Output
- name: ch
type: integer
description: Channel 0=All (setting only), 1-512=Channel1-512
- name: reserved
type: integer
description: Reservation "1" fixed
- name: baudrate
type: integer
description: Baud rate 0=4800, 1=9600, 2=19200, 3=38400, 4=57600, 5=115200
- name: databit
type: integer
description: Data bit length 7=7bit, 8=8bit
- name: stopbit
type: integer
description: Stop bit 1=1bit, 2=2bit
- name: parity
type: integer
description: Parity 0=NONE, 1=ODD, 2=EVEN
- id: get_rs232_settings
label: Get RS-232C Settings
kind: query
command: "@GRSS,type,ch,reserved"
params:
- name: type
type: integer
description: Type 1=Input, 2=Output
- name: ch
type: integer
description: Channel 0=All (setting only), 1-512=Channel1-512
- name: reserved
type: integer
description: Reservation "1" fixed
# --- CTB LAN settings ---
- id: set_lan
label: Set LAN
kind: action
command: "@SIPS,type,ch,port,mode,ip,mask,gateway"
params:
- name: type
type: integer
description: Type 0=CTB, 1=Input, 2=Output
- name: ch
type: integer
description: Channel 1-512
- name: port
type: integer
description: Connector 1-2 (for non-CTB "1" fixed)
- name: mode
type: integer
description: Mode 0=Automatic(DHCP), 1=Fixed
- name: ip
type: string
description: IP address in dotted decimal notation
- name: mask
type: string
description: Subnet mask in dotted decimal notation
- name: gateway
type: string
description: Default gateway in dotted decimal notation
- id: get_lan
label: Get LAN Settings
kind: query
command: "@GIPS,type,ch,port"
params:
- name: type
type: integer
description: Type 0=CTB, 1=Input, 2=Output
- name: ch
type: integer
description: Channel 1-512
- name: port
type: integer
description: Connector 1-2 (for non-CTB "1" fixed)
- id: get_mac_address
label: Get MAC Address
kind: query
command: "@GMCC,type,ch,port"
params:
- name: type
type: integer
description: Type 0=CTB, 1=Input, 2=Output
- name: ch
type: integer
description: Channel 1-512
- name: port
type: integer
description: Connector 1-2 (for non-CTB "1" fixed)
# --- Maintenance ---
- id: get_version
label: Get Version Information
kind: query
command: "@GIVC,type,ch,reserved"
params:
- name: type
type: integer
description: Type 0=CTB, 1=Input, 2=Output
- name: ch
type: integer
description: Channel 1-512
- name: reserved
type: integer
description: Reservation "1" fixed
- id: reboot
label: Reboot
kind: action
command: "@RBTC,type,ch,reserved"
params:
- name: type
type: integer
description: Type 0=CTB, 1=Input, 2=Output
- name: ch
type: integer
description: Channel 0=All, 1-512=Channel1-512
- name: reserved
type: integer
description: Reservation "1" fixed
- id: initialize_settings
label: Initialize Settings
kind: action
command: "@CLRC,type,ch,reserved,comm_setting"
params:
- name: type
type: integer
description: Type 0=CTB, 1=Input, 2=Output
- name: ch
type: integer
description: Channel 0=All, 1-512=Channel1-512
- name: reserved
type: integer
description: Reservation "1" fixed
- name: comm_setting
type: integer
description: Initialize communication setting 0=Disabled, 1=Enabled
Feedbacks
- id: error_status
label: Error Status
type: enum
values:
- "1" # Erroneous parameter format or value
- "2" # Undefined command or wrong format
- "3" # Currently cannot be used
- "99" # Error other than errors above
command: "@ERR,error"
description: Returns @ERR,error code
- id: channel_info
label: Channel Information
type: string
command: "@GCHI,type,ch,reserved,mac,hdmi"
description: Returns type, ch, reserved, mac, hdmi values
- id: output_video
label: Output Video
type: string
command: "@GVOS,type,ch,reserved,mode,submode,resolution"
description: Returns mode, submode, resolution
- id: output_audio
label: Output Audio
type: string
command: "@GAOS,type,ch,reserved,analog,hdmi"
description: Returns analog, hdmi audio output settings
- id: video_audio_transmission
label: Video and Audio Transmission Status
type: enum
values:
- "0" # Stop
- "1" # Transmit or Receive
command: "@GWDS,type,ch,reserved,mode"
description: Returns transmission mode
- id: video_transmission
label: Video Transmission Status
type: enum
values:
- "0" # Stop
- "1" # Start
command: "@GVDS,type,ch,reserved,mode"
description: Returns transmission mode
- id: audio_transmission
label: Audio Transmission Status
type: enum
values:
- "0" # Stop
- "1" # Transmit or Receive
command: "@GADS,type,ch,reserved,mode"
description: Returns transmission mode
- id: analog_audio_transmission
label: Analog Audio Transmission Status
type: enum
values:
- "0" # Stop
- "1" # Transmit or Receive
command: "@GNDS,type,ch,reserved,mode"
description: Returns transmission mode
- id: switch_status
label: Switch Status
type: string
command: "@GSW,type,ch,reserved,input,output"
description: Returns output channel assignment for given input
- id: rs232_channel
label: RS-232C Channel
type: string
command: "@GSWR,src_type,src_ch,src_port,dst_type,dst_ch,dst_port"
description: Returns src_type, src_ch, src_port, dst_type, dst_ch, dst_port
- id: rs232_settings
label: RS-232C Settings
type: string
command: "@GRSS,type,ch,reserved,baudrate,databit,stopbit,parity"
description: Returns baudrate, databit, stopbit, parity
- id: lan_settings
label: LAN Settings
type: string
command: "@GIPS,type,ch,port,mode,ip,mask,gateway"
description: Returns mode, ip, mask, gateway
- id: mac_address
label: MAC Address
type: string
command: "@GMCC,type,ch,port,mac"
description: Returns MAC address in hex format
- id: version_info
label: Version Information
type: string
command: "@GIVC,type,ch,reserved,model,version"
description: Returns model and firmware version
- id: edid_copy
label: EDID Copy Status
type: string
command: "@RMEC,type,ch,reserved,input,output"
description: Returns input and output channel mapping
Variables
# All settable parameters are represented as Actions with direct command equivalents.
# No additional Variables section required.
Events
# UNRESOLVED: source does not describe unsolicited event notifications from the device.
# The device only responds to query commands; no push-style events documented.
Macros
# UNRESOLVED: no multi-step macro sequences described in source.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no safety warnings, interlock procedures, or power sequencing requirements.
Notes
Command syntax: Commands start with @ ("40" hex) followed by 3-4 alphabetical characters, then comma-separated parameters. Delimiter is CR LF (0D 0A hex). Example format: @RCPP,0,0,1,1
Connection management: Up to 8 simultaneous TCP connections supported. Port timeout is 30 seconds of inactivity. Issuing "port-open" and "port-close" before/after commands is recommended for clean connection handling. If no command is sent for 30 seconds, the NJR-CTB automatically disconnects.
Factory default LAN: IP address 192.168.1.199, subnet mask 255.255.255.0, default gateway 192.168.1.200, TCP port 1100.
TCP port overload management: When 8 ports are occupied, additional connection attempts may fail. The device automatically closes inactive ports after 30 seconds.
HTTP web control: Port 80 used for WEB browser control. Refer to NJR-CTB User's Guide for web interface details.
RS-232C passthrough: The device supports RS-232C channel switching to route serial communication between connected devices.
Multi-parameter batches: Most commands accept repeated parameter groups (e.g. type_2, ch_2, ...) to operate on multiple channels in a single command.
Provenance
source_domains:
- idkav.com
source_urls:
- https://www.idkav.com/content/documents/manuals/njr-ctb_cm_ver.1.1.1_en.pdf
retrieved_at: 2026-07-14T09:09:17.594Z
last_checked_at: 2026-07-21T22:52:50.869Z
Verification Summary
verdict: verified
checked_at: 2026-07-21T22:52:50.869Z
matched_actions: 33
action_count: 33
confidence: medium
summary: "All 33 spec actions verified as wire-literal commands in source; transport parameters complete; all source commands represented. (10 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "power supply specifications, physical dimensions, operating temperature ranges not stated in source"
- "flow control not mentioned in source"
- "volume/gain commands not found in source"
- "source does not describe unsolicited event notifications from the device."
- "no multi-step macro sequences described in source."
- "source contains no safety warnings, interlock procedures, or power sequencing requirements."
- "physical layer specifications (voltage, current, power consumption) not stated in source"
- "EDID data format and structure not detailed in source"
- "error recovery behavior when commands conflict not documented"
- "command timing requirements (minimum delay between commands) not stated in source"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0