BrightSign OS
This page documents how TomorrowOS works on BrightSign today, including deploy requirements, supported commands, playback behaviour, and known field issues. Current support: TomorrowOS V1 targets BrightSign Series 3-6. Always verify on the real model + firmware before claiming production support. BrightSign is a first-class TomorrowOS player platform alongside Samsung Tizen. Support still depends on player series, BrightSignOS (BOS) firmware, storage layout and display setup — always verify on the real model before claiming production support.Purpose
This page covers:- How to install the TomorrowOS BrightSign player on the device
- How the TomorrowOS BrightSign player boots
- Device identification and capabilities
- Content policy / playback behaviour
- Widget and package handling
- Display controls (reboot, on/off timer)
- Screenshots
- Known issues found in testing (including Series 3 / 4K H.264)
- Deploy and certification checklist
Core principle
BrightSign is capable, but series + firmware matter.A feature may work on one series / BOS version and fail on another. Prefer:
- Check
device.info.getCapabilities - Test the real playlist on that model + firmware
- Only then mark the combination production-ready
Install the player
Supported baseline: BrightSign Series 3-6 (validate Series 3 firmware — see known issues below).Get the package
Install on the device
- Unzip the package on a computer.
- Confirm
config.js:- CMS download:
cmsEndpointis usually filled — confirmorientation - Distribution zip: set
cmsEndpointto your CMS origin and setorientation
- CMS download:
- Copy the contents of the unzipped folder (not the zip file itself) onto a microSD card or USB stick.
- Confirm the root of the card contains:
autorun.brsconfig.js- the rest of the player files
- Ensure only one
autorun.brsexists (no competing BSN autorun artifacts). - Insert the card into the BrightSign player.
- Full power-cycle the player.
- Wait through the initial black window (~10 seconds before
Show()is normal). - Confirm the pairing / brand UI appears, then pair with the six-character code in the Control Panel.
localhost in cmsEndpoint. Use a LAN IP, tunnel, or public HTTPS URL the player can reach.
Runtime architecture
TomorrowOS on BrightSign is an HTML player launched by BrightScript:
Important boot details:
- Node.js must be enabled (
nodejs_enabled: true) - BrightSign JS objects must be enabled (
brightsign_js_objects_enabled: true) - Storage uses the SD card (
storage_path: "SD:") - There is a deliberate ~10 second delay before
Show()— black screen during that window is normal - Orientation and CMS URL come from
config.js(no on-device setup UI in the current BrightSign build)
Configure config.js
BrightSign builds do not show an on-device CMS / orientation setup screen. You must set these values in config.js before the player can connect:
Hosted CMS download
If you download the BrightSign player zip from a hosted CMS (for example Control Panel → Download Players),cmsEndpoint is filled automatically with that CMS address. You usually only need to confirm orientation.
Local testing
Do not putlocalhost or 127.0.0.1 in cmsEndpoint.
The BrightSign player runs on the panel, not on your laptop. localhost would point at the player itself and pairing / WebSocket will fail.
For local testing, use your computer’s LAN IP, for example:
Device identification
device.info.get is backed by BSDeviceInfo.
Typical fields:
Capability map
On a real BrightSign player runtime,device.info.getCapabilities currently reports:
Always trust the live capability response over this table.
Content and playback
Playback is policy-driven:- Images / UI use HTML layers
- Normal playlist video uses dual
roVideoPlayerslots (hardware video plane), not HTML<video>HWZ as the primary path - Black-gap avoidance keeps the previous picture up until the next item is ready — see
docs/guides/black-gap-playback.md - Widgets (
.zip/.wgt) download, extract locally and load in an iframe — seedocs/guides/widget-zip-packages.md - Media is cached under
downloads/tomorrowos/on the SD card
Display control
Reboot
@brightsign/system reboot. The player tries to save resume state before restarting.
On / off timer
Screenshots
Firmware and series guidance
Recommended baseline
TomorrowOS BrightSign development currently expects players that can run:roHtmlWidgetwith Node.js- BrightSign JS objects (
BSDeviceInfo, etc.) - Modern Chromium behaviour used by current BOS releases for iframe / widget work
Known issues: Series 3 video
Finding from field testing:
Practical rules:
- Check
device.info.getfor model + firmware before publishing video - On Series 3 below 9.1.140, upgrade firmware before relying on video playlists
- On Series 3 at 9.1.140+, certify with 1080p H.264
- Treat Series 3 4K H.264 as unsupported hardware — not a TomorrowOS playlist bug
Deploy checklist
- Download the BrightSign player zip (Control Panel → Download Players → BrightSign, or the distribution URL)
- Confirm
cmsEndpointandorientationinconfig.js- Hosted CMS download: CMS URL is usually auto-filled
- Local testing: use your PC LAN IP — never
localhost
- Copy all files from the bundle to the SD card root
- Confirm only one
autorun.brsexists (no competing BSN autorun artifacts) - Full power-cycle the player
- Wait through the initial black sleep window
- Verify pairing /
device.helloagainst your CMS - Publish a small image + video playlist and confirm playback
- Record model + firmware for certification notes
Certification tests for BrightSign
Minimum tests per model + firmware:- Boot to player UI / brand idle
- Pair with CMS
-
device.info.getreturns model + firmware -
device.info.getCapabilitieslooks correct - Image playlist playback
- Video playlist playback (1080p H.264; Series 3 requires firmware 9.1.140+)
- 4K H.264 playback (not expected on Series 3 — hardware limit; use 1080p there)
- Image ↔ video transitions without black gaps
- Widget
.zipplayback - Offline / cached replay after disconnect
- Reboot + resume
- Screenshot capture
- On/off timer (if capability supported)
- Portrait orientation (if used)
Related docs
docs/api/overview.md— command surfacedocs/guides/black-gap-playback.md— BrightSign transition behaviourdocs/guides/widget-zip-packages.md— widget zip handlingdocs/guides/assets-and-atomic-activation.md— media cache / publish flow- BrightSign player
README.md— build, SD layout, HDMI troubleshooting