BeagleBone Green

The BeagleBone Green is an open source embedded Linux development platform created in a joint effort by Seeed Studio and BeagleBoard.org. The board features an AM335x 1GHz ARM® Cortex-A8 processor, 512MB DDR3 RAM, 4GB 8-bit eMMC on-board flash storage, and includes two Grove connectors for easy compatability to the large family of Grove sensors.

Users are expected to have a moderate understanding of working with a BeagleBone and embedded Linux systems prior to use with Atmosphere. It's recommended to read the Official BeagleBoard Resources or Seeed BeagleBone Green Documentation for information on configuring the board, user credentials, installing firmware, and usage details.

Project Specifics

There are no imported sensors or specialized elements or tools native to BeagleBone Green projects.

Connectivity Layer in Atmosphere Projects

Projects created for the BeagleBone Green within Atmosphere Studio don’t require a connectivity aspect built into them in order to communicate with Atmosphere. Instead, the application generated from Atmosphere uses the native connectivity running on the BeagleBone Green – such as Ethernet or Wi-Fi – to send data to the cloud.

Additional information on connecting the BeagleBone Green to the Internet can be found in the sections below.

Hardware Specifics

Some devices may have limitations or design restrictions that cause unexpected behavior when used with Atmosphere. Specific information and details pertaining to the BeagleBone Green and its performance on Atmosphere is noted below.

Hardware Version Compatibility

The project type for the BeagleBone Green is compatible with both the BeagleBone Green and the BeagleBone Green Wireless variants of the board.

Enabling Wi-Fi

The BeagleBone Green doesn’t have Wi-Fi enabled by default. The following steps will connect the board to a Wi-Fi network using the terminal of your choice:

  1. Run sudo connmanctl. This runs the board’s network manager.
    • If a password is requested, either enter the password you’ve updated for the board or use temppwd if using the default password.
    • If a VPN error appears, disregard it.
  2. Run enable wifi to enable Wi-Fi.
  3. Run scan wifi to scan the board for available Wi-Fi networks.
  4. Run services to display the list of available Wi-Fi services and networks. Your network will be displayed, followed by a series of string values that resembles the following:
     AtmosphereIoTNetwork        wifi_f045da3f2dab_426f62654e6574_managed_psk
    
  5. Run agent on to register the board’s agent.
  6. To connect to your preferred network, copy the network ID you identified from step 4 and submit it after a connect command. This should resemble the following: connect wifi_f045da3f2dab_426f62654e6574_managed_psk
  7. Enter the network password when prompted.

When complete you’ll receive a prompt that the board has connected to the network. You can then quit to exit. If you want to test the network connection, you should be able to ping google.com and get a response.

This process only needs to be done once, and from then on the board will attempt to connect to Wi-Fi on boot provided auto-connect is enabled. If the network service doesn’t have auto-connect enabled, this process must be completed again.

Printing to Debug Console

Debug print information can be accessed by running the application’s binary file with chmod +x Atmosphere_Project.bin. This will execute the firmware service and print the output directly into the terminal. If you wish to view the output of the service directly, you can execute with journalctl -u atmosphere -f.

When you want to disable a running Atmosphere application, run sudo service atmosphere stop and the service will stop.

Default Pin Mapping

Atmosphere configures each peripheral to a default pin for every supported device, based on ideal pairing of pins and their usage. The default pin configuration is set for convenience and enables each peripheral to work naturally without needing to be modified.

BeagleBone Green projects start with the following pin configuration:

