Skip to content

Update instruction for setting up TD2 on Compute Modules #4084

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions documentation/asciidoc/accessories/display/display_intro.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -159,3 +159,7 @@ To specify these options, add them, separated by commas, to your `dtoverlay` lin
----
dtoverlay=vc4-kms-dsi-7inch,sizex=400,invx,invy
----

=== Installation on Compute Module based devices.

All Raspberry Pi SBCs auto-detect the official Touch Displays as the circuitry connected to the DSI connector on the Raspberry Pi board is fixed; this autodetection ensures the correct Device Tree entries are passed to the kernel. However, Compute Modules are intended for industrial applications where the integrator can use any and all GPIOs and interfaces for whatever purposes they require. Autodetection is therefore not feasible, and hence is disabled on Compute Module devices. This means that the Device Tree fragments required to set up the display need to be loaded via some other mechanism, which can be either with a dtoverlay entry in config.txt as described above, via a custom base DT file, or if present, a HAT EEPROM.
7 changes: 7 additions & 0 deletions documentation/asciidoc/accessories/touch-display-2/about.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -127,3 +127,10 @@ To specify these options, add them, separated by commas, to your `dtoverlay` lin
----
dtoverlay=vc4-kms-dsi-ili9881-7inch,sizex=400,invx,invy
----

=== Installation and software setup on Compute Module based devices.

All Raspberry Pi SBCs auto-detect the official Touch Displays as the circuitry connected to the DSI connector on the Raspberry Pi board is fixed; this autodetection ensures the correct Device Tree entries are passed to the kernel. However, Compute Modules are intended for industrial applications where the integrator can use any and all GPIOs and interfaces for whatever purposes they require. Autodetection is therefore not feasible, and hence is disabled on Compute Module devices. This means that the Device Tree fragments required to set up the display need to be loaded via some other mechanism, which can be either with a dtoverlay entry in config.txt, via a custom base DT file, or if present, a HAT EEPROM.

Creating a custom base Device tree file is beyond the scope of this documentation, however, it is simple to add an appropriate device tree entry via `config.txt`. See this xref:../computers/compute-module.adoc#attaching-the-touch-display-2-lcd-panel[page] for configuration details.

36 changes: 28 additions & 8 deletions documentation/asciidoc/computers/compute-module/cmio-display.adoc
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
== Attach the official 7-inch display
== Attaching the Touch Display LCD panel

Update your system software and firmware to the latest version before starting.
Compute Modules mostly use the same process, but sometimes physical differences force changes for a particular model.

=== Connect a display to DISP1
=== Connect a display to DISP1/DSI1

NOTE: The Raspberry Pi Zero camera cable cannot be used as an alternative to the RPI-DISPLAY adapter. The two cables have distinct wiring.

To connect a display to DISP1:
To connect a display to DISP1/DSI1:

. Disconnect the Compute Module from power.
. Connect the display to the DISP1 port on the Compute Module IO board through the 22W to 15W display adapter.
. Connect the display to the DISP1/DSI1 port on the Compute Module IO board through the 22W to 15W display adapter.
. _(CM1, CM3, CM3+, and CM4S only)_: Connect the following GPIO pins with jumper cables:
* `0` to `CD1_SDA`
* `1` to `CD1_SCL`

. _(CM5)_ On the Compute Module 5 IO board, add the appropriate jumpers to J6, as indicated on the silkscreen.
. Reconnect the Compute Module to power.
. Add the following line to xref:../computers/config_txt.adoc#what-is-config-txt[`/boot/firmware/config.txt`]:
+
Expand All @@ -24,15 +24,17 @@ dtoverlay=vc4-kms-dsi-7inch
----
. Reboot your Compute Module with `sudo reboot`. Your device should detect and begin displaying output to your display.

=== Connect a display to DISP0
=== Connect a display to DISP0/DSI0

To connect a display to DISP0:
To connect a display to DISP0/DSI0 on CM1, CM3 and CM4 IO boards:

. Connect the display to the DISP0 port on the Compute Module IO board through the 22W to 15W display adapter.
. Connect the display to the DISP0/DSI0 port on the Compute Module IO board through the 22W to 15W display adapter.
. _(CM1, CM3, CM3+, and CM4S only)_: Connect the following GPIO pins with jumper cables:
* `28` to `CD0_SDA`
* `29` to `CD0_SCL`

. _(CM4 only)_ On the Compute Module 4 IO board, add the appropriate jumpers to J6, as indicated on the silkscreen.

. Reconnect the Compute Module to power.
. Add the following line to `/boot/firmware/config.txt`:
+
Expand Down Expand Up @@ -61,3 +63,21 @@ To entirely ignore the display when connected, add the following line to `/boot/
----
ignore_lcd=1
----

== Attaching the Touch Display 2 LCD panel

Touch Display 2 is a 720x1280 7" LCD display designed specifically for Raspberry Pi devices (see https://www.raspberrypi.com/products/touch-display-2/). It connects in the same way as the original touch display, but the software setup on Compute Modules is slightly different as it uses a different display driver. See xref:../accessories/touch-display-2.adoc[Touch Display 2] for connection details.

Edit the /boot/firmware/config.txt file and add the following to enable Touch Display 2 on DISP1/DSI1. You will also need to add jumpers to J6 as indicated on the silkscreen.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking at the earlier TD1 instructions, is this J6 jumper specific to CM4 IO board? 🤔

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CM4IO J6 connects I2C to CAM0 and DISP0
CM5IO J6 connects I2C to CAM/DISP1.

No comment on consistency!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Its J6 on both.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(and we probably also want CM 1 / 3 / 4S hookup instructions for TD2?)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are the jumper settings etc. identical for TD1 and TD2? In which case perhaps the "You will also need to add jumpers to J6 as indicated on the silkscreen." phrase here should be removed, and replaced with something like "See the earlier Touch Display instructions for details of required jumper settings." ?
Or (as a bigger change) perhaps it worth separating out the electrical-hookup instructions (jumpers etc.) which are the same for both TD1 and TD2, from the config.txt instructions which are different for TD1 and TD2? 🤔

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are the jumper settings etc. identical for TD1 and TD2

Yes. It's a board level thing, not what display is connected.

[source,ini]
----
dtoverlay=vc4-kms-dsi-ili9881-7inch
----

To use DISP0/DSI0, use the following:

[source,ini]
----
dtoverlay=vc4-kms-dsi-ili9881-7inch,dsi0
----
Loading