Closed mlcampbe closed 10 months ago
I moved the ribbon cable on the pi5 from disp0 to disp1 and have gotten a little further. The green led on the screen now stays lit solid green and dmesg now shows this:
[ 0.678487] platform 1f00130000.dsi: Fixed dependency cycle(s) with /axi/pcie@120000/rp1/dsi@128000/WS_xinchDSI@0/port/endpoint [ 8.918801] WS_xinchDSI_Screen_Interface: loading out-of-tree module taints kernel. [ 8.928089] WS_xinchDSI_Screen: module license 'Proprietary' taints kernel. [ 8.995654] drm-rp1-dsi 1f00130000.dsi: rp1dsi_host_attach: Attach DSI device name=WS_xinchDSIScreen channel=0 lanes=2 format=0 flags=0x411 hs_rate=0 lp_rate=0 [ 9.138051] WS_xinchDSI_Touch 4-0014: ID 9271, version: 1060 [ 9.154402] input: WS Capacitive TouchScreen as /devices/platform/axi/1000120000.pcie/1f00080000.i2c/i2c-4/4-0014/input/input3
I can see that the screen is no longer solid black but now has a little light to it but no graphics. The /sys/waveshare/rpi_backlight/brightness shows a value of 255 which seems good but nothing on the screen.
Ok finally got the screen to come up by replacing the lines that were added to the config.txt file the following:
dtoverlay=vc4-kms-dsi-waveshare-panel,10_1_inch
At least I can now see the GUI display but I need to rotate the screen either 90 degrees left/right. The app for screen orientation comes up and I can change it but when I hit the apply button it seems to crash before it saves the changes.
Any thoughts on getting the screen rotated?
Just to follow up I have it all working correctly now. Here is the details for anyone that comes across this in the future.
You do not need to run the "sudo bash ./WS_xinchDSI_MAIN.sh 101C I2C0" script as mentioned in the readme.txt. Instead simply place these lines at the bottom of the /boot/firmware/config.txt file:
[all]
dtoverlay=vc4-kms-dsi-waveshare-panel,10_1_inch
That will get the scren working. Now to rotate it and get the touchscreen aligned with the rotation you need to use the following steps:
Go to menu -> Preferences -> Screen Configuration -> Layout -> Screens -> HDMI-A-1 -> Touchscreen
and set your screen. After that:
Go to menu -> Preferences -> Screen Configuration -> Layout -> Screens -> HDMI-A-1 -> Orientation
and when exiting the screen configuration app it should ask you to reboot. Afterwards it should be working correctly.
dtoverlay=vc4-kms-dsi-waveshare-panel,10_1_inch
Thanks for this, but does that get it working on DSI port 0 or 1?
dtoverlay=vc4-kms-dsi-waveshare-panel,10_1_inch
Thanks for this, but does that get it working on DSI port 0 or 1?
I have mine working when connected to the DSI port 1. The one furtherest away from the USB/ethernet connectors.
dtoverlay=vc4-kms-dsi-waveshare-panel,10_1_inch
Thanks for this, but does that get it working on DSI port 0 or 1?
I have mine working when connected to the DSI port 1. The one furtherest away from the USB/ethernet connectors.
Thanks! And sorry for the bother, but what are the rest of your setup details?
The furthest I got last night was dtoverlay=vc4-kms-dsi-waveshare-panel,10_1_inch,i2c1
with the I2C1 DIP configuration and DSI1. I got the backlight to come on with a solid LED and no errors in dmesg, but the panel doesn't actually display anything. However, opening VNC and touching the screen showed I had working touch (it was just backwards without the dtoverlay swap statements)
When using the I2C0 DIP configuration, I couldn't even get i2cdetect 0
to pick up anything. Moving to I2C1 at least showed two addresses in i2cdetect 1
. Enabling the driver changes these to UU indicating the driver is using them.
I believe that I uninstalled all of the drivers but I can't honestly remember right now. I am not sure how to check if they are loaded without re-running the installer and not sure I want to do that.
In my case the the display is flat mounted and I use a single power cable connected to the pi with power to the display from the 4 flat mount connector pins which touch the GIPO pins of the pi.
Well screw me. Turns out I was using the wrong cable. I was using a Pi Zero camera cable. Explains why I was getting initialization but no display data. Pi 5 DSI cable ordered and should be in next week.
Still have been unable to get I2C0 working though. Only way to get the display detected with i2cdetect is with I2C1 selected. What are your dtparams for I2C interfaces?
Assuming you are talking about the dtparams in the config.txt file this is what I have:
dtparam=audio=on
Notes for anyone else that got stuck Going to clear up some things that were not made clear on Waveshare's part and share my working setup.
config.txt
# For more options and information see
# http://rptl.io/configtxt
# Some settings may impact device functionality. See link above for details
# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
dtparam=i2c_vc=on
#dtparam=i2s=on
#dtparam=spi=on
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
# Additional overlays and parameters are documented
# /boot/firmware/overlays/README
# (DON'T) Automatically load overlays for detected cameras
camera_auto_detect=0
# (DON'T) Automatically load overlays for detected DSI displays
display_auto_detect=0
# Automatically load initramfs files, if found
auto_initramfs=1
# Enable DRM VC4 V3D driver
dtoverlay=vc4-kms-v3d
max_framebuffers=2
# Don't have the firmware create an initial video= setting in cmdline.txt.
# Use the kernel's default instead.
disable_fw_kms_setup=1
# Run in 64-bit mode
arm_64bit=1
# Disable compensation for displays with overscan
disable_overscan=1
# Run as fast as firmware / board allows
arm_boost=1
[cm4]
# Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required
# (e.g. for USB device mode) or if USB support is not required.
otg_mode=1
[all]
#ignore_lcd=1
dtoverlay=vc4-kms-dsi-waveshare-panel,10_1_inch
Brightness:
Brightness can be adjusted with the open-source driver with the standard sys backlight class. These are quick commands, but if doing this programmatically, scale brightness with the /sys/class/backlight/xxxxx/max_brightness instead.
Low Brightness
sudo bash -c 'echo 64 > /sys/class/backlight/4-0045/brightness'
Max Brightness
sudo bash -c 'echo 255 > /sys/class/backlight/4-0045/brightness'
Brightness:
Brightness can be adjusted with the open-source driver with the standard sys backlight class. These are quick commands, but if doing this programmatically, scale brightness with the /sys/class/backlight/xxxxx/max_brightness instead.
Low Brightness
sudo bash -c 'echo 64 > /sys/class/backlight/4-0045/brightness'
Max Brightness
sudo bash -c 'echo 255 > /sys/class/backlight/4-0045/brightness'
The waveshare wiki has recently been updated: https://www.waveshare.com/wiki/10.1inch_DSI_LCD_(C)_
The backlight adjustment paths of different systems are not completely consistent. The most common command should be: echo 255 | sudo tee /sys/class/backlight/*/brightness
I just received my 10.1 screen and cannot get it working at all. I have read the instructions and when I try to install the driver I get this:
$ sudo bash ./WS_xinchDSI_MAIN.sh 101C I2C0 SCREEN_type=8,I2C_bus=10 The raspberry PI hardware platform is pi5 Driver Start Settings It already exists and does not need to be added It already exists and does not need to be added It already exists and does not need to be added It already exists and does not need to be added It already exists and does not need to be added It already exists and does not need to be added Driver end Settings
Looking at the /boot/config.txt file I see the following was added:
ignore_lcd=1 dtoverlay=vc4-kms-v3d dtparam=i2c_vc=on dtparam=i2c_arm=on dtoverlay=WS_xinchDSI_Screen,SCREEN_type=8,I2C_bus=4 dtoverlay=WS_xinchDSI_Touch,I2C_bus=4,invertedx,swappedxy
Yet when the pi boots I see nothing on the screen. There is a green light on the back that flashes off and on and I can access the pi via ssh but I get nothing on the screen. Running dmesg I see this related to the display it seems:
[ 8.967459] WS_xinchDSI_Touch 4-0014: read version failed: -121 [ 8.967465] WS_xinchDSI_Touch 4-0014: Read version failed. [ 8.967470] WS_xinchDSI_Touch: probe of 4-0014 failed with error -121
Anyone got something to try?