🇧🇷 Versao em Portugues
4Drivers

4Drivers PJ Link Projector Projector

Manufacturer: Compatible with any PJ Link Class 1 projector Protocol: PJ Link (JBMIA) over TCP/IP Default port: TCP 4352

Overview

The 4Drivers PJ Link Projector driver controls any projector or display compatible with the PJ Link Class 1 standard (JBMIA) over IP, without relying on manufacturer-proprietary commands. It implements the official protocol documented at pjlink.jbmia.or.jp.

PJ Link is an open standard: any projector or display advertising "PJLink Class 1" compatibility can be controlled by this driver, regardless of manufacturer.

Requirements

Properties

PJ Link Settings

PropertyTypeDefaultDescription
IPTextProjector's IP address on the network
TCP PortNumber4352PJ Link TCP port. Only change it if the projector uses a custom port
PJLink PasswordPasswordProjector's PJ Link password. Leave empty if security is disabled on the device
Keep Alive Interval-SecondsNumber (10-25)20Interval for the POWR ? keep-alive query. PJ Link drops the connection after 30s without traffic
Command Delay-MillisecondsNumber (200-2500)300Minimum interval between commands sent back to back

Status (read-only)

PropertySource (PJ Link command)Description
IP Conn StatusTCP connection state: Connected, Disconnected, authentication error, etc.
Power StatusPOWR ?Standby, Warm-up, On or Cooling
Input StatusINPT ?Currently selected video input code
Mute StatusAVMT ?11=video muted, 21=audio muted, 31=video and audio muted, 30=no mute
Lamp HoursLAMP ?Accumulated lamp usage hours
Error StatusERST ?Fan, lamp, temperature, cover, filter and other error status
Projector NameNAME ?Name configured on the projector itself
ManufacturerINF1 ?Manufacturer reported by the device
Product NameINF2 ?Product/model name reported by the device
Other InfoINFO ?Additional free-form information from the manufacturer
PJ Link ClassCLSS ?PJ Link class supported by the device (this driver implements Class 1)
Available InputsINST ?List of input codes actually supported by that specific projector
Controller MAC AddressControl4 controller MAC, used internally for license validation
Manufacturer, model, class and input list information (INF1/INF2/INFO/CLSS/INST) is queried once per connection, right after connecting. Error status, lamp hours and mute are refreshed every 5 keep-alive cycles (by default, roughly every 100 seconds) to avoid unnecessary polling load on the projector. Use the Refresh Status action to force an immediate update of everything.

Navigation (outside the PJ Link standard)

PropertyTypeDescription
Cmd UPTextRaw command sent when the proxy requests UP
Cmd DOWNTextRaw command sent when the proxy requests DOWN
Cmd ENTERTextRaw command sent when the proxy requests ENTER
Cmd CANCELTextRaw command sent when the proxy requests CANCEL
PJ Link Class 1 does not define on-screen menu navigation commands. These four fields exist only in case your projector's manufacturer has a proprietary extension command for menu navigation. Leave them blank if you don't know or if the projector doesn't support it — the driver won't get stuck or throw an error, it simply ignores the command.

Image Adjustments (outside the PJ Link standard)

PropertyTypeDescription
Cmd Brightness UpTextRaw command sent when the proxy requests brightness up
Cmd Brightness DownTextRaw command sent when the proxy requests brightness down
Cmd Contrast UpTextRaw command sent when the proxy requests contrast up
Cmd Contrast DownTextRaw command sent when the proxy requests contrast down
Just like menu navigation, brightness and contrast are also not part of the PJ Link Class 1 protocol — the official specification defines no image adjustment commands. Only fill these in if your projector's manufacturer has a proprietary extension for it. Leave them blank otherwise.

Driver License

PropertyTypeDefaultDescription
License KeyTextTrialLicense key provided by 4Drivers. Use Trial to evaluate
ValidationTextautoLicense status — filled in automatically (read-only)
Developers UsePasswordReserved for 4Drivers internal use (superdebug)

Driver Info

PropertyTypeDefaultDescription
Debug ModeListOffPrint shows operational messages in the Composer log (connection, errors, high-level commands). The actual network content (TX/RX) only appears with the restricted developer mode enabled
Driver VersionTextInstalled driver version (read-only)

Video Connections

PJ Link defines 5 official video input classes (INPT command, spec chapter 4.3). The driver exposes one connection per class, already mapped to the corresponding PJ Link code:

Connection IDNamePJ Link ClassINPT Code
1000RGB 1RGB (1)11
1001RGB 2RGB (1)12
1002Digital 1 (HDMI)Digital (3)31
1003Digital 2 (HDMI)Digital (3)32
1004Video (Composite)Video (2)21
1005NetworkNetwork (5)51
1006StorageStorage (4)41

