MIPI DSI Display
This guide explains how to connect a display to the board, configure it where needed, verify that it is detected, and render content on it.
The Grinn AstraADA-1680 routes the MIPI DSI signals from the Grinn AstraSOM-1680 to the Astra Machina Foundation Series board, so the panel is attached to the Machina board and driven through the adapter.
Connect the Display
Make sure to follow these rules:
- Power off the board and disconnect its power supply before connecting or removing a display panel.
- Connect the panel only to the connector listed below. The MIPI CSI camera connectors use the same FPC form factor, and connecting a panel to one of them may damage either the board or the panel.
Insert the FPC into the 22-pin FPC connector MIPI_DSI (J208) on the Astra Machina Foundation Series board with the contacts oriented as shown below.
Select the Panel
The default device tree already enables a MIPI DSI panel, so a panel can work
straight away with no dtbo variable set at all. To drive a different panel,
enable the Device Tree Overlay that matches it:
| Panel | Device Tree Overlay |
|---|---|
| Waveshare MIPI DSI panel | dolphin-ws-panel-overlay.dtbo |
| Waveshare MIPI DSI panel (1080p) | dolphin-ws-1080p-panel-overlay.dtbo |
| Haier MIPI DSI panel | dolphin-haier-panel-overlay.dtbo |
Change the Active Panel
Open a serial console as described in Access the Device, power on the board, and press any key when prompted to stop autoboot.
At the U-Boot prompt, select the overlay for the attached panel and boot:
setenv dtbo dolphin-ws-panel-overlay.dtbo
saveenv
boot
The setting is persistent, so the board keeps using the selected panel across reboots. To go back to the panel enabled by the default device tree, clear the variable:
setenv dtbo
saveenv
boot
Overlays are comma-separated, so a panel overlay can be combined with others.
Setting dtbo replaces the whole list, and any overlay that was previously
enabled has to be repeated.
Verify the Display
On the host, enter the target shell:
adb shell
In the target shell, list the DRM connectors and their status:
for status in /sys/class/drm/card*-*/status; do
connector=${status%/status}
printf '%s: %s\n' "${connector##*/}" "$(cat "$status")"
done
The connector the display is attached to has to be reported as connected, for
example:
card0-DSI-1: connected
card0-HDMI-A-1: disconnected
If the connector is missing or reported as disconnected, check the
connection as described above.
Keep this target shell open for the examples below.
Use the Display
The image runs a Wayland / Weston compositor by default, so the desktop appears on the display as soon as it is detected. The following steps run in the target shell.
Point the Wayland clients at the running compositor first:
WAYLAND_SOCKET=$(find /run/user -mindepth 2 -maxdepth 2 -type s -name 'wayland-*' -print -quit)
export XDG_RUNTIME_DIR="${WAYLAND_SOCKET%/*}"
export WAYLAND_DISPLAY="${WAYLAND_SOCKET##*/}"
Then render a test pattern full screen:
gst-launch-1.0 -v videotestsrc \
! video/x-raw,format=NV12 \
! waylandsink fullscreen=true
A color bar pattern covering the whole display confirms that the pipeline works
end to end. Press Ctrl+C in the shell to stop it.
Use Both Displays at Once
The board drives the MIPI DSI panel and the HDMI display as two independent outputs at the same time, and both of them can be configured to run Weston. Connect the second display as described in the HDMI display guide.
With both attached, the verification command reports both connectors as
connected:
card0-DSI-1: connected
card0-HDMI-A-1: connected
Mirroring the same output to both displays is not supported.