Beagleboard:BeagleBoneBlack HDMI
Contents
- 1 Supported Resolutions
- 2 Modesetting driver
- 3 Default Resolutions
- 4 Forcing A Resolution
- 5 HDMI Issues
- 6 Bad HDMI Cables
- 7 Supported Displays and TVs
- 8 Connecting to a TV or Display
- 9 EDID Information
- 10 It worked and then it stopped working
- 11 The Image is cropped on the bottom and top
- 12 HDMI to VGA Converters
Supported Resolutions
Following are the supported resolutions of the BeagleBone Black. You display may not support all of these resolutions on the board.
1920x1080@30
1920x1080@24 (Audio)
1324x768@60
1280x768@60
1280x1024@60
1280x800@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.
Modesetting driver
The latest (as of 2017-04-09) Debian image defaults to using the xorg-video-fbdev driver for xorg. This does not allow changing the resolutions using xrandr. If you would like to change resolutions, change the xorg configuration /etc/X11/xorg.conf to use the xorg-video-modesetting driver. A lot of the instructions below, assume you are using the modesetting driver.
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.
- If it doesn't appear, press the reset button on your BBB. Pictures of the button locations can be found BeagleBone Black Connector and Switch Locations.
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 HDMI Adapters to view the verified HMDI to VGA Converters.