Wire each physical source (Blu-ray, Apple TV, etc.) to one of these connections in Composer's Connections tab, matching the signal type. The Available Inputs property shows which codes that specific projector actually reports supporting — use it to confirm the mapping.

Actions

ActionDescription
Power ONSends %1POWR 1 — turns the projector on
Power OFFSends %1POWR 0 — turns the projector off
Refresh StatusForces an immediate query of all status: power, input, error, lamp, name, mute, manufacturer, model, class and input list
Send CommandSends a raw PJ Link command typed manually, e.g. %1POWR 1. Useful for manufacturer extension commands not covered by the driver

Commands (programmable)

CommandParameterDescription
PowerAcao: ON / OFFTurns the projector on or off
Select InputInput: 1000-1006Selects the video input by connection ID (see Video Connections table)
Send CommandCommand: textSends a raw PJ Link command, same as the Send Command action

PJ Link Authentication

If the projector has PJ Link security enabled, it sends a random challenge upon connecting. The driver automatically computes the MD5 hash (random number + password) and sends it along with the following commands, as described in chapter 5 of the specification.

Connection and Keep Alive

PJ Link operates exclusively over TCP/IP (there is no serial version of the protocol). The device drops the connection after 30 seconds without traffic. To prevent this, the driver sends a periodic POWR ? (property Keep Alive Interval-Seconds, default 20s), which doubles as keep-alive and power status update.

Step-by-Step Setup

1 — Enable PJ Link on the projector

  1. In the projector's network menu, enable the PJLink option (naming may vary by manufacturer)
  2. Note the projector's IP and, if applicable, its configured PJ Link password

2 — Add the driver to the project

  1. Copy 4Drivers_PJLink_Projector.c4z to Composer's driver folder
    Windows: C:\Users\[user]\Documents\Control4\Drivers\
  2. In Composer Pro, search for PJ Link Projector and drag the driver into the projector's room

3 — Configure the network

  1. Open the driver's Properties tab
  2. Fill in IP with the projector's address
  3. Confirm TCP Port (4352 is the protocol default — only change it if the projector uses a different one)
  4. If the projector has PJ Link security enabled, fill in PJLink Password
  5. Save (File > Save) and watch the IP Conn Status property change to Conectado

4 — Wire the video inputs

  1. In the Connections tab, wire each video source (Blu-ray, Apple TV, etc.) to one of the RGB, Digital (HDMI), Video, Network or Storage connections on the driver, matching the projector's physical input type
  2. Check the Available Inputs property to confirm which inputs the projector actually reports supporting

5 — Test

  1. In Actions, click Power ON and confirm Power Status changes to Warm-up and then On
  2. Test input switching through programming or the Select Input command
  3. Click Refresh Status and check that Lamp Hours, Error Status, Manufacturer and Product Name are populated
If nothing happens on power on/off, confirm PJLink is actually enabled in the projector's menu and that TCP port 4352 isn't blocked by a firewall between the controller and the projector.

6 — Finish

  1. Make sure Debug Mode is set to Off
  2. Save and publish the project
Setup complete. The driver will keep the connection alive via keep-alive and refresh statuses automatically.

Troubleshooting

IssueSolution
IP Conn Status stays "Desconectado"Confirm the projector's IP and TCP port, verify PJLink is enabled in the device's network menu and that no firewall is blocking port 4352
"Erro de autenticacao (senha invalida)"Check the PJ Link password configured on the projector and re-enter it in the PJLink Password property
Input command doesn't switch videoCheck the Available Inputs property to confirm that code actually exists on the projector. Confirm the connection mapping used in Connections
Lamp Hours / Error Status never updateThese fields are read roughly every 100s by default. Use the Refresh Status action to force an immediate update
UP/DOWN/ENTER/CANCEL do nothingExpected: PJ Link Class 1 does not define menu navigation. Fill in the Cmd UP/DOWN/ENTER/CANCEL fields with the manufacturer's proprietary command, if one exists

Technical Information

ItemValue
ProtocolPJ Link Class 1 (JBMIA) — pjlink.jbmia.or.jp
TransportTCP/IP, default port 4352 (network only — PJ Link has no serial version)
Command format%1CCCC PARAM<CR> / response %1CCCC=VALUE<CR>
AuthenticationRandom challenge + MD5(random+password), when the projector's security is enabled
Keep alivePeriodic POWR ? (default 20s) to avoid the protocol's 30-second timeout
PersistenceLicense/trial data in PersistData — survives controller reboot

Change Log

VersionDateChanges
105108/01/2026Added raw command fields for image adjustment (Brightness/Contrast) and internal variables mirroring the projector's read-out data
105008/01/2026Release Version