Pin Description Notes
P8_3 P8 Header Pin 3  
P8_4 P8 Header Pin 4  
P8_5 P8 Header Pin 5  
P8_6 P8 Header Pin 6  
P8_7 P8 Header Pin 7  
P8_8 P8 Header Pin 8  
P8_9 P8 Header Pin 9  
P8_10 P8 Header Pin 10  
P8_11 P8 Header Pin 11  
P8_12 P8 Header Pin 12  
P8_13 P8 Header Pin 13  
P8_14 P8 Header Pin 14  
P8_15 P8 Header Pin 15  
P8_16 P8 Header Pin 16  
P8_17 P8 Header Pin 17  
P8_18 P8 Header Pin 18  
P8_19 P8 Header Pin 19  
P8_20 P8 Header Pin 20  
P8_21 P8 Header Pin 21  
P8_22 P8 Header Pin 22  
P8_23 P8 Header Pin 23  
P8_24 P8 Header Pin 24  
P8_25 P8 Header Pin 25  
P8_26 P8 Header Pin 26  
P8_27 P8 Header Pin 27  
P8_28 P8 Header Pin 28  
P8_29 P8 Header Pin 29  
P8_30 P8 Header Pin 30  
P8_31 P8 Header Pin 31  
P8_32 P8 Header Pin 32  
P8_33 P8 Header Pin 33  
P8_34 P8 Header Pin 34  
P8_35 P8 Header Pin 35  
P8_36 P8 Header Pin 36  
P8_37 P8 Header Pin 37  
P8_38 P8 Header Pin 38  
P8_39 P8 Header Pin 39  
P8_40 P8 Header Pin 40  
P8_41 P8 Header Pin 41  
P8_42 P8 Header Pin 42  
P8_43 P8 Header Pin 43  
P8_44 P8 Header Pin 44  
P8_45 P8 Header Pin 45  
P8_46 P8 Header Pin 46  
P9_11 P9 Header Pin 11  
P9_12 P9 Header Pin 12  
P9_13 P9 Header Pin 13  
P9_14 P9 Header Pin 14  
P9_15 P9 Header Pin 15  
P9_16 P9 Header Pin 16  
P9_17 P9 Header Pin 17  
P9_18 P9 Header Pin 18  
P9_21 P9 Header Pin 21  
P9_22 P9 Header Pin 22  
P9_23 P9 Header Pin 23  
P9_24 P9 Header Pin 24  
P9_25 P9 Header Pin 25  
P9_26 P9 Header Pin 26  
P9_27 P9 Header Pin 27  
P9_28 P9 Header Pin 28  
P9_29 P9 Header Pin 29  
P9_30 P9 Header Pin 30  
P9_31 P9 Header Pin 31  
P9_41 P9 Header Pin 41  
P9_42 P9 Header Pin 42  
AIN0 Analog Pin AIN0 Connected to P9_39
AIN1 Analog Pin AIN1 Connected to P9_40
AIN2 Analog Pin AIN2 Connected to P9_37
AIN3 Analog Pin AIN3 Connected to P9_38
AIN4 Analog Pin AIN4 Connected to P9_35
AIN5 Analog Pin AIN5 Connected to P9_36
AIN6 Analog Pin AIN6 Connected to P9_33

The default pin for any peripheral can be changed within an element's properties, from an element that references that particular peripheral.

Peripherals

Below is information regarding the BeagleBone Green’s exposed peripherals.

ADC

The pins AIN0, AIN1, AIN2, AIN3, AIN4, AIN5 and AIN6can be used for ADC.

AIN0 and AIN2 are on the Grove Base Cape for BeagleBone as A0 and A2.

I2C

I2C is exposed via pins P9_19(SCL) and P9_20(SDA). You can also access I2C via the Grove connector on the BeagleBone or on the Grove Base Cape for BeagleBone.

PWM

The pins P8_13, P8_19, P8_34, P8_36, P8_45, P8_46, P9_14, P9_16, P9_21, P9_22, P9_28, P9_29, P9_31 and P9_42 can be used for PWM.

SPI

This SPI bus is exposed via pins P9_18(MOSI), P9_21(MISO), and P9_22(CLK).

BeagleBone Green Wireless SPI Usage

If using SPI on the BeagleBone Green Wireless, two capacitors (circled in red below) on the underside of the board near the UART Grove connector must be removed:

BeagleBone Green Wireless SPI

These capacitors – only present on the BeagleBone Green Wireless – are designed to decrease noise if using the UART connector with long wires. However, they have the unintended side effect of causing corruption on the SPI MOSI and MISO data lines.

UART

You can access UART4 on pins P9_13(TX) and P9_11(RX).

To easily access the BeagleBone Green's peripherals, it's recommended to use the board alongside the Grove Base Cape for BeagleBone.

Programming Method

Programming an Atmosphere project onto a BeagleBone involves putting a project’s firmware.zip file onto it and running the zip’s binary file as an executable application.

Setup Configuration

Prior to putting firmware onto the BeagleBone Green, ensure you have the following setup configuration:

  • The project has been compiled in Atmosphere.
  • The BeagleBone Green is powered on.
  • An Internet connection is maintained.
  • A means to interact with the board using the terminal of your choice.
  • A method for putting the firmware onto the board via SSH.

Programming Instructions

With setup complete, you can program the BeagleBone Green:

  1. From Atmosphere Studio’s Embedded tab, click the Program Firmware button from the tab’s toolbar. This downloads a firmware.zip file containing the project’s compiled firmware.
  2. Put the zip file onto the BeagleBone Green via SSH.

Once the download/transfer is complete, the BeagleBone Green has the project zip file on it, which hasn’t been unzipped and can’t yet be run. Steps to run the application are included below as part of registering the BeagleBone Green.

