1. BeagleBone Cookbook

Mark A. Yoder <Mark.A.Yoder@Rose-Hulman.edu> v2.0 beta

2. Outline

A cookbook for programming Beagles

  1. Basics

    • Introduction

    • Picking Your Beagle

    • Getting Started, Out of the Box

    • Verifying You Have the Latest Version of the OS on Your Bone

    • Running the Python and JavaScript Examples

    • Cloning the Cookbook Repository

    • Wiring a Breadboard

    • Editing Code Using Visual Studio Code

    • Running Python and JavaScript Applications from Visual Studio Code

    • Finding the Latest Version of the OS for Your Bone

    • Running the Latest Version of the OS on Your Bone

    • Updating the OS on Your Bone

    • Backing Up the Onboard Flash

    • Updating the Onboard Flash

  2. Sensors

    • Introduction

    • Choosing a Method to Connect Your Sensor

    • Input and Run a Python or JavaScript Application for Talking

    • Reading the Status of a Pushbutton or Magnetic Switch (Passive

    • Mapping Header Numbers to gpio Numbers

    • Reading a Position, Light, or Force Sensor (Variable

    • Reading a Distance Sensor (Analog or Variable Voltage Sensor)

    • Accurately Reading the Position of a Motor or Dial

    • Measuring a Temperature

    • Reading Temperature via a Dallas 1-Wire Device

    • Playing and Recording Audio

  3. Displays

    • Introduction

    • Toggling an Onboard LED

    • Toggling an External LED

    • Toggling an External LED via gpiod

    • Toggling a High-Voltage External Device

    • Fading an External LED

    • Writing to an LED Matrix

    • Driving a 5 V Device

    • Writing to a NeoPixel LED String Using the PRUs

  4. Motors

    • Introduction

    • Controlling a Servo Motor

    • Controlling a Servo with an Rotary Encoder

    • Controlling the Speed of a DC Motor

    • Controlling the Speed and Direction of a DC Motor

    • Driving a Bipolar Stepper Motor

    • Driving a Unipolar Stepper Motor

  5. Beyond Basics

    • Introduction

    • Running Your Bone Standalone

    • Getting to the Command Shell via SSH

    • Getting to the Command Shell via the Virtual Serial Port

    • Viewing and Debugging the Kernel and u-boot Messages at Boot Time

    • Verifying You Have the Latest Version of the OS on Your Bone from the Shell

    • Controlling the Bone Remotely with a VNC

    • Learning Typical GNU/Linux Commands

    • Editing a Text File from the GNU/Linux Command Shell

    • Establishing an Ethernet-Based Internet Connection

    • Establishing a WiFi-Based Internet Connection

    • Sharing the Host’s Internet Connection over USB

    • Setting Up a Firewall

    • Installing Additional Packages from the Debian Package Feed

    • Removing Packages Installed with apt

    • Copying Files Between the Onboard Flash and the MicroSD Card

    • Freeing Space on the Onboard Flash or MicroSD Card

    • Using C to Interact with the Physical World

  6. Internet of Things

    • Introduction

    • Accessing Your Host Computer’s Files on the Bone

    • Serving Web Pages from the Bone

    • Interacting with the Bone via a Web Browser

    • Displaying GPIO Status in a Web Browser - reading a button

    • Controlling GPIOs

    • Plotting Data

    • Sending an Email

    • Displaying the Current Weather Conditions

    • Sending and Receiving Tweets

    • Wiring the IoT with Node-RED

  7. The Kernel

    • Introduction

    • Updating the Kernel

    • Building and Installing Kernel Modules

    • Controlling LEDs by Using SYSFS Entries

    • Controlling GPIOs by Using SYSFS Entries

    • Compiling the Kernel

    • Using the Installed Cross Compiler

    • Applying Patches

    • Creating Your Own Patch File

  8. Real-Time I/O

    • Introduction

    • I/O with Python

    • I/O with C

    • I/O with devmem2

    • I/O with C and mmap()

    • Tighter Delay Bounds with the PREEMPT_RT Kernel

  9. Capes

    • Introduction

    • Using a Seven-Inch LCD Cape

    • Using a 128 x 128-Pixel LCD Cape

    • Connecting Multiple Capes

    • Moving from a Breadboard to a Protoboard

    • Creating a Prototype Schematic

    • Verifying Your Cape Design

    • Laying Out Your Cape PCB

    • Migrating a Fritzing Schematic to Another Tool

    • Producing a Prototype

    • Creating Contents for Your Cape Configuration EEPROM

    • Putting Your Cape Design into Production