2020-03-29 12:18:37 -07:00

3.3 KiB

BeagleBone Black Setup

The BeagleBone Black was selected as a development board because it uses a variant of the Texas Instruments AM335X, a well-documented and inexpensive platform.

First Time Setup

The best available setup documentation is from the Beaglebone website.

If you've used the "IoT" image, or something else that has no Xorg, this will install a minimal X setup:

Note: You might not need (or want) Xorg.

sudo apt-get install --no-install-recommends -y xserver-xorg-core xserver-xorg-input-all xserver-xorg-video-fbdev

Physically Conneting the Display

Connecting to Device

Once the OS is installed, there are three methods which can be used to communicate with the BeagleBone Black:

  • Ethernet: Preferred method. Connect to a host ethernet port and share an internet connection, or to a switch or hub that can easily let you determine the DHCP assigned IP address of the BBB.
  • Serial cable: Will let you watch boot. Use the PL2303 cable as described here. Connect black to pin 1 (has a dot next to it), green to pin 4, white to pin 5. NOTE: It's a six pin header, the last pin is pin 6. Install the Prolific drivers. Connect to the board before boot with sudo screen /dev/tty.usbserial 115200 8n1.
  • USB: Not recommended. Strange, fragile setup. Sketchy USB drivers. Follow the Adafruit guide at your own risk.

Generally, the BeagleBone will pick an IP address like 192.168.x.2. The non-privileged user is debian and the password is temppwd.

Device Tree Overlay

The display requires a device tree overlay to be created and loaded in order for the Linux kernel to correctly target the video device.

On host machine

The .dts file uses some C headers that must be copied to the BeagleBone in order to compile the overlay:

scp -r ./beaglebone/dt-bindings debian@beaglebone.local:~/dts/dt-bindings

Make changes to ./beaglebone/VE-2IN-BBB.dts, then copy it over:

scp ./beaglebone/VE-2IN-BBB.dts debian@beaglebone.local:~/dts

On BeagleBone Black

Build the .dts file and reboot to load it:

cd ~/dts && \
cpp -nostdinc -I . -undef -x assembler-with-cpp VE-2IN-BBB.dts VE-2IN-BBB.dts.preprocessed && \
dtc -O dtb -o VE-2IN-BBB.dtbo -b 0 -@ VE-2IN-BBB.dts.preprocessed && \
sudo cp VE-2IN-BBB.dtbo /lib/firmware/VE-2IN-BBB.dtbo && \
sudo reboot

In /boot/uEnv.txt, comment out the virtual HDMI cape and the universal cape. Then, add this line:

dtb_overlay=/lib/firmware/VE-2IN-BBB.dtbo

You may also want to disable the HDMI framer in the kernel command line arguments:

cmdline=coherent_pool=1M net.ifnames=0 quiet

Other things

These are *not necessary, but documented here for reference.

Manually Flash the Reset Pin

The GPIO P9_12 on the board is GPIO1_28/PIN 60 in software.

sudo echo 60 > /sys/class/gpio/export && sleep 1 && \
sudo echo out > /sys/class/gpio/gpio60/direction && \
echo 1 > /sys/class/gpio/gpio60/value && \
echo 0 > /sys/class/gpio/gpio60/value && sleep 0.5 && \
echo 1 > /sys/class/gpio/gpio60/value