Drive multiple displays
Some KTM boards drive more than one screen with independent content — not a mirror. A menu board on HDMI and an order screen on the panel, from one device. This guide covers what the hardware allows and how to control each output.
First: what your board and chip allow
Display capability is set by the SoC, then by which connectors the board populates. Check both:
| SoC | Independent displays |
|---|---|
| RK3588 | Up to 4 |
| RK3576 | Up to 3 |
| RK3568 | Up to 3 (2 simultaneous on most boards) |
| RK3566 | Up to 2 |
Then the board page tells you which physical outputs exist (HDMI, eDP, MIPI-DSI, LVDS) and which are wired. A chip that supports three displays on a board that exposes two connectors gives you two. See your board page.
Independent vs mirrored
By default Android may mirror. For different content per screen you present to
each display's context — standard Android Presentation / multi-display APIs
drive what shows on each output. ItempApiPub controls the physical side of
each panel: brightness, orientation, backlight, and whether HDMI is on.
import com.itemp.itempapi.ItempApiPub;
// Turn the HDMI output on (e.g. the second screen)
ItempApiPub.setHDMIoutEnable(context, true);
Per-panel orientation
A common multi-screen build has one landscape and one portrait panel. Set an absolute angle rather than stepping:
ItempApiPub.setScreenOrientation(context, "90"); // "0" | "90" | "180" | "270"
See Display for absolute vs stepped rotation — mixing the two models in one app makes the current angle hard to track.
Per-panel brightness and blanking
Independent brightness lets an indoor order screen and a bright-window menu board run at different levels, and lets you blank one screen on a schedule while the other stays live:
ItempApiPub.setScreenBrightness(context, "200"); // "0"–"255"
ItempApiPub.setBacklightEnable(context, false); // blank a panel, board alive
Touch maps to the wrong screen — the classic bug
On a multi-touch, multi-display build, touch input frequently lands on the wrong
panel until the input-to-display mapping is set. If taps on screen B register on
screen A, this is why. The fix is in the platform display/input configuration,
not in ItempApiPub — flag it to your account manager for your specific panel
combination, and test touch on every screen before shipping.
Practical notes
- Simultaneous limits are real. RK3568 supporting "three displays" often means two at full resolution at once on a given board. Confirm the combination you need on your board rather than assuming the chip maximum.
- MIPI-DSI panels need timing set for the exact panel — that is done in the device tree at the factory, not from your app. Tell us the panel when ordering.
- Blank, don't power off, for scheduled dimming if the other screen must stay
up —
setBacklightEnableblanks one panel without touching the board or the other output.
Related
- Display API — brightness, rotation, HDMI, screenshot
- SoC reference — display count per chip
- Board pages — which outputs each board exposes
- Kiosk mode — lock down a multi-screen device