What "Certified Hardware" means. Only entries listed below as
Certified or Certified with limits are Certified Hardware
under ScreenTinker agreements. ScreenTinker has tested those models, keeps a unit of each in its
test lab, and support obligations attach to them.
What it does not mean. Entries listed as Community reported, Known issues
or Not supported are not Certified Hardware and carry
no support commitment. They are published because knowing what other people
have run, and what does not work, is useful when you are choosing what to buy.
ScreenTinker is open source and runs on far more hardware than this list. Certification is a
statement about what ScreenTinker has tested and will support, not about what is capable of
running the software.
Affiliate links. Some device cards below include a
"Buy this device" link that is an affiliate link. If you buy through one, ScreenTinker may earn a
commission at no extra cost to you. This has no bearing on what gets certified or how it is
tested: certification is decided on the bench, never by whether a link earns anything.
Certified (5)
Tested by ScreenTinker, works, and supported under ScreenTinker agreements. A unit of each is kept in the ScreenTinker test lab for regression testing.
Web player, running in an roHtmlWidget under the BrightSign autorun package (autorun.zip: autorun.brs plus st-bridge.js)
Maximum resolution
1920x1080
Validated on
2026-08-07
Validated by
ScreenTinker
Tested against
1.9.33
Minimum ScreenTinker version
1.9.33
Manufacturer end of life
Not recorded
The player code is the ordinary web player, unmodified. The BrightSign-specific part is the host around it: autorun.brs owns the widget lifecycle, identity across reboots, recovery from a dead server, and video-mode and multi-output control, with st-bridge.js as the page's half of that contract. This package has to be installed on the player.
BrightSign's HTML widget does not reliably come back from a page reload. That is why the host exists: on deploy the page asks for a restart and autorun.brs tears the widget down and builds a new one, which is a restart the operating system actually performs. Without that host a deploy can darken the panel until someone power-cycles it.
The same hardware can also run the ScreenTinker server itself rather than only the player. That is a separate configuration with its own requirements, listed below.
#BrightSign Series 5, running the ScreenTinker server
Manufacturer
BrightSign
Model numbers
XT245
Category
Media player
Operating system
BrightSign OS 10
ScreenTinker player
The ScreenTinker server itself, as a real Node process, with the player running in the widget beside it
Maximum resolution
1920x1080
Validated on
2026-08-15
Validated by
ScreenTinker
Tested against
1.9.36
Minimum ScreenTinker version
1.9.36
Manufacturer end of life
Not recorded
This is the whole system on one box: no separate server to host, and the panel keeps working if the network does not.
BrightSign OS 10 is required, and is not optional. The server runs on the Node runtime that ships with OS 10. OS 9 can run the player but cannot run the server.
NVMe or SSD storage is REQUIRED. Do not run the server from an SD card. A server writes continuously, to its database, its write-ahead log, its media library and its logs, and that load will wear out an SD card and take the site down with it. This is why the entry names the XT245, which takes a 128 GB NVMe drive, rather than the Series 5 generally.
Server mode is off unless you ask for it. It listens on port 8181.
Install from the autorun-server.zip and server-payload.zip assets published with each release. The payload installs in two stages; a single combined archive is not usable because the boot-time archive reader does not handle one that large.
Newer than the player configuration, which has been running since 2026-08-07. Treat it accordingly.
The panel is 1280x800. It was tested with 1080p content, which the device downscales to fit, so a 1080p playlist plays correctly but is not shown at full resolution.
Requires ScreenTinker 1.9.4 or later. Earlier Android builds could strand a panel on "waiting for content" after a restart, with no recovery short of clearing the app and re-provisioning (issue #162, fixed 2026-07-10).
Tested on Chrome and Firefox. Edge is expected to work but has not been tested.
Point the browser at /player on your server. Nothing is installed.
No minimum browser version has been established.
There is no ScreenTinker version floor either. The browser has been a supported display since the first release, and it is re-tested with the current one.
Community reported (4)
A user reports that this works. ScreenTinker has not tested it and keeps no unit. These are NOT Certified Hardware and carry no support commitment.
ScreenTinker holds no Tizen hardware. This entry rests on user reports and carries no support commitment.
Tizen is not turnkey. There are three install routes and each has a catch.
The released .wgt is unsigned and is for inspection only. Samsung distributor certificates are locked to the DUID of the signer's own panels, so a .wgt we signed would not install on yours.
Native install needs a Samsung certificate tied to each panel's DUID.
The SSSP URL Launcher route works without per-panel signing on your side: the server hosts sssp_config.xml and the panel installs itself, then reinstalls whenever the version bumps.
The simplest route is to point the panel's browser at /player, with no signing at all.
There is no in-app update for this player. A panel keeps its installed build until it is reinstalled.
Requires ScreenTinker 2.0.8 or later. A content security policy added in 2.0.0 black-screened Tizen 5.0 panels and was removed in 2.0.8 (issue #330).
webOS 4.x, 5.x and 6.x, and webOS Signage 22 and later
ScreenTinker player
webOS .ipk shell around the web player
Maximum resolution
Not recorded
Validated on
Not recorded
Validated by
Community
Tested against
Not recorded
Minimum ScreenTinker version
2.0.8
Manufacturer end of life
Not recorded
Community contributed. No LG panel was available to ScreenTinker, so no unit is held in the lab and this carries no support commitment.
Installed from a USB stick or an SI server. No vendor signature is needed.
Built without LG's SCAP library, which LG's licence does not allow us to redistribute. Power control and self-update therefore need a local build with the LG SDK files in place. The dashboard hides those buttons on a panel that reports it cannot do them.
webOS 3.x and older are below the player's baseline and are shown a compatibility message rather than a black screen.
Android TV hardware in general is not certified. Individual models are listed separately when ScreenTinker has tested them.
With group sync enabled the player warms the next clip on a second video decoder shortly before each item boundary. Some chipsets allow only one decoder at higher profiles, and the second request can reclaim the decoder already playing. The picture holds, no error is raised, and the playlist stops advancing.
Reported on Xiaomi Mi TV P1 panels (issue #333) and fixed in 2.0.8. The chipsets that behave this way have never been identified.
#LED video wall (Colorlight processor + Raspberry Pi)
Manufacturer
Not recorded
Model numbers
Colorlight X4, Colorlight X8
Category
Single-board computer
Operating system
Raspberry Pi OS (Wayland / labwc)
ScreenTinker player
Web player in a kiosk browser on a Raspberry Pi 4
Maximum resolution
The wall's native mode, e.g. 2808x648 (13x3 modules of 216x216)
Validated on
2026-09-22
Validated by
Community
Tested against
2.1.5
Minimum ScreenTinker version
Not recorded
Manufacturer end of life
Not recorded
Reported by Watterott electronic GmbH (Leinefelde-Worbis, Germany), who run ScreenTinker on LED walls in production. ScreenTinker holds no LED wall and this entry carries no support commitment.
The LED processor is configured once with the wall's native resolution and advertises it to the player over EDID. The Pi picks it up on boot as if a monitor with that native mode had been plugged in — nothing is configured on the Pi and ScreenTinker needs no LED-wall feature.
⚠️ Android streaming sticks cannot drive one. Fire TV, Google TV Streamer and similar only output from a fixed list of resolutions, so they cannot produce a wall's native mode. Use a Raspberry Pi or a small x86 PC.
Colorlight processors can crop and scale instead, but a 4K-class processor large enough to cover the wall without quality loss costs roughly double, and scaling means no longer driving the native pixel grid.
Brightness, colour calibration and gamma belong to the LED processor and receiving cards, not to ScreenTinker.
To blank a wall out of hours, set a device-level default image rather than putting a black image in the timetable.
Tested with MLS LED modules and Colorlight receiving cards, connected to the processor over HDMI.
Vega player (vpkg). Played on one AFTCA002, then the process died
Maximum resolution
1920x1080
Validated on
2026-09-24
Validated by
ScreenTinker
Tested against
2.1.6
Minimum ScreenTinker version
Not recorded
Manufacturer end of life
Not recorded
Vega OS, not Fire OS. The Android APK does not install. The player is vega/ (see docs/vega-player.md): the web player inside an installed WebView.
Played on one AFTCA002 (ScreenTinker 2.1.6, Kepler 1.2): paired, reported 1920x1080, transitions ran, then the process died in-process. Not certified. Do not buy it for a sign until this entry changes.
Crashes on this stick were a compositor abort, not memory: three died on the same libkepler_slatium stack at a video/image boundary, one with 72 MB of CMA free and no memory stall. Drawing a <video> frame for a transition is what trips it, so video boundaries hard-cut and image transitions stay. CMA pressure is real but survivable — measured falling below 5 MB in 21 of 60 samples, bottoming at 668 kB, with no crash. A 13-minute run across a 44-second image/video cycle was clean.
Group sync does not warm a second video decoder. A second decoder is another CMA claim.
1920x1080 is what that AFTCA002 reported. The stick can output 4K, so this may be the panel or the HDMI link, not a device ceiling.
Offline cache worked on that run: a service worker was in control, images cached, and video decoded offline.
No device-owner kiosk, reboot, RTSP, or package self-update. Back does not quit the app, and that is the whole of the lifecycle control.
Vega OS, not Fire OS. The Android APK does not install. The player is vega/ (see docs/vega-player.md): the web player inside an installed WebView.
Not run on an AFTCL001. The 4K Select run is the only evidence, and that stick is not certified either. Do not buy it for a sign until this entry changes.
Same player as the 4K Select. Transitions are declared. Group sync does not warm a second decoder, because that is a second CMA claim. The earlier browser attempt was not reliable.
1080p is the product's output, not a measurement of this app.
No device-owner kiosk, reboot, RTSP, or package self-update. Back does not quit the app, and that is the whole of the lifecycle control.
None. There is no ScreenTinker player for tvOS and none is planned.
Maximum resolution
Not recorded
Validated on
Not recorded
Validated by
ScreenTinker
Tested against
Not recorded
Minimum ScreenTinker version
Not recorded
Manufacturer end of life
Not recorded
⚠️ tvOS ships no web view. WKWebView is not in the public tvOS SDK and Apple's Human Interface Guidelines state web views are not supported on tvOS. Every ScreenTinker player is the web player inside a shell, and there is no shell to build here.
An app cannot carry its own engine: tvOS grants no JIT permission, and App Store guideline 2.5.6 requires web-browsing apps to use Apple's WebKit, which tvOS does not offer. Shipping a private web view is what gets apps rejected.
A native player was scoped and declined. It could do images, video, HLS, zones, schedules and proof-of-play; it could not do widgets, HTML bundles, web pages in a zone or picture-in-picture, or YouTube — all of which are HTML.
YouTube is not recoverable. The YouTube app on Apple TV is Google's own native client against their private backend. What Google publishes to third parties is the iframe embed, which their terms require to run in a web view and whose supported platforms are iOS, iPadOS and macOS — not tvOS.
⚠️ Unattended operation requires MDM. Without Single App Mode on a supervised device, an Apple TV sleeps and does not relaunch the app after a power cut. A screen that needs somebody to find the remote is not a digital sign.
No sideloading, and every update passes through App Review — so the release cadence would not be ours.
Use a Raspberry Pi, a small x86 PC, an Android TV box, or a Samsung/LG commercial panel. All cost less, install freely, recover from a power cut by themselves, and run the full player. See docs/tvos-player.md for the full decision record.
This would change if Apple shipped a public web view on tvOS. It would then be the same small shell built for the Vega Fire TV sticks.
Android panels, and why we recommend a player plus a display
No commercial Android signage panel or all-in-one commercial display has been validated to
date. If you have arrived here holding a listing for a white-label Android panel, that is the
gap you are looking at. It is not a judgement about that panel. It means nobody at ScreenTinker
has had one on a bench, so it cannot be certified and no support obligation can attach to it.
The recommended path is a certified player driving a commercial display over HDMI. The player
is the part that runs ScreenTinker, and it is the part that gets certified. The display
itself is not player hardware and does not require certification. Any commercial
display with an HDMI input will work, and you are free to choose it on the things displays are
actually chosen for: panel quality, brightness, operating hours, warranty and size.
That separation is deliberate. It keeps your display choice open, it keeps the part that runs
software cheap and replaceable, and it means a failed player is a swap rather than a
replacement screen.
Getting a device certified
If you need a specific model certified, contact ScreenTinker support and say which model and how
many screens are involved. Validation of non-certified hardware is a paid engagement for
reseller partners, and the result is published here whatever the outcome, including a
Not supported entry if that is what the testing shows.
If you are running something that is not on this list and it works, tell us. Community reports
are welcome and are published as Community reported. That is not certification, and it is
stated as such, but it helps the next person choosing hardware.