> For the complete documentation index, see [llms.txt](https://amobile-solutions.gitbook.io/yocto-developer-guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://amobile-solutions.gitbook.io/yocto-developer-guide/test-and-use-the-interface/display/display-iot-800n-g420.md).

# Display - IOT-800N-G420

## Overview

|            |                                           |
| ---------- | ----------------------------------------- |
| Panel      | Yeebo YB-I1280720B080L13A                 |
| Size       | 8", 1280×720 @60 Hz                       |
| Brightness | 450 cd/m²                                 |
| Contrast   | 1000:1 typical                            |
| Interface  | LVDS, driven by the SoC's own transmitter |
| Backlight  | TPS61169 WLED driver, PWM at 20 kHz       |
| Touch      | ilitek TDDI v4, I2C, projected capacitive |

The display path is `DPI → disp_lvds_tx → panel`. There is no external DSI-to-LVDS bridge on this board, and neither eDP nor DisplayPort is available.

## Checking the connector

```
cat /sys/class/drm/card0-LVDS-1/status
cat /sys/class/drm/card0-LVDS-1/enabled
```

```
connected
enabled
```

```
cat /sys/kernel/debug/dri/0/state | grep -A3 "mode:"
```

```
mode: "": 60 70686 1280 1336 1366 1386 720 840 842 850 0x48 0x0
```

The numbers are the mode timing: 60 Hz, 70686 kHz pixel clock, then the horizontal and vertical parameters. They are fixed in the panel driver rather than coming from the device tree, because the panel has no EDID.

{% hint style="info" %}
`/sys/class/drm/card*/modes` is empty on this platform even when everything is working. That is normal for a panel without EDID and is not a fault indicator.
{% endhint %}

## Backlight

```
ls /sys/class/backlight/
```

```
BL=$(ls /sys/class/backlight | head -1)
cat /sys/class/backlight/$BL/max_brightness
cat /sys/class/backlight/$BL/brightness
```

To change it:

```
echo 500 > /sys/class/backlight/$BL/brightness
```

A sweep is a quick way to confirm the PWM path:

```
for v in 100 500 1023 0 500; do
    echo $v > /sys/class/backlight/$BL/brightness
    sleep 1
done
```

## Touch

```
ls /dev/input/
cat /proc/bus/input/devices | grep -A5 -i ilitek
```

```
evtest
```

Pick the ilitek device and drag a finger across the panel. Expect `ABS_MT_POSITION_X` and `ABS_MT_POSITION_Y` events that track the touch.

{% hint style="warning" %}
Touch power comes from the same rail as the panel. `LCM_PWR_EN` feeds `LCM_3V3`, which supplies `TP_3V3` and also the VCCB side of the TCA9517A repeater sitting in the middle of the touch I2C bus.

If that rail is not raised, the touch controller does not answer on I2C at all — which looks like a dead touch IC rather than a missing supply.
{% endhint %}

## Weston

`rity-demo-image` starts Weston automatically.

```
systemctl status weston
systemctl restart weston
```

To test rendering without Weston:

```
systemctl stop weston
kmscube
```

## Panel power sequence

The driver brings the panel up in two stages:

```
prepare:  enable = 1, wait 100 ms
enable:   wait 10 ms, reset = 1, wait 120 ms, slpout = 1, wait 100 ms
```

{% hint style="danger" %}
The final 100 ms is not padding. Table 18 of the panel specification gives `T_LOAD1` at 20 ms minimum and `T_LOAD2` at 50 ms minimum after SLPOUT goes high, during which the panel loads its parameters from internal flash and stays in Black Frame Mode.

Returning before that completes lets DRM start streaming LVDS video into a TCON that is not ready. The TCON judges the signal invalid and latches into its built-in test pattern, which it does not leave without a full power cycle.
{% endhint %}

## Troubleshooting

### The panel shows a test pattern

See the warning above. The symptom is a colour or geometric pattern instead of the framebuffer, appearing on roughly one boot in three if the timing is too short. Restarting Weston does not clear it; only a power cycle does.

### The panel is dark but the system is running

Check the backlight first — it is a separate path from the panel itself:

```
cat /sys/class/backlight/*/brightness
cat /sys/class/backlight/*/bl_power
```

Then check that the connector reports `connected` and the CRTC is enabled, as above.

### Touch does not respond

```
i2cdetect -y -r 5
```

The controller answers at 0x41. If the bus is entirely silent, the panel rail is probably not up — see the warning about `LCM_PWR_EN`.
