Skip to content

Beaglebone Intro & FAQ

Nathan Richards edited this page Mar 4, 2021 · 4 revisions

Table of Contents

Intro
Important Notes
SSH into the Beaglebone (Any terminal)
Sending files to Beaglebone, on Linux Host
Receiving files from the Beaglebone, on Linux Host
Accessing the Beaglebone microSD card on Linux Host
Using Remote SSH on the Beaglebone
Enabling UARTs

Intro

A beaglebone is a mini computer, similar to a raspberry pi. It contains a AM335x ARM® Cortex-A8.
which is a microprocessor with some peripherals, including two 32-bit 200 MHz co-processors intended for real-time processing.

Each beaglbone has 46 pins. There are GPIO pins, UART, SPI, I2C communication pins, PWM pins, and an analog to digital converter among other features.

For power input we typically connect through the usb port.

On beaglebones the operating system we run is exclusively linux. The version we use is debian.

As of fall 2020 beaglebones are the primary microcomputer we use to run our sensors to on esw.
For most of the hardware devices that use the i2c communication protocol, we use the python-smbus module,
so all of our beaglebone code is in python.

Important Notes

  • The password to all the beaglebones's is "temppwd"
  • You can get a flashed sdcard by following the beaglebone SD card flashing guide
  • You should always have your sdcard plugged into the beaglebone when you turn the beaglebone on
  • Keep your work on github AND on the sdcard
  • Use SYS_5V instead of VDD_5V to power devices
  • Don't power power hungry devices using the BB. Use a power supply instead
  • Please triple-check your wiring
  • Detailed Reference Sheet: https://github.com/beagleboard/beaglebone-black/wiki/System-Reference-Manual
  • If you press the power button and the blue light briefly flickers but doesn't turn on, the beaglebone is dead

SSHing into the BeagleBone

After plugging in the beaglebone, wait for at least 30 seconds for the beaglebone to boot and establish a connection to the host. This may take much longer.
On the host
$ ssh [email protected]
password by default= temppwd
If this fails from an Ubuntu laptop, run
$ sudo dhclient -v <device_name>
This will be blocked if the beaglebone is attempting certain kinds of network communication
This will be blocked if you have ssh'ed into a different beaglebone recently
Copy and run the $ ssh-keygen -f… command recommended by the terminal, and try again
The terminal is now displaying the beaglebone's system
Type $ logout to logout or ctrl-D
If it complains there are stopped processes, keep trying to log out

Sending files to Beaglebone, on Linux Host

On the host, navigate to the directory of the file you wish to move, using
$ cd /path/to/directory/
Ensure the beaglebone is connected to the computer
Plan what file path in the beaglebone, from the debian user's folder-space, you wish to move the file to.
On the host
$ scp <file-name> [email protected]:/home/debian/(file path)

Receiving files from the Beaglebone, on Linux Host

On the host, navigate to the directory where you want the file to end up, using
$ cd /path/to/directory/
Ensure the beaglebone is connected to the computer
Find what file path in the beaglebone, from the debian user's folder-space, the file is located.
On the host
$ scp [email protected]:/home/debian/(file path) .

Accessing the Beaglebone microSD card on Linux Host

Insert the microSD card into the host
On the host, mount the disk
$ sudo fdisk -l
Find the name of the microSD card partition. It should look something like /dev/mmcblk0p1. It's type should be Linux and its Size should be 7.4 G.
$ sudo mount NAME /media/rootfs
All the microSD card files are now located in /media/rootfs. The files in beaglebone's user space are located in /media/rootfs/home/debian
Do what you will
Once finished, unmount the disk
Navigate to a directory outside of /media using the cd command. Make sure no programs are using files on the microSD card
$ sudo umount /dev/mmcblk0p1
The microSD card is now safe to remove

Enabling Uarts

On the BBB, check if UARTs are enabled
$ ls /dev/ttyS*
If more than 1 UARTs are listed, UARTs are already enabled. If not, continue with this guide
On the BBB, open /boot/uEnv.txt in your editor of choice
Check for enable_uboot_cape_universal=1
If this line is commented out, uncomment it
reboot the BBB, and check if UARTs are enabled again. If not, continue with this guide
If this line does not exist, add it
reboot the BBB, and check if UARTs are enabled again. If not, continue with this guide
If UARTs are still not enabled (check again) - On the BBB, open /boot/uEnv.txt in your editor of choice
Add the line cape_enable=capemgr.enable_partno=BB-UART1,BB-UART2,BB-UART4,BB-UART5
reboot the BBB, and check if UARTs are enabled again. If not, continue with this guide
If UARTs are still not enabled (check again) - Connect the BBB to the internet through USB
On the BBB, update the linux kernel
$ sudo apt-get update
$ sudo apt-get dist-upgrade
reboot the BBB
Connect the BBB to the internet through USB
On the BBB,recover uEnv.txt
$ sudo mv /boot/uEnv.txt.backup /boot/uEnv.txt
attempt steps 2 and 3 again
reboot the BBB, and check if UARTs are enabled again.

Clone this wiki locally