ECE497 Project: XBee

Revision as of 09:31, 2 November 2012 by Shinnsm (talk | contribs) (update functions)
Jump to: navigation, search

thumb‎ Embedded Linux Class by Mark A. Yoder

Team members: Stephen Shinn, Matt Moravec, Josh Dugan.

Executive Summary

The XBee project involves taking two series-one XBee modules and interfacing them with the various sensors that have been documented in our ECE497 group. Our goal is to create wiki pages which expand on the sensors to include sample wireless communication documentation and source code.

Right now the various sensors have been documented and are working. We've received the XBee modules and soldered them as required. So far we've been able to send a receive messages from an XBee connected to a Windows PC to one connected to a Bone, and vice versa. We've started development on C code which is used to send and receive commands on the Bone. When finished, we'll have a library of methods for communication.

Our next step is to move to Bone-to-Bone communication and to be able to control our sensors wirelessly from one Bone to the other.

In conclusion, we're using XBee modules to communicate from one Bone to another. A protocol is in development and will be used for controlling sensors wirelessly.

Installation Instructions


The very first step is to solder your XBee module, see the instructions here. Once the module is assembled, you may wire-up the XBee module to the BeagleBone's serial ports. The table below describes how to hook up the module to UART2 on the Bone:

XBee Bone
GND Ground, port 1
3V 3.3V, port 3
TX RX, port 22
RX TX, port 21

The image below shows the configuration:


Our git repo for this project is available here: To begin, download the serial.c file which houses our communication methods. You are now able to send data wirelessly using the SendIntXbee() and ReceiveIntXbee() functions. Repeat this procedure on a separate BeagleBone and use the same functions to receive and reply data.

User Instructions

TO DO: How to use the send and receive functions. Include screenshots.

After cloning our repository to your favorite location, include the necessary header file, XBee.h (not created yet). In your main.c file or your program, first run:


which sets the pins we will need to communicate to the XBee. Then in your main.c call:


with chars as a string characters you choose. On your 2nd BeagleBone, call:


which will return the string of characters which were sent through sendIntXbee() on the 1st board.


TBD: Showcase an example of a sensor controlling something wireless.

Theory of Operation

The main theory of operation is based on Linux's use of files. With an XBee connected to the Bone's UART, sent and received messages are written to the ttyO2 file. Our code uses this and reads the file to receive a message and writes to the file to send a message. Any XBee's on the same network wil receive the message and we can do anything we want with it.

Work Breakdown


  • Monday, 10/29 - XBee hardware received. (done)
  • Thursday, 11/1 - XBee Bones are connected and commands can be sent. (done)
  • Monday, 11/5 - Initial sensor implementation.
  • Thursday, 11/8 - Package language implemented between Bones.
  • Sunday, 11/11 - YouTube demo uploaded.
  • Monday, 11/12 - All documentation complete.
  • Tuesday, 11/13 - Presentation day; PowerPoint complete.

Completed Work

  • Soldering XBee's - Matt Moravec
  • Initial communication methods - Stephen Shinn
  • Expanded communication methods - Josh Dugan

To Do

  • Sensor implementation: starting with the sensors that we interfaced earlier in the class
  • Wiki pages

Future Work




thumb‎ Embedded Linux Class by Mark A. Yoder