Skip to content

Learn about Bootloader, toolchains, Linux system calls & implement user space application on BeagleBone-Black

License

Notifications You must be signed in to change notification settings

PranabNandy/BeagleBone-Black-Platform-Bring-Up

Repository files navigation

Embedded System Development using BBB

BBB is a SBC (Single Board Computer)

  • When a single piece of circuit board, comprises most of the personal Computer hardware/software components, then it is called as a SBC. Am335x has a Cortex-A8 (A 32 bit MPU) where we run Linux & other HLOSes.

Beagle Bone Black Initial Boot up Video

Objective of the Project

  • Understanding various sub systems of AM335x (1GHz ARM® Cortex-A8) SOC such as GPIOs, I2C, SPI, MMC, etc...
  • Understanding ROM–Uboot-Kernel boot process on Linux-ARM systems and testing.
  • U-Boot, MLO, SPL explanation and testing.
  • Linux device tree
  • Understanding platform devices and how it works.
  • eMMC OS updating and booting new Debian OS.
  • Interfacing external LEDs, temperature sensor, Acceleration/Gyroscope such as MPU 6050 or ADXL345 and code development.
  • Using HTTP, the sensors can push numeric or alphanumeric data to the server, where it can be processed and visualized.
  • Beaglebone networking
  • Serial log (UART) used minicom tool

BBB uses TI’s AM355x SOC

Screenshot from 2023-09-16 12-10-15

  • SOC stands for System on Chip. As the name indicates, a single chip contains most of the essential computing /communication /storage engine of the computing world, like Flash memory, Graphics processing engine, the image processing engine, the USB communication engine, RS232, SPI, I2C engine and much more. The heart of the SOC is a processor.
  • For example AM355x SOC is powered by ARM cortex A8 processor.

Prepare

Hardware Sortware Reference
Beaglebone Black Rev.C Ubuntu 18.04 Exploring BeagleBone Tools and Techniques for Building with Embeddded Linux ®Derek Molloy
MPU6050 VSC or Vim AM335x ARM® Cortex™-A8 Microprocessors (MPUs) Technical Reference Manual
ADXL345 Cross compile AM335x Datasheet
Button BusyBox Beagleboard Cape Expansion Headers
Leds Buildroot BeagleBone-Black System Reference Manual
74HC595 Minicom MPU-6000/MPU-6050 Product Specification
TMP36 GParted ADXL345 Datasheet
FT232RL USB Serial TMP36 Datasheet
SD card (>4GB) 16x2 LCD HD44780 Datasheet
RTC-DS3231 RTC-DS3231
GPS-Neo6M MPU-6000 and MPU-6050 Register Map and Descriptions Revision 4.2

How to connecting BBB to PC using external USB TO UART converter

Screenshot from 2020-08-25 22-18-12

Instruction list

  1. CGI using C++ on the BeagleBone
  2. Introduction to the BeagleBone Black Device Tree
  3. The Beaglebone Black and Device Tree Overlays
  4. Sharing internet using Network-Over-USB in BeagleBone Black

Why use BeagleBone Black​ ?

  • Because it's an Open Source Platform (i.e open hardware board), taht makes a big difference if you need to redesign a complete board with only your needed functionnality. The number of GPIO pins available makes it amazing for extending the boards capability.
  • For interacting with the physical world, the BB has 7 analog input channels, while the RPi has none. The BBB has a Programmable Realtime Unit (PRU) Subsystem that allows for much faster GPIO usage.
  • You can also install Android relatively easy onto here so if that’s a deal breaker then Beaglebone is for you. However, I did find Android a little slow on the Beaglebone. I would personally pick the Beaglebone Black if I were looking into more device or circuitry based projects.
  • Most of the companies ,what they do is , they take the BBB hardware design, like part numbers, schematics , BOM etc and they add customer specific add-ons or features then release the product to the market.

Use Case of Board Bring Up Activity

  • When the hardware team is working on the new hardware, the software team will not sit idle, they test their software, drivers, and applications on reference ( such as Beaglebone-Black ) board, which greatly reduces the time to release the final product in the market.

We will focus on upstream components:

1. U-Boot: this is the most often used bootloader in embedded systems and it’s recommended for BBB. 
We will use upstream U-Boot, as it supports BBB.
2. Linux Kernel: it’s a main part of Linux OS. We will use upstream kernel, as it supports BBB.
3. BusyBox rootfs: it’s minimal, so it’s the best choice for understanding the crucial OS parts. 
It can be useful in real work for testing, debugging and isolating the bugs, due to its minimalistic 
nature. It also often can be found in networking devices (routers, etc), and is used as initramfs 
in desktop GNU/Linux distributions.
  • Beagle Black comes with a 1GHz AM3359 ARM Cortex A8 processor which uses ARMv7 instruction set
  • Raspberry Pi 3 has a 1.2GHz 64-bit quad-core ARMv8 CPU.

4 elements of BBB board End-to-End Bring Up with Upstream Components

  • Preparing the Tools

  • Obtaining and Building the Software

  • Flashing

  • Booting