Jump to content

BigTreeTech HDMI 7 no video output


Straconis

Recommended Posts

I've been trying to configure the HDMI screen I purchased for the orange pi 5.  It's listed to work with the raspberry pi so I figured it should work with the orange pi 5 as well.  When I connect the screen, the screen just turns white.

 

These instructions were included in the manual to configure the usage of the screen with the raspberry pi, but I am not familiar with how to translate the configuration into armbian.

 

Write the image to the TF card, then modify the following configuration in config.txt:

# uncomment to force a specific HDMI mode (this will force VGA)

hdmi_group=2

hdmi_mode=87

hdmi_cvt 1024 600 60 6 0 0 0

# uncomment to force a HDMI mode rather than DVI. This can make audio work in

# DMT (computer monitor) modes

hdmi_drive=1

 

as I've been trying to troubleshoot I see that it does get information from the  screen

 

cat /sys/class/drm/card0-HDMI-A-1/status = connected

cat /sys/class/drm/card0-HDMI-A-1/enabled = enabled

cat /sys/class/drm/card0-HDMI-A-1/modes

1024x600
1024x600
640x480
640x480
640x480
 


 

 

 

 

 

Link to comment
Share on other sites

@connychri no, I revised my search string and discovered there is a large number of people with this exact same problem and nobody seems to have any answers.  I reached out to elecrow support since they have the exact same setup instructions and was advised that they do not have an orange pi to test with so they cannot provide any assistance.  I have yet to hear back from BTT as I contacted them as well.  It would appear anyone trying to use a 7" HDMI screen that requires this configuration change is dead in the water.

Link to comment
Share on other sites

I'm having the same issue.

 

I'm using a Waveshare 7HP-CAPQLED 7" HDMI screen and when plugged into my Orange Pi 5 I have no signal/output.

However, if I plug my PC monitor in it works.

I have a USB-C to HDMI converter and it will only work if I plug my PC monitor into the HDMI port first, which I thought was odd.

 

Does anyone have any solutions for this?

Link to comment
Share on other sites

@passworder I think you need to force it to load the correct edid.

You could try to copy the edid at the moment it's working to /lib/firmware/edid/ then add the boot arg and hope it works. So that should look something like:

sudo cp /sys/class/graphics/fb0/device/drm/card0/card0-HDMI-A-1/edid /lib/firmware/waveshare.bin

 

sudo nano /boot/armbianEnv.txt   

Then add a new line:  extraargs="drm_kms_helper.edid_firmware=edid/waveshare.bin"

 

Link to comment
Share on other sites

I took the advice and purchased a usb c to hdmi, didn't work
I tried hooking up another monitor that works normally and then swap them, didn't work

I tried hooking up the other working monitor into the usb c to hdmi and then swapping it, also didn't work

Link to comment
Share on other sites

@Straconis what passworder wrote is that if he first plugged his monitor into the HDMI (not the usb-c adapter) then the lcd into the usb-c  adapter.

 

If @passworder will compare the edid when it's working with the edid when it's not working you might gonna see what's going wrong.

 

A way to do this:

sudo apt install edid-decode

 

cat /sys/class/graphics/fb0/device/drm/card0/card0-HDMI-A-1/edid | edid-decode > edid-working.log

cat /sys/class/graphics/fb0/device/drm/card0/card0-HDMI-A-1/edid | edid-decode > edid-not-working.log

 

With the usb-c adapter it will probably be

cat /sys/class/graphics/fb0/device/drm/card0/card0-DP-1/edid | edid-decode > edid-working.log

cat /sys/class/graphics/fb0/device/drm/card0/card0-DP-1/edid | edid-decode > edid-not-working.log

 

 

To make loading the edid work, you'll need to add the edid file to your initramfs, to do this:

 

sudo cp /sys/class/graphics/fb0/device/drm/card0/card0-DP-1/edid /usr/lib/firmware/edid/waveshare.bin

sudo nano /etc/initramfs-tools/hooks/edid.sh

#!/bin/sh
# Copy local EDID monitor description data
#
mkdir -p "${DESTDIR}"/lib/firmware/edid
EDID_DATA=/usr/lib/firmware/edid/waveshare.bin

if [ -f "${EDID_DATA}" ]; then
        cp "${EDID_DATA}" "${DESTDIR}"/lib/firmware/edid/
fi

exit 0

 

sudo chmod +x  /etc/initramfs-tools/hooks/edid.sh

 

sudo update-initramfs -u

 

sudo nano /boot/armbianEnv.txt

 

extraargs="drm_kms_helper.edid_firmware=edid/waveshare.bin"

 

Edited by royk
Link to comment
Share on other sites

@royk I was able to do this utilizing my working monitor and the 7" monitor on the usb-c to HDMI adapter.   When booted with them both plugged in at the same time the 7 inch monitor is operational.  

 

I followed the instructions above only called it btt7.bin

 

When booting up in the HDMI slot it just still goes to a white screen, and plugged into the usb c to HDMi adapter the screen stays black 

 

Plugging them both in at the same time still appears to be the only way to get the 7 inch screen to function

Link to comment
Share on other sites

The experience I had was that the quotes were needed to make it even boot. But it seems you did it right, perhaps the issue isn't edid related. 

You could compare the edid with the one when it's working and the one when it doesn't.

 

I thought I saw somewhere in the orange pi os there was a script hdmi/dp related. You could try that image to see if that works, if it does you could copy that script.

Another thing you could try as workaround is to use a hdmi dummy, you might need one that imitates a 1080p monitor.

Link to comment
Share on other sites

