BeagleBone HDMI cape needs a specific OS version to work, and we need to prevent upgrades that would break compatibility. This post provides a guide to setup a BeagleBone Green Wireless with the HDMI cape and prevent breaking updates.
BeagleBone Green Wireless
BeagleBones are open source Single Board Computers (SBC) that can be used by DYI amateurs as well as become part of industrial products and services. One of those boards if the BeagleBone Green Wireless, developed as a joint project by BeagleBoard.org and Seeedstudio. Its main features are:
- Processor AM335x 1GHz ARM® Cortex-A8
- 512MB DDR3 RAM
- 4GB 8-bit eMMC on-board flash storage
- USB client for power & communications
- USB host with 4-port hub
- WiFi 802.11 b/g/n 2.4GHz
- Bluetooth 4.1 with BLE
The BeagleBoard is a device designed mostly for IoT and robotics applications, and does not have a video output port. However, the lack of a direct screen connection may be limiting, or just annoying during development.
BeagleBone HDMI cape
Fortunately, BeagleBoards have an active environment of add-on boards – called capes. One of them is the HDMI cape by Seeedstudio. This cape connect with different types of BeagleBones, and add a video output stream with a HDMI port you can connect to any screen.
However, it’s not so straightforward to make it work. The latest Debian OS image for BeagleBones (as of December 2021) is the 10.3, with Linux kernel version 4.19. This image will NOT work with the HDMI cape. The screen will remain completely black, with no output.
After some research, I found a note on Seeedstudio forum with a reference to a specific Linux kernel version, 4.4, that is compatible with the HDMI cape. All other versions are not compatible, and thus the HDMI won’t work with earlier or later versions. The correct Debian OS version is then the 8.10 one, which can be downloaded from BeagleBoard website firmware page.
However, we also need to make sure we prevent firmware upgrades – like the ones performed by
atp upgrade – to install more updated kernel versions that would break the compatibility with the HDMI cape.
Finally, we need to setup the BeagleBone Green Wireless to connect with our WiFi and prepare to make the most out of it!
- BeagleBone Green Wireless
- BeagleBone HDMI cape
- microSD card (8Gb+) and USB adapter
- Laptop/desktop to download and flash Debian OS
- USB Keyboard
- HDMI screen and cable
- MicroUSB cable and 5V power supply
- Access to WiFi
Flash OS on microSD
Connect the BeagleBone Green Wireless with the HDMI cape. Use the HDMI cable to connect with the screen, and the USB keyboard with one of the 4 USB hosts of our board.
Insert the microSD card in the BeagleBone Green Wireless and connect the power supply via the MicroUSB plug. The board will turn on and in a little bit (first boot can take up to 3 minutes) we will see some output on the screen. We will also see a WiFI Access Point with the name “
xxx is a numeric string unique for each board).
Login and change password
There is a guide right in the header of our screen with the default username and password to login.
It is wise to change them, as anybody that ever used a BeagleBone knows those account details. Shell command to do so is:
Flash OS to internal memory
The next thing to do is to flash the Operating System to our BeagleBone internal memory. Current OS versions have “flasher” images, which directly write the OS to the internal memory upon startup. Our old image, however, is only available as as regular image. Therefore, in order to write the OS we need to use one of the flasher scripts included in the image. Shell commands are:
cd /opt/scripts/tools/eMMC/ sudo ./init-eMMC-flasher-v3.sh
The LEDs on the BeagleBoard will blink sequentially as the image is being written to the internal memory. When all lights are stable (OFF in most cases, but reportedly ON in some board) and the process is finished, you can turn off your BeagleBone and remove the microSD card. Make sure you remove the microSD card before booting again!
Freeze Linux Kernel updates
Yo can then go ahead and complete the setup to make sure future updates do not break the compatibility with the HDMI cape. You can see the current Linux kernel version with this command:
Then you can use the
apt-mark hold command to prevent future updates. There are a few packages and meta-packages that need to be put on hold, in order to make sure we stick with our 4.4 kernel version for the time being. Commands to achieve this are:
sudo apt-mark hold $(uname -r) sudo apt-mark hold linux-image-$(uname -r) sudo apt-mark hold linux-generic sudo apt-mark hold linux-image-generic sudo apt-mark hold linux-headers-generic sudo apt-mark hold linux-image-extra-$(uname -r) sudo apt-mark hold linux-headers-$(uname -r)
Some command may give an error in case the relative package is not found, but that’s OK. The important thing is that both the Linux image and headers are pinned to the 4.4 kernel version.
Note that this operation may prevent you from getting any update, including security ones. Do this only to keep the compatibility with specific hardware (like the HDMI cape in this case), and make the possible to keep a level of security adequate for your application type.
Continue BeagleBone setup
You can then continue the setup, connecting the BeagleBone to your WiFi network, so you can also access it via SSH. You can use
connmanctl for this operation. Open the
connmanctl console with the following command:
Then go ahead to enable the WiFi
connmanctl> enable wifi
Disable the wifi acces point
connmanctl> tether wifi off
Scan for surrounding WiFi networks
connmanctl> scan wifi
Show available networks
This will show a list of available WiFi networks.
Turn on the connection agent
connmanctl> agent on
Connect to the WiFi network you prefer. You can use the
tab for autocompleting the name of the network…it’s handy, as those are very long strings.
connmanctl> connect wifi_xxxxxxxxxxxxxxx_managed_psk
It will prompt you to insert the password for the network. You can then check that the auto-connect is correctly set typing again
You should see *AO or *AR next to the network you just connected to. Finally, you can exit the
connmanctl console typing
You now can test your connection by pinging any website, for instance
You can also use the following commands to turn off the WiFi access point, Bluetooth, and the embedded web server (in case those are not needed), so you can save resources for your own applications:
# Stop and disable WiFi access point sudo systemctl stop bb-wl18xx-wlan0 sudo systemctl disable bb-wl18xx-wlan0 # Stop and disable Bluetooth sudo systemctl stop bb-wl18xx-bluetooth sudo systemctl disable bb-wl18xx-bluetooth sudo systemctl stop bluetooth sudo systemctl disable bluetooth # Stop and disable embedded web server sudo systemctl stop bonescript-autorun sudo systemctl disable bonescript-autorun sudo systemctl stop apache2 sudo systemctl disable apache2
- BeagleBoard website link
- BeagleBone Green Wireless link
- BeagleBone HDMI cape link
- Seeedstudio forum with indications about Debian OS compatible with BeagleBone HDMI cape link
- Debian OS 8.10 compatible with HDMI cape page link and direct link
Do you like our content? Check more of our posts in our blog!