Skip to main content

Advanced device configuration options for JSCore players

Where can you set these configurations?

1.x UI

You can set advanced configuration from the context menu of the device: Manage screen >> Set Advanced config

  • A modal will appear where you can type or paste the config and send it to the device.

2.0 UI

Navigate yourself to Devices menu, select the device where you wish to set the advanced configs.

  • In the details tab, select settings, scroll down until you find the Advanced config modal.
  • Click on the edit then place the config to the box
Please note

Clear button only clears the input field to an empty json. Sending this json doesn't disable the previous configuration of the device.

Generic advanced configuration options for JSCore devices

These advanced configuration options work on all supported JSCore devices. This means these are applicable to Samsung LG and BrightSign players.

The basic configuration structure is the following json array, which contains the actual configuration objects

{
"configuration": [
{
}
]
}

There can be multiple objects inside a singe command. For example you can enable both debug mode and memory watchdog in the same Advanced configuration json

{
"configuration": [
{
"type": "DEBUG_MODE",
"enabled": true
},
{
"type": "MEMORY_WATCHDOG",
"enabled": true,
"maxMemoryLimitFraction": 0.8
}
]
}
info
  • enabled key has to be defined, value has to be a non-empty boolean
  • maxMemoryLimitFraction key has to be defined, value has to be number. The minimum limit is 0.4, the maximum is 1.0.

Show debug logs

Sometimes the support team requires a device log from the users to find out what causes a problem on the device. Enabling the debug log on the device will show more information for us in the device log.

{
"configuration": [
{
"type": "DEBUG_MODE",
"enabled": true
}
]
}
info
  • enabled key has to be defined, value has to be a non-empty boolean

Turn on system memory watchdog

This command turns on a system memory watcher. If the device reaches the given percent limitation the application makes steps to free up used memory by restarting itself. If the memory limit is exceeded a few times the application reboots the device to free up even more memory.

{
"configuration": [
{
"type": "MEMORY_WATCHDOG",
"enabled": true,
"maxMemoryLimitFraction": 0.8
}
]
}
info
  • enabled key has to be defined, value has to be a non-empty boolean
  • maxMemoryLimitFraction key has to be defined, value has to be number. The minimum limit is 0.4, the maximum is 1.0.

Setup NTP server

Setup NTP server

{
"configuration": [
{
"type": "NTP_SERVER",
"enabled": true,
"serverUrl":"ntp://example.server.url"
}
]
}
info
  • enabled key has to be defined, value has to be a non-empty boolean
  • serverUrl key has to be defined, value has to be a non-empty string

Toggle Metrics and Proof of Play collection

With this you can toggle metrics and proof-of-play collection separately

{
"configuration": [
{
"type": "STATISTICS_SETTINGS",
"deviceMetricsEnabled": false,
"displayTimeStatEnabled": false
}
]
}
info
  • deviceMetricsEnabled key has to be defined, value has to be a non-empty boolean
  • displayTimeStatEnabled key has to be defined, value has to be a non-empty boolean

Device Preview

The Preview creation/upload can be disabled with this command

{
"configuration": [
{
"type": "DEVICE_PREVIEW",
"enabled": true
}
]
}

BrightSign specific advanced configuration options

These advanced configuration options are only available on BrightSign players.

Screen configuration

Configure screen behavior

{
"configuration": [
{
"type":"SCREEN_CONFIGURATION",
"enabled":true,
"screens":[
{
"enabled":true,
"screenX":0,
"screenY":0,
"outputName":"HDMI-1",
"transform":"normal",
"videoMode":"1920x1080x60p"
}
]
}
]
}
info
  • enabled key has to be defined, value has to be a non-empty boolean

  • screens has to be an array type containing valid screenMode objects

  • screenX key has to be defined, value has to be number

  • screenY key has to be defined, value has to be number

  • outputName key has to be defined, value has to be a non-empty string. There must be a - between HDMI and the number

  • transform key has to be defined, and one of the following values: normal,90,180,270

  • videoMode key has to be defined, value has to be a non-empty string

Forcing web resolution to match output resolution with 4K modes

info
  • In 4K modes, the graphics plane may be smaller than the video plane and output. In these cases, the graphics plane is upscaled to match the video plane/output.
  • You can force the graphics plane to match the output
danger
  • Forcing resolution may cause noticeable performance degradation with intensive HTML animations
{
"configuration": [
{
"type":"SCREEN_CONFIGURATION",
"enabled":true,
"screens":[
{
"enabled":true,
"screenX":0,
"screenY":0,
"outputName":"HDMI-1",
"transform":"normal",
"videoMode":"3840x2160x30p:fullres"
}
]
}
]
}
info
  • You can configure the player to give more memory to the graphics plane by adding the :gfxmemlarge modifier at the end of your video mode e.g.: 3840x2160x30p:fullres:gfxmemlarge
  • Note that once you changed the memory configuration with the modifier you can only reset it by adding :gfxmemdefault modifier to the end of your video mode mode e.g.:3840x2160x30p:fullres:gfxmemdefault