I purchased the Lesown 7" touch screen with the built in speakers its says to configure the SBC same way i was looking in the armbian-config menu and in the hardware there is a place to enable hdmi 4k after enable this i could get it to work by booting it plugged in to my hdmi port on the tv after it has booted to the desk top i can unplug my tv and plug in the touch screen and it functions fine touch and display but if i plug the touchscreen in on boot i get "No Signal" display on the touchscreen and if i try to unplug it for the pi 5 and plug it into the tv i also get no signal it will only work if it plug in to the tv untill i get to the desktop then i can unplug the tv from the hdmi and plug the touchscreen into the hdmi port i didnt need to use a usb-c to hdmi converter im trying to build a laptop and i thought this screen would be plug and play the screen and audio will work if i plug it into my win10 desktop i haven't tried the audio on the orange pi5 yet

Link to comment
Share on other sites

I know the reason for this problem, Waveshare manufacturers of this type of 7" 1024x600 resolution screen, the screen interface is HDMI, but the internal conversion protocol is DVI to LCD, so the actual signal in HDMI needs to be DVI, here you need to open the HDMI YUV format output to be compatible with this kind of screen.
This is a special screen and I have not found a way to turn on the yuv output in the drm display-subsystem driver for the rk3588.

Link to comment
Share on other sites

On 4/28/2023 at 10:33 PM, Willzen said:

I know the reason for this problem, Waveshare manufacturers of this type of 7" 1024x600 resolution screen, the screen interface is HDMI, but the internal conversion protocol is DVI to LCD, so the actual signal in HDMI needs to be DVI, here you need to open the HDMI YUV format output to be compatible with this kind of screen.

 

What the heck are you talking about? HDMI And DVI are both TMDS, the difference is that HDMI supports both RGB and YUV colorspaces and DVI supports only RGB. I am pretty sure the default on computers is RGB anyway. YUV would be for video players. 

 

Are you trying to say that the display supports only YUV signals? 

Edited by ej0rge
Link to comment
Share on other sites

I think I found a solution at least for my case, this worked for me on debian bullseye running Klipper and KlipperScreen for 3d printer controls. What's strange is the terminal doesn't show on the display on initial boot and shutdown but once it boots to the KlipperScreen everything works as normal. Hopefully someone can build upon this to get full functionality.

 

I noticed when I ran xrandr two resolutions were listed for the BTT screen,  1024x600 and 640x480

 

Screen 0: minimum 320 x 200, current 1024 x 600, maximum 16384 x 16384
HDMI-1 connected primary 1024x600+0+0 (normal left inverted right x axis y axis) 800mm x 450mm
   1024x600      59.99*+  59.99
   640x480       60.00    59.94

 

I then tried switching to the lower resolution

xrandr --output HDMI-1 --mode 640x480

 

The display worked but was offset and touch wasn't aligned

 

I found this post to add custom resolutions  https://unix.stackexchange.com/questions/227876/how-to-set-custom-resolution-using-xrandr-when-the-resolution-is-not-available-i

 

I then tried to add a custom resolution, first getting the parameters of the screen

gtf 1024 600 60

this returned the parameters # 1920x1080 @ 60.00 Hz (GTF) hsync: 67.08 kHz; pclk: 172.80 MHz
  Modeline "1920x1080_60.00"  172.80  1920 2040 2248 2576  1080 1081 1084 1118  -HSync +Vsync

 

create the new mode 

xrandr --newmode "1024x600_60.00"  48.96  1024 1064 1168 1312  600 601 604 622  -HSync +Vsync

add the new mode 

xrandr --addmode HDMI-1 "1024x600_60.00"

change the output to the new mode

xrandr --output HDMI-1 --mode "1024x600_60.00"

this got the display up and working with touch enabled too.

 

these settings are reverted upon reboot so to set these to default you'll need to create a monitor.conf using a text editor, using nano in the example below

sudo nano /usr/share/X11/xorg.conf.d/10-monitor.conf

 

then enter the code below, replace any details for Device or Modeline

Section "Monitor"
  Identifier "Monitor0"
  Modeline  "1024x600_60.00"  48.96  1024 1064 1168 1312  600 601 604 622  -HSy>
EndSection
Section "Screen"
  Identifier "Screen0"
  Device "HDMI-1"
  Monitor "Monitor0"
  DefaultDepth 24
  SubSection "Display"
    Depth 24
    Modes "1024x600_60.00"
  EndSubSection
EndSection

 

Save and reboot and it should be up and running. 

Link to comment
Share on other sites

Hello, I have had a similar problem with a waveshare 5" knockoff display on my orange pi 5.

 

I started to build the kernel so I could make changes to the hdmi driver in an attempt to make the display work. I make a clean build without any changes just to make sure that the pi would be able to install the kernel and everything.

To my surprise, when I rebooted after installing that build of the kernel the display just started working.

 

I am assuming that the kernel that was compiled is a newer version than the one armbian has released and someone else made a change to the hdmi driver to fix this issue. (I was very surprised and happy when it started working)

 

You can look into building the kernel yourself, but I will also supply the .deb (links below) that I installed that fixed this issue for me!

 

to install this .deb file, first download it and then run the command: sudo dpkg -i FILENAME

Google Drive: https://drive.google.com/file/d/1RFAC6DlSqPcIHc4bpZtY6kB_k9sXl-Ho/view?usp=share_link

Media Fire: https://www.mediafire.com/file/79nctsr6e8dbyeh/linux-image-legacy-rockchip-rk3588_23.05.0-trunk--5.10.110-S6547-D3037-P0000-C6cddHfe66-HK01ba-Vc222-B1666_arm64.deb/file

 

Hopefully this helps some of you guys out!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines