Beagleboard:BeagleBoneBlack HDMI

From eLinux.org
Revision as of 00:49, 5 November 2013 by Wmat (Talk | contribs) (Seeding content to page and updating links to internal pages)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Supported Resolutions

Following are the supported resolutions of the BeagleBone Black. You display may not support all of these resolutions on the board.

1920x1080@24 (Audio)
1324x768@60
1280x768@60
1280x1024@60
1280x720@60 (Audio)
1152x864@75
1024x768@76
1024x758@60
800x600@60
800x600@75
640x480@75

Only CEA resolutions support audio as defined by the HDMI Specification.

Default Resolutions

By default, the board will always look for HDMI resolutions to enable audio and only list those as options. As a result you will see a lower number of resolutions listed than your monitor may support.
If you are not concerned about audio support, you can disable the cape manager for HDMI and get more resolutions listed. Add the following command to the optargs in the uENV.txt file on the boot partition of the eMMC or uSD.

capemgr.disable_partno=BB-BONELT-HDMI

You can set the default resolution on the initial power up for the splash screen by adding the following to the uENV.txt file where you can use any resolution you choose:

video=HDMI-A-1:640x480@60

HOWEVER, this will only set the resolution on the first stage of the boot process for the splash screen, when the BEAGELBONE LOGO is displayed at the beginning. After reading the EDID, the board will use the EDID as the resolution.
This will tell you if the monitor, cable, and the board are all functioning from a HW perspective.

Forcing A Resolution

It is possible to force a resolution to be used by the board. The availble resolutions will however, be limited to those that have been determined to work by the DRM manager on the board. As a result, not all resolutions that can be supported by the display are available. But, it will allow you to try other resolutions.

Equipment

You will need the following items:
1) FTDI Serial Cable
2) Putty, Teraterm, or similar terminal emulation software.

Process

1) Connect the serial cable to your PC.
2) Launch the terminal emulation SW and select the correct serial port.
3) Connect the serial cable to the serial debug connector on the board.
4) Connect the HDMI cable to the board and your display.
5) Apply power to the board.
6) You should see messages appear on the terminal.
7) When the login prompt appears type root and hit enter.
8) Type export XAUTHORITY=`ls /var/run/gdm/auth-for-root-*/database` and hit enter.
9) Type export DISPLAY=:0.0 and hit enter.
10) Type xrandr --output HDMI-0 --mode 720x480 --rate 60. You can substitute different resolutions and refresh rates if you like. Hit enter.

The resolution should change on the display. If you get the message "xrandr: cannot find mode 1920x1080" where the 1920x1080 in this example is the mode you selected, that means that the DRM driver did not select it as an available resolution.

HDMI Issues

We have seen a lot of issues in the past with HDMI on the BeagleBone black. These issue can be very hard to debug and track down because we do not have the displays with us, we cannot see what everyone is doing, and we cannot debug the timing issues and settings to figure out what is going on. Using the latest image has resolved a lot of these issues.

Bad HDMI Cables

We have had numerous cases of bad cables. The cheap cables are cheap because they are cheap cables. If you can, spend a little extra money and buy a good cable. We are in the process of evaluating various manufacturers of cables and will be publishing what we find.

One notable issue is that the shielding on some of these cables do not provide a ground. In order for HDMI to work, the grounds of the board and the Display must be the same.

Here are a few things that can help:
1) Use a grounded 5V supply connected to the same ground as the display.

NOTE: A floating 5V power supply will not work! It must be grounded with the negative side referenced to ground!!

2) Connect the USB cable to the board and a PC sharing the same ground as the display.
3) Make sure the cable grounds are connected by using a ohmmeter to make sure the covers of the connectors are connected together.

Supported Displays and TVs

For a list of the currently identified displays and TVs that work go to Displays

Connecting to a TV or Display

The board uses EDID information to identify the settings for the display. It is possible that this information may not be totally accurate on some displays, causing the board to give bad settings.
Or in other cases it was not able to get the information from the TV/Display.
If the board does not see a display connected, it will default to 720x480 resolution and outputs that signal on the HDMI port.

All TVs and Displays should support this resolution. Check you manual for your TV/display and make sure that resolution is supported on the HDMI port you plan to use.
To take advantage of this known setting, it is recommended that the following steps be used to make sure the HDMI output is working and the board and that you have the correct connections on your TV/Display.

1) Do not connect the Ethernet cable to the board.

2) Do not connect the HDMI cable to the board.

3) Apply power to your board.

4) Wait for the board to power up. This should take about 2 minutes.

5) Then connect the cable to your board.

6) Connect the cable to the TV/Display.

7) Reset the board. Wait for it to come up.

8) If the TV/Display does not show a picture, make sure the TV/Display has not powered down due to a lack of a signal. If it has, then you may need to push the power button for the TV/Display.

9) Still no picture, hit the reset button on the BeagleBone Black and let it boot up again. It should see the EDID and find the best resolution for your TV/Display.

You may get a box in the upper left of the display complaining about a program still running. You can hit reset again and it should go away on the next boot or use your keyboard to close the window.

EDID Information

It is possible to look at the EDID information for the board read from the monitor. This can be useful in debugging HDMI issues. There are two different ways to access the EDID information.

EDID Information via Serial Port

This troubleshooting method can be used in the 5/20 or newer software update. You can update to the most recent software below, under step #1.
Note: You must have installed a terminal emulator program such as PuTTy or Tera Term to connect to your BBB. Click on the links for instructions on how to install either program.

1. Make sure your BBB is updated to the most recent software. If you are unsure, click Updating The Software.
2. Make sure your drivers are up to date. Drivers can be downloaded from this website.
3. Next we will determine which COM port the BBB will be connecting to. In order to do this, we will go to the Device Manager:

  • If your BBB is connected to your computer, disconnect it.
  • Click the Start Menu and search for "Device Manager." Click yes on the window that pops up and it will open.
  • Look for "Ports (COM & LPT)" and press the arrow to expand.
    • Write down the ports that are available.
  • Use the provided USB cable to plug the BeagleBone Black into your computer. The USB will provide the 5V to your board.
  • The Device Manager should refresh. Check "Ports (COM & LPT)" again and your BBB should appear. It will be the COM that wasn't there before. Write down the COM# on a piece of paper.

4. Important Verify that your terminal emulator settings are set up properly with your board. Open up your desired terminal shell program and Terminal Shells if you are unsure and start with step #3.
5. Once everything is verified, we will check the EDID Information.
6. Connect your BBB to your HDMI enabled monitor/TV and wait for the TV to turn on.
7. Hit enter in the terminal emulator window to bring up the login prompt.
8. In the terminal emulator, type "root" and hit ENTER
9. Type "cd /sys/class/drm/card0/card0-HDMI-A-1/" and hit ENTER. (Notice the space after cd)
10. Type "parse-edid edid"and hit ENTER.
11. You should get a printout similar to the one below:

parse-edid: parse-edid version 2.0.0
parse-edid: EDID checksum passed.
       # EDID version 1 revision 3
Section "Monitor"
       # Block type: 2:0 3:ff
       # Block type: 2:0 3:fc
       Identifier "DELL U2410"
       VendorName "DEL"
       ModelName "DELL U2410"
       # Block type: 2:0 3:ff
       # Block type: 2:0 3:fc
       # Block type: 2:0 3:fd
       HorizSync 30-81
       VertRefresh 56-76
       # Max dot clock (video bandwidth) 170 MHz
       # DPMS capabilities: Active off:yes  Suspend:yes  Standby:yes
       Mode    "1920x1200"     # vfreq 59.950Hz, hfreq 74.038kHz
               DotClock        154.000000
               HTimings        1920 1968 2000 2080
               VTimings        1200 1203 1209 1235
               Flags   "-HSync" "+VSync"
       EndMode
       # Block type: 2:0 3:ff
       # Block type: 2:0 3:fc
       # Block type: 2:0 3:fd

The resulting display will provide valuable information that you can cut and paste into an email when trying to debug the issue.

EDID Information From Desktop

This method is done from a working desktop. This means that the HDMI is working but you may be wanting to see what the EDID information is for the connected display. This shows the supported resolutions for the attached displays.
Not all resolutions can be supported by the BeagleBone Black.

1) Open the terminal program from the desk top:>br>

 On the top menu bar, using the mouse,select "Applications"
Move the mouse to "System Tools"
Then move the mouse cursor to "Terminal" and click the left mouse button

2) In the terminal window at the cursor type "xhost +" and hit ENTER.
3) Type "export DISPLAY=:0" and hit ENTER
4) Type "xrandr --verbose" and hit ENTER

You will get something similar to what you see below. It will be different for each display.

Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 2048 x 2048
HDMI-0 connected 1280x1024+0+0 (0x41) normal (normal left inverted right x axis y axis) 509mm x 286mm
       Identifier: 0x40
       Timestamp:  1792070503
       Subpixel:   unknown
       Gamma:      1.0:1.0:1.0
       Brightness: 1.0
       Clones:
       CRTC:       0
       CRTCs:      0
       Transform:  1.000000 0.000000 0.000000
                   0.000000 1.000000 0.000000
                   0.000000 0.000000 1.000000
                  filter:
       EDID:
               00ffffffffffff0004728202cd049024
               3116010380331d78ea77c5a3544f9f27
               115054b30c10714f818081009500d1c0
               010101010101023a801871382d40582c
               4500fd1e1100001e000000fd00374b1e
               5011000a202020202020000000fc0053
               323330484c0a202020202020000000ff
               004c54533052303236323430310a01eb
               020314b249010204111305149f906503
               0c001000023a801871382d40582c4500
               fd1e1100001e00000000000000000000
               00000000000000000000000000000000
               00000000000000000000000000000000
               00000000000000000000000000000000
               00000000000000000000000000000000
               000000000000000000000000000000f8
 1280x1024 (0x41)  108.0MHz +HSync +VSync *current
       h: width  1280 start 1328 end 1440 total 1688 skew    0 clock   64.0KHz
       v: height 1024 start 1025 end 1028 total 1066           clock   60.0Hz
 1440x900 (0x42)   88.8MHz +HSync -VSync
       h: width  1440 start 1488 end 1520 total 1600 skew    0 clock   55.5KHz
       v: height  900 start  903 end  909 total  926           clock   59.9Hz
 1280x800 (0x43)   71.0MHz +HSync -VSync
       h: width  1280 start 1328 end 1360 total 1440 skew    0 clock   49.3KHz
       v: height  800 start  803 end  809 total  823           clock   59.9Hz
 1152x864 (0x44)  108.0MHz +HSync +VSync
       h: width  1152 start 1216 end 1344 total 1600 skew    0 clock   67.5KHz
       v: height  864 start  865 end  868 total  900           clock   75.0Hz
 1280x720 (0x45)   74.2MHz +HSync +VSync
       h: width  1280 start 1720 end 1760 total 1980 skew    0 clock   37.5KHz
       v: height  720 start  725 end  730 total  750           clock   50.0Hz
 1280x720 (0x46)   74.2MHz +HSync +VSync
       h: width  1280 start 1390 end 1430 total 1650 skew    0 clock   45.0KHz
       v: height  720 start  725 end  730 total  750           clock   60.0Hz
 1024x768 (0x47)   75.0MHz -HSync -VSync
       h: width  1024 start 1048 end 1184 total 1328 skew    0 clock   56.5KHz
       v: height  768 start  771 end  777 total  806           clock   70.1Hz
 1024x768 (0x48)   65.0MHz -HSync -VSync
       h: width  1024 start 1048 end 1184 total 1344 skew    0 clock   48.4KHz
       v: height  768 start  771 end  777 total  806           clock   60.0Hz
 800x600 (0x49)   40.0MHz +HSync +VSync
       h: width   800 start  840 end  968 total 1056 skew    0 clock   37.9KHz
       v: height  600 start  601 end  605 total  628           clock   60.3Hz
 800x600 (0x4a)   36.0MHz +HSync +VSync
       h: width   800 start  824 end  896 total 1024 skew    0 clock   35.2KHz
       v: height  600 start  601 end  603 total  625           clock   56.2Hz
 720x576 (0x4b)   27.0MHz -HSync -VSync
       h: width   720 start  732 end  796 total  864 skew    0 clock   31.2KHz
       v: height  576 start  581 end  586 total  625           clock   50.0Hz
 720x480 (0x4c)   27.0MHz -HSync -VSync
       h: width   720 start  736 end  798 total  858 skew    0 clock   31.5KHz
       v: height  480 start  489 end  495 total  525           clock   59.9Hz
 640x480 (0x4d)   30.2MHz -HSync -VSync
       h: width   640 start  704 end  768 total  864 skew    0 clock   35.0KHz
       v: height  480 start  483 end  486 total  525           clock   66.7Hz
 640x480 (0x4e)   25.2MHz -HSync -VSync
       h: width   640 start  656 end  752 total  800 skew    0 clock   31.5KHz
       v: height  480 start  490 end  492 total  525           clock   60.0Hz
 640x480 (0x4f)   25.2MHz -HSync -VSync
       h: width   640 start  656 end  752 total  800 skew    0 clock   31.5KHz
       v: height  480 start  490 end  492 total  525           clock   59.9Hz
 720x400 (0x50)   28.3MHz -HSync +VSync
       h: width   720 start  738 end  846 total  900 skew    0 clock   31.5KHz
       v: height  400 start  412 end  414 total  449           clock   70.1Hz

It worked and then it stopped working

The BeagleBone Black is a small Linux based PC. And it acts like a PC in many respects. As a PC it it is not used for a period of time, it will go to sleep. At that point, the HDMI signal is turned off.

As in the case of the PC, it requires an input from the user. This is typically done my moving the mouse or hitting the keyboard.

This means that you need to have a keyboard and a mouse to use it in this mode.

The keyboard and mouse MUST be connected on power up to work.

The Image is cropped on the bottom and top

Some displays use what is called overscan. This can be seen in TVs and not so much on Monitors. It causes the image to be missing on the edges, such that you cannot see them displayed.
Some higher end displays allow you to disable the overscan. Check your manual for this feature.

Most TVs have a mode that allows you to adjust the image as well. These are options like Normal, Wide, Zoom, or Fit. Normal seems to be the best option as it does not chop of the edges. The other ones will crop of the edges. You may also try the Fit option. Consult your manual for these options.


HDMI to VGA Converters

Visit this [Beagleboard:BeagleBone_Black_Accessories#HDMI_Adapters | HDMI Adapters]] to view the verified HMDI to VGA Converters.



Back To Main Page