Multiple output example on XC devices, where screens are above each other.

In case of the example there are 2 of the 1920x1080 screens so the final resolution will be 1920x2160

{
"configuration": [
{
"type":"SCREEN_CONFIGURATION",
"enabled":true,
"screens":[
{
"enabled":true,
"screenX":0,
"screenY":0,
"outputName":"HDMI-1",
"transform":"normal",
"videoMode":"1920x1080x60p"
},
{
"enabled":true,
"screenX":0,
"screenY":1080,
"outputName":"HDMI-2",
"transform":"normal",
"videoMode":"1920x1080x60p"
}
]
}
]
}

Screen control

Control screens

Using HDMI port

{
"configuration": [
{
"type":"SCREEN_CONTROL",
"enabled":true,
commands:[
{
"action": "SCREEN_ON",
"method": "cec",
"messageType": "byte",
"message": "x64x13"
},{
"action": "SCREEN_OFF",
"method": "cec",
"messageType": "byte",
"message": "x64x54"
}
]
}
]
}

Using Serial port

{
"configuration": [
{
"type":"SCREEN_CONTROL",
"enabled":true,
"commands":[
{
"action":"SCREEN_ON",
"method":"serial",
"message":"TON\r\n",
"messageType":"string"
},
{
"action":"SCREEN_OFF",
"method":"serial",
"message":"TOF\r\n",
"messageType":"string"
}
],
"serialConnection":{
"port":"0",
"parity":0,
"baudrate":115200,
"dataBits":8,
"stopBits":1,
"flowControl":1
}
}
]
}
info
  • enabled key has to be defined, value has to be a non-empty boolean

  • commands has to be an array type containing valid ScreenControlCommand objects

  • action key has to be defined, and one of the following values: SCREEN_ON, SCREEN_OFF

  • method key has to be defined, value has to be cec or serial

  • messageType key has to be defined, value has to be byte or string

  • message key has to be defined, in case of bytes they have to be separated by an x

Toggle Hardware Accelerated Player syncronization and set PTP domain

Please note

Video synchronization only works with Hardware Accelerated Player enabled

Video synchronization is enabled by default on BrightSign devices, however you can disable/customize it using the configuration below. It will toggle Hardware Accelerated Player synchronization on Brightsign devices and/or sets ptp domain to be used for synchronization.

Disabling video synchronization

{
"configuration": [
{
"type": "VIDEO_SYNC",
"enabled": false
}
]
}
info

Disabling video synchronization will clear any domain previously configured

Customizing domain of synchronization

BrightSign devices sync their system clock to the Leaders time under the same domain. To prevent collisions and unexpected behaviour it is recommended to configure the same domain only on the devices that are playing the same content

{
"configuration": [
{
"type": "VIDEO_SYNC",
"enabled": true,
"ptp_domain": 93
}
]
}
info
  • If ptp_domain is not present in the configuration the player will use our default domain
info
  • enabled key has to be defined, value has to be a non-empty boolean
  • ptp_domain is an optional field, value has to be a number, value has to be in between 0-127

Customizing address, port and status of synchronization

You can create separate sync groups for devices by configuring the address and port of synchronization for each device Your can force sync status on devices by adding field status with value LEADER/FOLLOWER to the configuration

Leaders Configuration:

{
"configuration": [
{
"type":"VIDEO_SYNC",
"enabled":true,
"ptp_domain":7,
"udpAddress":"224.0.126.11",
"udpPort":1515,
"status":"LEADER"
}
]
}

Followers Configuration:

{
"configuration": [
{
"type":"VIDEO_SYNC",
"enabled":true,
"ptp_domain":7,
"udpAddress":"224.0.126.11",
"udpPort":1515,
"status":"FOLLOWER"
}
]
}
info
  • If udpAddress is not present in the configuration the player will use our default address
  • If udpPort is not present in the configuration the player will use our default port
  • If status is not present in the configuration the players will decide status based on deviceIds
info
  • udpAddress is an optional field, value has to be a string
  • udpPort is an optional field, value has to be a number
  • status is an optional field, value has to be LEADER/FOLLOWER

Force HDCP version

You can configure the player to use either HDCP 1.4 (version should be 1) or HDCP 2.2 (version should be 2)

{
"configuration": [
{
"type": "HDCP_VERSION",
"version": 1
}
]
}
info
  • version key has to be defined, value has to be a number