Registering to Atmosphere

Connecting a BeagleBone Green to Atmosphere involves generating an API token in Atmosphere, and providing that token in a terminal when an application attempts to execute. Once the token is provided, the BeagleBone Green will register to Atmosphere automatically as long as the Internet connection is maintained.

To run an Atmosphere application and register the BeagleBone Green:

  1. While in Atmosphere open the account menu from the navigation bar and click Security.
  2. In the Security section’s Authentication Tokens area, click the Generate Token button to make a new API token. This will be the token you use to provide the BeagleBone Green with the credentials to connect to Atmosphere. BeagleBone Green API Token

Once you’ve created an API token, it then has to be provided once you run the file.

  1. Unzip the firmware by running unzip firmware.zip from a terminal. This extracts a binary firmware file, a device configuration file, and a setup script file. The setup script file runs the application on the BeagleBone Green and initiates communication with Atmosphere.
  2. Run chmod +x ./setup.sh to make the setup script executable, and then execute it using sudo ./setup.sh.
    • Alternatively, if you wish to run the application without a cloud connection for debug output only, you can run the binary file with chmod +x Atmosphere_Project.bin. This will execute the firmware and print the output directly into the terminal and the remaining steps can be disregarded.
  3. When prompted for a password, enter the password for the board.
  4. When the setup file attemptes to execute, you’ll be prompted to enter an API key. This is the API token you generated earlier; enter the key and submit.

Once the API token is entered, the application executes and initiates communication with Atmosphere and the BeagleBone Green registers itself as a device. The application then installs itself as a system service on the Board. If the BeagleBone Green is powered off and on again, the application will run on boot with other system services; the above steps only need to be completed once in order to run the application and register the board.

Guides and Tutorials

Get started using the BeagleBone Green with Atmosphere by walking through the following guides:

BeagleBone Green Guides
Getting Started with BeagleBone Green

Demo Projects

Atmosphere includes a variety of BeagleBone Green demo projects for users of all levels. Check them out by clicking the demo’s name to open the project in Atmosphere.

Name Description
3-axis Digital Accelerometer Demo Demonstrates using the BeagleBone Green alongside an ADXL345 3-axis Digital Accelerometer to read acceleration data, then send that data to the cloud.
BeagleBone Green MX8607 Demo Demonstrates using the BeagleBone Green alongside a Grove MS8607 Sensor to read temperature data and print the values to a debug console.
BeagleBone Green Pressure 4 Click Demo Demonstrates using the BeagleBone Green with a Pressure 4 Click board to read pressure and temperature data and sending the data to the cloud.
BeagleBone Green UART Demo Demonstrates using the BeagleBone Green with a demo that sends incrementing counter data over UART while demonstrating the buffering and regex capabilities of the UART driver. This demo uses UART4. Note to connect P9_13 and P9_11 on your BeagleBone Green to send the TX back to RX.
Grove Button and Buzzer Demo Demonstrates using the BeagleBone Green alongside the Grove Button and Buzzer sensors to beep the buzzer when the button is pressed.
Grove Button and Temperature Demo Demonstrates using the BeagleBone Green alongside the Grove Button and Grove Temperature Sensor to read temperature data when the button is pressed, then send that data to the cloud.
Grove Buzzer Demo Demonstrates using the BeagleBone Green alongside a Grove Buzzer Sensor to beep the buzzer on and off.
Grove Light Sensor Demo Demonstrates using the BeagleBone Green alongside a Grove Light Sensor to read the light ADC count and send it to the cloud. If the count goes below the set limit, the device goes into an alarming state.
Grove PIR Motion Demo Demonstrates using the BeagleBone Green alongside a Grove PIR Motion Sensor to detect motion. If motion is detected, data will print on a debug console.
Grove Rotary Angle Sensor Demo Demonstrates using the BeagleBone Green alongside a Grove Rotary Angle Sensor to read the board angle in degrees and send the data to the cloud.
Grove Temperature Sensor Demo Demonstrates using the BeagleBone Green alongside a Grove Temperature Sensor to read temperature sensor data and print the values to a debug console.
Grove Variable Color LED Demo Demonstrates using the BeagleBone Green alongside a Grove Variable Color LED to toggle the RGB LED on the sensor. By adjusting the three adjustable resistances, it can modify the variable color.
Weather Click Demo Demonstrates using the BeagleBone Green alongside a Weather Click board to read environmental sensor data and print the values to a debug console.

Videos

The Atmosphere video library contains the following videos on the BeagleBone Green:

Getting started video coming soon!

Resources

The following additional resources and downloadable files are available for the BeagleBone Green: