Home>Posts>How To, I/O Embedded & IoT>Disabling the BeagleBone Black HDMI Cape

Disabling the BeagleBone Black HDMI Cape

By ·Categories: How To, I/O Embedded & IoT·Published On: July 18th, 2013·1.5 min read·

The HDMI port on the BeagleBone Black is implemented as a virtual cape. This virtual cape uses pins on the expansion headers, limiting the available pins. If you don’t need HDMI you gain 20 more GPIO pins by disabling the HDMI cape. Other reasons for disabling HDMI are to make UART 5 and the flow control for UART 3 and 4 available or to get more PWM pins. Follow the instructions below to disable the HDMI cape and make pins 27 to 46 on header P8 available.

Before you start, it’s always a good idea to update your BeagleBone Black with the latest Angstrom image.

Use SSH to connect to the BeagleBone Black. You can use the web based GateOne SSH client or use PuTTY and connect to beaglebone.local or 192.168.7.2

user name: root 
password: <enter>


Mount the FAT partition:

mount /dev/mmcblk0p1  /mnt/card


Edit the uEnv.txt on the mounted partition:

nano /mnt/card/uEnv.txt


To disable the HDMI Cape, change the contents of uEnv.txt to:

optargs=quiet capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN


Save the file:

Ctrl-X, Y


Unmount the partition:

umount /mnt/card


Reboot the board:

shutdown -r now


Wait about 10 seconds and reconnect to the BeagleBone Black through SSH. To see what capes are enabled:

cat /sys/devices/bone_capemgr.*/slots

SSH window for disabling HDMI cape on BeagleBone Black

Every line shows something like “P-O-L” or “P-O–“. The letter “L” means the Cape is enabled; no letter “L” means that it is disabled. You can see here that the HDMI Cape has been disabled, so pin 27 to 46 on header P8 are now available to use.
BeagleBone Black

Credits: based on Beagleboard.org forum posts by Günter Pütz and others.

Share

About the Author: Roland Groeneveld

Roland Groeneveld is the President & CEO of Logic Supply. He has been with the company, since, well the beginning. He and Lisa founded Logic Supply in 2003 shortly after VIA introduced the Mini-ITX form factor in 2002.
Follow OnLogic on LinkedIn

37 Comments

  1. Tim August 23, 2013 at 12:28 pm

    Following these instructions leaves me with a BBB on which I cannot connect to either the EWS or SSH.

  2. Tim August 23, 2013 at 12:35 pm

    ..nevermind. you can ignore my previous comment. After a couple reboots it worked perfectly. No more HDMI! Thanks.

  3. Roland Groeneveld August 29, 2013 at 11:30 am

    Good to hear you got it to work!

  4. Isaac Jessup October 15, 2013 at 1:38 pm

    Had a similar issue as Tim. Perhaps I was just impatient. My board hung when I tried to reboot it from SSH. Ended up just unplugging it and plugging it back in and it booted just fine with the HDMI cape disabled.

    Thank you very much for this quick tutorial!

    54 GPIOs when you disable the HDMI… that’s just freaking awesome! Less than $1 per GPIO, including the micro HDMI cable and shipping. :p

    I’ve written up a spreadsheet that should help others figure out which pins are usable:
    Google Drive: BBB

  5. chai October 24, 2013 at 4:51 am

    how to enable back the HDMI cape

  6. Roland Groeneveld October 24, 2013 at 4:01 pm

    To re-enable the HDMI cape, you simply remove this from uEnv.txt: capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN

  7. chai October 25, 2013 at 12:23 am

    thank u…..
    but it is not getting re-enabled….

  8. chai October 25, 2013 at 12:36 am

    It is showing loaded symbol L but im not getting HDMI output…

  9. Roland Groeneveld October 25, 2013 at 8:17 am

    Chai: you can always re-image the BBB to set it to factory default. See http://circuitco.com/support/index.php?title=Updating_The_Software for instructions.

  10. chai October 25, 2013 at 8:21 am

    means if i write a new angstrom image then i will be able to get back the HDMI output right?

  11. Roland Groeneveld October 25, 2013 at 8:28 am

    Chai: Re-installing the angstrom image will get your BBB back to factory defaults. Unless there is some other problem with your BBB, the HDMI cable or HDMI display, this should work. By the way, we strongly suggest to use a 5V 2A DC power supply to make sure you have enough power to the BBB.

  12. chai October 25, 2013 at 8:31 am

    ya sure……… :)
    thank you so much for your support………. :)

  13. Colin LeMahieu November 4, 2013 at 1:48 pm

    Would you share your device tree overlay file which changes these pins to GPIO pinmux mode?

  14. chai December 2, 2013 at 4:41 am

    HI Roland,
    I have “optargs=quiet drm.debug=7” in uEnv.txt should i remove it or it should be there in order to write “optargs=quiet capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN” ???

  15. Roland Groeneveld December 2, 2013 at 6:48 pm

    Chai: Yes, you remove “optargs=quiet drm.debug=7” from uEnv.txt and replace it with “optargs=quiet capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN”.

  16. Roland Groeneveld December 2, 2013 at 6:51 pm

    Colin: these instructions actually disable the DTO for the virtual HDMI cape, making the standard GPIO pins available. So there is no DTO for enabling the GPIO; you simply disable the HDMI cape.

  17. chai December 5, 2013 at 3:12 am

    Hi Roland,
    Thank you once again for your reply……. :)

  18. Doug January 9, 2014 at 11:29 pm

    Thanks for the article. When I do this I get a 6th slot:.

    root@beaglebone:~# cat /sys/devices/bone_capemgr.*/slots
    0: 54:PF—
    1: 55:PF—
    2: 56:PF—
    3: 57:PF—
    4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G
    5: ff:P-O– Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI
    6: ff:P-O– Bone-Black-HDMIN,00A0,Texas Instrument,BB-BONELT-HDMIN

    Does it really matter since they are both disabled?

  19. Roland Groeneveld January 10, 2014 at 4:04 pm

    Hi Doug,

    In your case slot 4 shows the flash storage (likely something changed on the newer image). It simply shifted the virtual HDMI capes to slot 5 and 6. So you’re correct, since they are both disabled, the GPIO pins should now be available on your BBB.

  20. Nathan Smith February 11, 2014 at 11:04 pm

    It should be noted that these pins are SYSBOOT pins and driving them high initially(ex. active low buses) can/will modify the boot sequence causing the BBB not to boot. Just make sure that none of the pins 26>46 are connected in a way allowing them to be driven during boot.

  21. Nathan Smith May 9, 2014 at 5:42 pm

    Doing this leaves me with the following….
    *note that HDMI doesn’t show up and HDMIN is still enabled***

    root@arm:~# cat $SLOTS
    0: 54:PF—
    1: 55:PF—
    2: 56:PF—
    3: 57:PF—
    4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G
    7: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-SPIDEV1
    9: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-BONELT-HDMIN

    any suggestions?

  22. Roland Groeneveld May 13, 2014 at 10:52 am

    Hi Nathan – Not sure what’s going on. If you followed the instructions exactly it should just work… You may have to re-flash your BeagleBone Black to start with a clean image.

  23. Ken June 23, 2014 at 5:01 am

    Hi,
    I have installed ubuntu trusty with latest kernel 3.14.4.1 and it appears the cape manager is no longer there?
    since .. cat /sys/devices/bone_capemgr.*/slots returns .. No such file or directory?
    Can you confirm how I can disable the HDMI features with new kernel?
    Thanks

  24. wan October 12, 2014 at 10:58 pm

    Hello, My BBB using Angstrom 3.8.13 kernel, I did not bone_capemgr* file in / sys / devices / under., this may be what causes it?

  25. Brock October 17, 2014 at 11:50 am

    Ken,

    You probably already figured this out, but the cape manager has not been made available beyond kernel rev 3.8. If you are using RCN’s kernel source, he plainly states that one must use the 3.8 branch if cape management is required.

  26. sathya November 28, 2014 at 12:47 pm

    Hai Roland,
    I followed the above steps to disable HDMI but it is still loading,am seeing P-O-L in HDMI slots. I need to configure SPI pins as GPIO. When i try apply overlay for GPIO there is HDMI pin conflicts and failed verification. Any solution?

    Thanks in advance.

  27. Richard December 1, 2014 at 12:53 pm

    Sathya: Can you provide more information on which Linux distribution and version you are using?

    You can also check the official BeagleBone Black FAQ
    http://elinux.org/Beagleboard:BeagleBone_Black_FAQ (half way down the page for HDMI and SPI pins)

    Thanks

  28. John Samperi February 7, 2015 at 9:35 pm

    I think this would solve my issues as posted here

    https://groups.google.com/forum/#!category-topic/beagleboard/newbies/rsaRbYjF5zQ

    Unfortunately it doesn’t seem to work with the board I have which uses Debian.

    I get an error which says “mount: mount point /mnt/card does not exist” after typing “mount /dev/mmcblk0p1 /mnt/card”, maybe I don’t know what I’m doing. Any help would be appreciated, meanwhile I’ll keep on searching now that I know that I need to disable HDMI.

  29. Tony February 16, 2015 at 7:14 pm

    I am looking to reduce the power of my board and read elsewhere that the HDMI chip uses about 21mA and the Ethernet uses about 11mA even in deep sleep mode.

    Does anyone know if disabling the HDMI ( and Ethernet if you can do the same) also reduces their current draw?

    Thanks in advance

  30. Paul Rolfe March 1, 2015 at 10:41 pm

    Hi John

    Debian. I am running one with Debian.

    The file you need to change is on a mount that is already configured

    look in the directory /boot/uboot

  31. Bruce December 29, 2015 at 8:46 pm

    I have an application which requires analog inputs. I use the p-9 header pins 33-40 and 42 and it has worked fin. After disabling the HDMI cape, those pins no longer appear available. Do they get remapped? Are they Disabled?

    Thanks.

  32. Lydia June 29, 2016 at 5:22 pm

    i do not have anything in my uEnv.txt file that says optargs=____, just ${optargs}. I tried erasing that ${optargs} section and putting in the “optargs=quiet capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN” but that didn’t do anything. I tried just adding what you wrote at the end of the lines that exist and by itself. I’m not sure what I’m doing wrong.

  33. […] avoid this problem, I picked one of the few non-conflicting PRU pins. Disabling HDMI is described here and […]

  34. Narendranath Babu February 7, 2017 at 11:53 pm

    HI
    I am not having the card directory in mnt.. Where to go and disable

  35. Gilang Tawaqal November 22, 2017 at 8:41 am

    HI, i want to disable HDMI too, but using debian can it?

  36. marius February 22, 2018 at 7:41 pm

    Hiw to I do this on kernel 4.9.XX
    The approach does not work.

  37. Nagarjuna Reddy April 20, 2018 at 3:52 am

    sir i was enabled all gpio pins purpose i did flash the os in SD card and inserted to the BeagleBoneBlack not flash the OS in (eMMc). Than after i tested /sys/class/gpio there it’s showing 43 GPIO pins are enabled . in P8 all HDMI pins are not showing how can i make it free , as for used for the GPIO. please guide to me

    Thank you sir

Leave A Comment

SHARE

Have a project? Let's talk

More Articles

WHITEPAPER

Learn the 5 ways Fanless Computers can help your business

Get the Whitepaper
View All Articles

OnLogic Industrial Computers

Discover OnLogic's multitude of industrial computers that will help you to advance your IoT project