It is time for a high-quality, complete package, 1920x1200 (HD) display set up with a Raspberry Pi Single-Board Computer. In regards to touch screens with Raspberry Pi have looked at Tiny GPIO HAT LCD displays, medium-sized AMOLED maker displays, and the official touch display; so now it is time for a complete package of medium/large displays. Equipped with a slick aluminum case, 10-point touch, mini-HDMI, and 2 USB-C ports, inbuilt stereo speakers, and a full range of inbuilt screen settings adjustable via an inbuilt jog dial, the devices that are not compatible with this screen are far and few between.
These screens come with two high-quality stereo loudspeakers. The inbuilt jog dial makes it easy to adjust the sound on the fly. The same goes for adjusting the brightness levels. Keep the brightness up above 10% as this will prevent any screen flickering.
This screen also comes equipped with a High Dynamic Range (HDR). This is a colour technology that enables a monitor to display a broader spectrum of colours and contrasts. This means that an HDR monitor more realistically displays nuances and colour tones whilst showing more detail when it comes to light and dark. See the contents of this guide below.
- What You Need
- Hardware Set up (Including using the Stand/Case)
- Adjusting Icon, Toolbar, and Window Sizes
- Adjusting Internal Screen Settings
- Adjusting Screen Orientation
- Adjusting Touch Orientation
- Where to Now, Kiosk Perfection and USB-C Power-Pass-Through
Straightforward and to the point is how I would describe this display. The most complex detail when running with Raspberry Pi OS happens when rotating the display as it is crucial to edit the |X11| files so that the touch input rotates as well. The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems. X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting with a mouse and keyboard. Below is an image of the screen orientated to portrait mode working exactly as it should next to a Raspberry Pi Single Board Computer.
As always if you have any questions, queries, or things to add please let us know your thoughts!
What You Need
Below is everything you need to set up your Raspberry Pi 4 Model B with the DFRobot 8.9 Inch 1920x1200 IPS Touch Display.
- A Raspberry Pi Palm-Sized Computer (in my case I have used a Raspberry Pi 4 Model B 2GB but this display is perfect for an earlier lower-spec Pi like the Raspberry Pi 3)
- DFRobot 8.9 Inch 1920x1200 IPS Touch Display (comes with all necessary cords)
- Micro-SD Card flashed with Raspberry Pi OS
- Raspberry Pi Power Supply
- Mouse and Keyboard
The first natural step is to get all the hardware connected up correctly. To do this go through the following steps. Firstly see the image below for what you are presented with when you have the box in hand.
Inside the box, you will find the following: the 1920*1200 High-definition resolution 8.9 inches IPS display, a leather case/stand, Thumb screws to mount the case/stand, a USB-C to USB-C cord, 2 Type-C to USB A Cables, a Mini HDMI to Micro HDMI cable and a Mini HDMI cable to HDMI Cable. See the image below of all of this.
Just for reference the 8.9 Inch Display compared to the size of a Raspberry Pi 4 Model B can be seen in the image below.
When you first pull out the screen the thumbscrews to mount the back stand/case are uninstalled. You can find those thumbscrews inside the Fluro zip lock bag. Line up the case with the display just like the image below and screw them in snuggly.
The below image shows both screen angles that this case/stand can do as well as all the inputs and user buttons that you have on the edge of the Aluminum case with this 8.9 Inch DFRobot Screen.
With that complete insert a flashed Micro-SD card with Raspberry Pi OS installed into your Raspberry Pi Single Board Computer. We will now connect the Raspberry Pi Single board computer as a desktop computer with the DFRobot Display acting as a touch monitor. Connect up the Micro HDMI to the Mini HDMI on the Screen. Connect up using the Bottom USB3.0 to the middle USB-C Port on the Screen. Then connect power to the system via a Raspberry Pi Power supply. See this in the setup below. The Raspberry Pi will provide enough power to run the screen as is. You can see that setup in the image below.
Note - If you are doing high-intensity equations or powering multiple other devices with the Raspberry Pi I would recommend providing power to the screen with another wall Power Supply. This display as it currently stands does not come with a wall power supply.
Adjusting Icon, Toolbar and Window Sizes
Using a Full HD Screen with a Default Raspberry Pi OS results in small icons and toolbars. This can easily be fixed to be more normally sized using the Appearance Settings. The easiest way to get to this setting is by right-clicking with your mouse anywhere on the desktop and selecting Desktop Preferences. See this happening in the image below. From here adjust the Text Size (Font) to 20, adjust the mouse cursor to Large, adjust the Menu Bar to Very Large and adjust the Icon Size to Very Large. Doing all these changes will make for a much nicer user experience.
Adjusting Internal Screen Settings
This screen comes with internal screen settings that can be accessed and navigated by pressing in the Jog Dial. This will let you do everything that is to be expected of a modern display. It will seem very familiar to you if you have ever used a consumer monitor and adjusted the settings on it. My personal preference is to have brightness set at 10%. See this setting being accessed in the image below, this is exactly what will come up when you press the Jog Dial in.
Adjusting Screen Orientation
By default, the display will be in Portrait. Turning this display to the landscape orientation we will need to adjust both the AMOLED display and the touch input. To start by attaching a mouse and keyboard to your system.
Now with the screen operational and Raspberry Pi OS running, the best method to rotate the IPS display is to click on the Raspberry Pi Symbol on the top left of the screen. Scroll down to | Preferences | and then select | Screen Configuration |. Having done this it will open up the | Screen Layout Editor |. From here select the | Configure | top-down menu, go down and hover over | Screens |, hover over | HDMI 1 |, hover over | Orientation |, and select | Right | (or whatever different orientation you desire). Then after a reboot, your screen will be orientated to Landscape mode. Check the image below to see the locations of these options.
Adjusting Touch Orientation
After rebooting you will notice that the touch will now need to be rotated as the Hardware is not aware of the rotation of the screen. To do this we will open up the terminal using that black button on the top left of the screen. Copy and paste each command into the terminal, press Enter, and allow it to finish before moving on to the next command. If ever prompted with “Do you want to continue? (y/n)” press Y and then the Enter key to continue the process.
sudo apt-get install xserver-xorg-input-libinput
sudo mkdir /etc/X11/xorg.conf.d
sudo cp /usr/share/X11/xorg.conf.d/40-libinput.conf /etc/X11/xorg.conf.d/
sudo nano /etc/X11/xorg.conf.d/40-libinput.conf
This opens up a configuration menu that at first glance looks a lot like the | config.txt | file. Scroll to the section referring to the touchscreen. Then add the following statement inside for 90-degree rotation by copying and pasting it directly beneath the | MatchIsTouchscreen "on" |. See the below image for what this will look like with the line added highlighted with a red box around it.
For 90 degree rotation add --> Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1"
Once you have done you can now, like before, press Ctrl-X, Y, and then Enter Key to save these changes. Then reboot your Raspberry Pi System to make these changes present. After completing these steps the IPS will have rotated 90 degrees for both display and touch. If another touch orientation rotation is desired add one of the following statements inside the configuration menu.
For 180 degree rotation instead add --> Option "CalibrationMatrix" "-1 0 1 0 -1 1 0 0 1"
For 270 degree rotation instead add --> Option "CalibrationMatrix" "0 -1 1 1 0 0 0 0 1"
Where to Now, Kiosk Perfection and USB-C Power-Pass-Through
This screen is rugged enough to be perfect, as is, for Kiosk Applications. We have some great kiosk software tutorials, check out Screenly Digital Signage with Raspberry Pi and Video Looping Monster with Raspberry Pi for some inspiration. Also a useful addition to many Kiosk Projects would be turning the Raspberry Pi to Read-Only Mode thus it will never have Micro-SD card corruption, check here for that.
These screens also have a hidden extra feature that is impossible to demonstrate with a Raspberry Pi Single Board computer. This is USB-C Power-Pass-Through.
The basic gist of whats goes on is that two USB-PD enabled devices negotiate a power contract (also referred to as a handshake) when they are plugged into each other. They discuss how much power the source can support, as well as how much power the device being charged/powered can handle. Not only does it do this but will also enable Touch/Display data to be sent through the same USB-PD connection as well. USB-C ports capable of transferring DisplayPort signals are either named USB-C DisplayPort or DP Alt Mode. The below image demonstrates this feature with a Latte Panda Alpha set up to run with this screen. It has full-touch compatibility and runs Full HD video smoothly whilst being powered by the screen which is powered by the LattePanda Power Supply. Thus only a single USB-C cord is utilised to do Touch, Display, and Power.