[RC] Latest Beta or Release Candidate
Added
- Support for connection to hidden Wi-Fi networks
- Support for Wi-Fi enterprise networks with EAP-TLS, EAP-TTLS and EAP-PEAP authentication methods
- Support for Snippet running in Node.js environment (super-visor agent, independent on
windowobject) - Support for Snippet with only HTML/JS provisioning (no BRS/BrightScript needed)
- Auto verification
organizationUidis passed to the HTML widget using query parameter - Showing HTML Widget is not blocked by ready message anymore (it's shown immediately)
- Registry-based video mode configuration to enabled simple setup of CX5 units with multiple HDMI outputs
Fixed
- Improved flushing of the serial port
- Extracting ZIP files is now much faster thanks to switching to a different decompress lib
- Websecurity for the main HTML Widget is now dynamically set via registry key
websecurity
[2.4.1] - 2026-01-29
Fixed
- Issue with content guard extension, when device is on
portraitorientation
[2.4.0] - 2025-12-16
Added
- Browser widget and Applet widget are not configurable with brightsign flags for web security and other behavior
- Support for Series 6 players
- Initial support for
PluginsandRunners - Method
screenshotUpload()now supports headers to be set for the upload request - Recovery script to force-install CoreApp if standard process fails
- Enforce Garbage collection every hour and reboot after 24 hours of uptime
- On device content guard extension
Fixed
- Crashing on old firmwares due to missing polyfills for
Object.fromEntries()from Front Display library - Issues with playing videos on FW 8.x, every other video did not play audio correctly
- Memory leak issues with getting storage unit info, setting NTP serve etc.
- Issues with recognizing correctly supported 4K resolutions on some models
- Upgraded OSD version with fixed keyboard issues on Wi-Fi Setup Page
- Allow stream video from internal HDMI port
- LS5 models now correctly supports 4k resolutions
- Decreased volatile latency while starting video playback by 200-800ms to ensure reliable on-time playback
[2.3.4] - 2025-10-20
Fixed
- Resolve video playback issues that causes video playback to stall due to internal Brightscript error
- Limit On Screen Keyboard only on XT device and specific FW
- Native debug is now truly disabled after disabling it on cloud
[2.3.3] - 2025-09-24
Fixed
- Upgraded OSD version with fixed keyboard issues on Wi-Fi Setup Page
- Issues with counting Wi-Fi strength signal on FW 9.x and 8.5
[2.3.2] - 2025-09-12
Fixed
- Memory leak issues with getting storage unit info, setting NTP serve etc.
- Issues with playing videos on FW 8.x, every other video did not play audio correctly
- Issues with recognizing correctly supported 4K resolutions on some models
[2.3.1] - 2025-08-12
Fixed
- Crashing on old firmwares due to missing polyfills for
Object.fromEntries()from Front Display library
[2.3.0] - 2025-08-07
Added
- Support for BrightSign JS API in Custom Scripts
- The serial port now flushes data automatically each time it is opened.
- Browser (sos.browser.open) has additional security options that can be set via registry keys
- Support for LG UV5N running BrightSign OS 9
- Support for Secrets in Applet configuration
- Support for creating scheduled power actions via applet JS API
Fixed
- Result from Custom Script Execution is now correctly returned
- BrightSigns that support UHD/4K browser will continue rendering in the highest possible resolution while other models will default to graphicalPane resolution to limit overscaling of video playback
- Adjust limitation for portrait orientation only to non-UHD devices
- Updated serial port functionality to align with the latest firmware version
- Running application on SSD storage without SD card
- Improved flushing of the serial port
- Extracting ZIP files is now much faster thanks to switching to a different decompress lib
- Custom FW type
XD1034-Wis now recognized as standard FW typeXD4 - Additional model
HS124is now recognized as standard FW typeHS4 - Issue with
getFile()method onLS4 - Updated PDF.js and optimized performance to render PDF files faster
- Throwing error on getting temperature which is not supported
- Incorrectly returned capabilities for display orientation
- Proxy is correctly set for browser instance based on network configuration for wifi device
- Selecting correct storage type if SSD and SD card are both present
[2.2.0] - 2025-03-14
Added
- Support for disabling hardware acceleration with JS API
Fixed
- Issue with instant screenshots
- Update OSD to fix issues with opening after startup
[2.1.5] - 2025-01-22
Fixed
- Custom FW type
XT1144-PPis now recognized as standard FW typeXT4 - On Screen Keyboard is automatically closed if user exit the Browser (e.g. calling
sos.browser.close()) - Endless streams now end less! Streams are now properly connected again when the source of the stream is available. Furthermore, the redundant
connectedevent on the stream is also eliminated.
[2.1.4] - 2024-12-13
Fixed
- OSK is enabled on FW 8.5.60 as well, previously was only available on 8.5.53.x
[2.1.3] - 2024-12-05
Fixed
- Browser window keeps the current location and size of the window even if user navigates to target=_blank link; previously it defaulted to fullscreen window
- Failure when driver throws an error during telemetry gathering
[2.1.2] - 2024-11-20
Fixed
- Issues with opening browser links with target="_blank" attributes
[2.1.1] - 2024-11-13
Fixed
- Added scrollbars with mobile-like behavior to HTML widgets
- OSK is now set to position at the bottom of the screen with full width layout
- Proxy configuration is enforced for screenshot uploads to allow screenshots to be uploaded to server
- File system overcoming browser restrictions and serving correct mimetype and file size
- Optimised file upload handling to improve reliability and performance
[2.1.0] - 2024-10-31
Added
- Embedded On Screen Keyboard for filling forms on websites
- Support for custom scripts execution as HTML with embedded JS
- Added support for RTS/CTS handshaking in serial port communication for compatible devices
- Native implementation for Browser open method that securely loads 3rd party websites with X-Frame-Origin headers
- Rewrite network management to use BrightSign JS API
- Rewrite wifi management to use BrightSign JS API
- Management Driver reports if Front is enabled
Fixed
- Make snippet interface aligned with other platforms
- Wifi signal strength detection on Series 5 players uses correct method and report valid data
- Network gateway detection on Series 5 players uses correct method and report valid data
- Manually setting network DNS no longer sets 0.0.0.0 values; it handles an array of servers properly and sets them accordingly
- Network stats on FW 8.5 no longer increase memory usage as now are processed by JS APIs instead of native unix calls
- Single video loop no longer depends on time-related events and perform reliably on all BrightSign generations
- Issues with playing portrait videos on XD1024, for now it's limited to play one video on this model
- Issue with extracting large ZIP files
- Allow to send byte array/Uint8Array via serial port
- Filesystem wipeout now erases
/sd/system/file-systeminstead of/sd/system/file-system/data - OS-level proxy server configuration is passed to browser instances as well to ensure devices work in proxy-enabled networks
- BrightSign CloudControl can now be used with BrightAuthor presentation packages
[2.0.4] - 2024-06-03
Fixed
- BrightSign now reports CPU load in 0-100% range. Previously reported I/O load with valued 0-unknown.
- Wifi scan function now returns all available networks as encrypted
- Added support for
HS5model (built-in Moka)
[2.0.3] - 2024-04-25
Fixed
- Incorrect mapping values for parity bits in serial port configuration
- Enabled pinch_to_zoom on HTML websites for better gesture support
- Polyfill
Object.fromEntries()andObject.entries()for old devices - Brightsign now automatically select the highest available framerate to provide better support for device policies which previously always defaulted to the lowest available framerate
- Streamed videos play again for as long as needed instead of ending after few seconds
[2.0.2] - 2024-04-15
Fixed
- Native debug now works again on all BrightSign generations; broken since 2.0.0
[2.0.1] - 2024-03-28
Fixed
- Issues with changing timezone and NTP in Snippet
[2.0.0] - 2024-03-15
Changed
- Rewrite some parts of application to use BrightSign JS API
Added
- Snippet support
- Remote Desktop support
- Support for stream protocol type as string
Fixed
- Removed mousemove event because it was causing issues
- Random not resolving ready message in BS initialization
- Reporting of device frame rate with resolution
- P2P Synchronizer
- Changing orientation only updated BS registry not the actual HTML
[1.9.0] - 2023-09-13
Added
- Pack new autorun.zip with builded app with autozip.brs
- Support Wifi connection via ssid and password
- Support scanning of available Wifi networks
- Bundled app is builded with autorun.zip
- Support for running app on SSD
- P2PSynchronizer support of broadcastValue
- Applet Management API support for
setProprietaryTimer()andgetProprietaryTimers() - Added support for Generation 5 (LS5, HD5, XD5, XT5, XC5)
- Missing implementations for device brand info
- Handler for sending info about remote debug to FA
- Handler for refreshing applet from FA
- Polymorphic synchronizer that can be used for both P2P and server synchronizer
- Support for UDP Synchronizer
- Reporting of device
firmwareType - Support for new file system wipeout
Fixed
- TimezoneId is correctly parsed for displaying in box
- Video playback on LS/HD not correctly follows video life cycle and runs smoothly
- Video playback on XT/XD/XC improves stability and looping with multiple video slots
- Downloading files if server blocks HEAD requests
- The process of building aurozip.brs is now more robust
- Base URL for
/timeendpoint to configuration server (instead of platform server) - Remove unused
volumefrom proprietary timers management, policy and telemetry - Remove native and proprietary timer using Applet JS SDK
- New alternative bridge function for delete proprietary timer (keep old one for backward compatibility)
- Succeed actions for PowerActions are send before restarting
- Hardware barcode scanner start (propage
scannerIdto native API) - Size on html element is correctly set when device supports 4k or custom resolution
- Native Debug on firmware versions higher then 8.5
- Memory leaks with getting storage info or uploading and downloading files on LS/HD versions
- Front-OSD with selection wifi networks
[1.8.0] - 2023-01-30
Added
- Device now rejects prepare and play on unsupported video formats
- File System with reserved space
- getArchiveSize method to File System
- Device reports its OS version & brand
- Support for serial ports
Fixed
- More robust time manager to get/set timezone or/and NTP server
- Streams are now prepared and played correctly
[1.7.1] - 2022-11-24
Fixed
- EventEmitter memory leak when playing videos without
stopcalling
[1.7.0] - 2022-10-04
Added
- CPU & Memory usage
- Wifi SSID & Wifi signal strength
- Proxy info
- Device reports manufacturer brand
Fixed
- Gapless video playback
- Resizing to 4k when PORTRAIT orientation set results into failed action
- Videos Promises are rejected after applet actions
- Keyboard keycodes
[1.6.1] - 2022-03-18
Fixed
- User defined applet preferred over bundled applet when both are set at the same time
[1.6.0] - 2022-03-08
Added
- Default resolution is 1280x600 and default framerate is 60 Hz for models HSxxx
- Custom hooks on first and every start at BrightScript level in custom.brs file that persists between app upgrades
- Building bundled applet with prebuilt subscriptionType
- Upgrading app from JS API or OSD using direct package URL
- AppendFile method to File System
- Allow parametrize bundled applet with configuration
- Add CRC32 hash algorithm
- Front-OSD support
- Absolute firmware upgrade URLs
- Supported video modes are obtained when device started and won't saved into registry anymore
- Saving applet actions to local file, when device is offline and uploading after connection is fixed
[1.4.0] - 2021-10-14
Added
- Notify about supported resolutions and frame rates
- Resolution and frame rate can be set to some supported values
- Device policy support
- Device telemetry support
- Implemented
getDurationmethod - Allow redirecting during downloading files
Fixed
- Setting of device time and timezone returns success (platform needs reboot/restart, do it after 1s)
- Touch event supported in all cases
- Setting video state to incorrect value IDLE when PLAYING event received from BS layer
- Internal file system acceptance tests no longer require mounted external storage
- Video acceptance tests no longer report failure when playback succeeds despite unsupported capability (4K, video count)
- Temporarily disable licensing algorithm due to issues
- All actions are correctly bound
- Support
APPLET_ENABLEandAPPLET_DISABLEscheduled power actions - Network interfaces info
- Disabling CORS in the browser
- If video ends before its natural end and stop method wasn't invoked MEDIA_ERROR event will be emitted
- Query params in file system local URIs works now
- Native timers properly deleted when off
- NTP time from server reimplemented
- Video has state PLAYING unless stopped manually
- Correctly report active network interface
- Display off/on behavior when timers are not set
- Delay after device is provisioned to box
[1.3.0] - 2020-11-11
Added
- Touch event can be propagated
- Automatic streams reconnection and connected/disconnected events
- Capability to play videos behind HTML content
- List of connected HDMI or VGA monitors
[1.1.0] - 2020-08-12
Fixed
- Bug when collecting temperature and battery status on startup (critical when native methods throws error after boot)
- Longer deprovisioning timeout before reboot to give the display enought time to delete all cached data and files
- Use smaller resolution videos in acceptance tests that play multiple videos side by side because some platforms struggle to process more than one full HD video at a time
- The built-in browser now loads websites that enforce same origin policy
- When proprietary timers are disabled while the display and content are off, the display and content will be turned on
- Reboot device automatically when App or FW upgrade is performed in open management
- When device is offline, increase the interval between reconnect attempts progressively from 5s up to 5 mins
- Device registration occasionally failing during first boot
- Make longer and configurable check interval on platform configuration (30s -> 60s)
- Native debug will always do the configuration check interval 30s
- Removed dependency on navigator.onLine for websocket connections management. Navigator.onLine in certain edge cases doesn't provide accurate information if the device can access internet or not.
-
sos.display.supports('VIDEO_4K')correctly returns true on models that support 4K video playback - Possible memory leak in video player when one gapless video is playing in infinite loop
Added
- Support for set NTP time from server
- ACL domains support for the built-in browser
- New OSD dark blue design
- OSD manual network settings
- Front applet debug isEnabled API support
- Default PIN code is 0000 until device is connected to internet
- PIN code set/get support for JS management API
- Remote management of multi-file applets (applet packages). Applets originally designed for
Openusers can be used byPlatformusers now as well.
[1.0.0] - 2020-02-28
Changed
- Device firmware is upgradable through API: https://docs.signageos.io/api/device-management-api/#Set_Device_Firmware_version
- Major internal changes in a communicataion APIs (socket connections uses new API /v2/ which is not backward compatible)
- Play videos via native BrightScript instead of HTML video tags
- Play streams via native BrightScript instead of HTML video tags
- New internal FileSystem API (File system file names can contain any character except specials (same as Win FS) & can has folders separated by slash /)
- Updated setting of device DateTime according to changed interface
- Moved
getNetworkInfo()asnetwork.getActiveInfo()
Deprecated
- Open browser in front-applet via method
sos.browser.openLink(). Replaced bysos.browser.open().
Added
- Device can be tested for supported HTML5 features to perform a HTML5test score (available on a request): https://html5test.com/
- Releases are now Semantic version ready: https://semver.org/
- Applet, Video & video wall synchronization feature: https://docs.signageos.io/api/sos-applet-api/#Sync_playback_across_multiple_devices
- Remote control Key UP binding: https://docs.signageos.io/api/sos-applet-api/#Input
- Scheduled power action: https://docs.signageos.io/api/device-management-api/#Create_Device_Scheduled_Power_Action
- Cache now supports extra headers as additional to URI: https://docs.signageos.io/api/sos-applet-api/#Saving_files_into_device_internal_memory
- Enable applets to get file/content uids (https://docs.signageos.io/api/sos-applet-api/#List_all_files)
- Enable applets to delete files/contents (https://docs.signageos.io/api/sos-applet-api/#Delete_file)
- Methods for getting and validating MD5 file checksum (https://docs.signageos.io/api/sos-applet-api/#Checksum_file_md5)
- Applets can receive commands from server sent through REST API (applet dispatch command to device) (https://docs.signageos.io/api/sos-applet-api/#Command_Receiving)
- Redesign verification pages
- Fake portrait (or video orientation LANDSCAPE) support settable over API when call device resize
- ZIP decompression in file system: https://docs.signageos.io/api/sos-applet-api/#Decompress_file_ZIP
- HDMI input support
- Low level file system support for front applet
- Applet DISABLE/ENABLE power actions
- It's possible now to configure the application build to use a local applet file instead of getting applet timings from the cloud
- signageOS Open - build with an applet bundled inside the package and make the device automatically verify against the owner's organization on the server
- Always save applet and front applet binaries to internal memory to improve performance and stability
- Management get application version in front-applet
sos.management.app.getVersion() - Browser API for opening/closing browser window
- File system methods copyFile and moveFile allow to optionally overwrite destination path
- Management API for network set manual, set DHCP
- Video API acceptance tests
- When acceptance tests are running, mute applet so it doesn't conflict with the tests
- Video API supports 4K video (on models that support 4K playback)
- getTimers method in management API
- New capability to set/get timezone and time
- Handle deprovisioning directly on device
- Test Frameworks tests are now able to be skipped
- Management get application version in front-applet
sos.management.app.getVersion() - Browser API for opening/closing browser window and optionally specify a whitelist/blacklist of domains.
- Optional videoThumbnailUriTemplate in file properties
- File system methods copyFile and moveFile allow to optionally overwrite destination path
- FILE_SYSTEM_LINK capability (not supported on BrightSign)
Fixed
- Suspend videos/streams when a proprietary timer is triggered
- Switch between applet timings fast and gapless
- Fix tap/double tap touch detection 600 ms delay on an every tap
- Stabilize a network connection using better WebSocket low level libraries
- When cache downloading returns non OK HTTP status code it will fail downloading & try it again
- Weinre debugging is back compatible working with appletEnabled flag
- MD5 checksum will produce correct md5 even for binary files
- Fix not reacting on some monitoring actions from server (temperature, screenshot, battery & storage status, device info)
- Eventually occurrence of error during downloading content from internal storage
- Open applet binary html and front applet js can be absolute or url (fix missing / slash in protocol)
- Replaced moment object by Date/timestamp in methods for setting device date and time
- Ping period issue for open and platform
- Applet commands to device (timing commands) for Open builds
- Set current time with timezone
- Casually not loading of applet after restart app
- Better user information durring register, verify process (including offline page)
- readFile works in every case
- Test Framework now handles errors properly
- Refreshing of open with turned to platform
- Open applet binary html and front applet js can be absolute or url (fix missing / slash in protocol)
- Ping period issue for open and platform
- Device Audio test fixed
- Device test framework malfunctions and misbehaving fixed
- Applet commands to device (timing commands) for Open builds
- First start of display when the applet is bundled inside app (Open)
- Open app installed to deprovisioned device
[0.1.0] - 2018-06-12
Fixed
- Computing DUID of device based on serial number (not model)
Added
- Changelog file containing all changes in current project