ECE597 Project SensorTag 3D

Team members: Leihao Wei

Grading Template
I'm using the following template to grade. Each slot is 10 points. 0 = Missing, 5=OK, 10=Wow!

 00 Executive Summary 00 Installation Instructions 00 User Instructions 00 Highlights 00 Theory of Operation 00 Work Breakdown 00 Future Work 00 Conclusions 00 Demo 00 Late Comments: I'm looking forward to seeing this.

Score: 10/100

(Inline Comment)

Executive Summary
SensorTag is a portable low-power module that uses Blueooth Low Energy (BLE, Bluetooth 4.0) and various sensors to communicate data to any BLE receiver. The purpose of this project is to build an application interacting with a beaglebone to track the SensorTag’s position and rotation in 3D. We'll start off from the previous work SensorTag. In the end, we expect to see it sending updates faster than once per second.

Packaging

 * Beaglebone Black
 * TI SensorTag |TI SensorTag
 * Bluetooth CSR 4.0 dongle



Installation Instructions

 * Get the project repository


 * Install necessary packages, libbluetooth-dev bluez sensortag by running the install.sh script.


 * Retrieve the original python BLE scripts from this github repo [http://elinux.or

Heading text
g/TI_SensorTag TI_SensorTag].


 * Retrive the BLE Address of your sensorTag. Press the side button on your sensorTag so that it enters discovery mode.

^^^ Is the BLE address of your sensorTag. '''It seems the 3.8 kernel has issues with hot plugging. Mine does the same, but if I plug in the bluetooth dongle and then power up, it works just fine. Also, get the 5v plug if it fails to work.'''

You should get something like this: Now, it's reading the IR temperature sensor.
 * Execute the sensortag.py script to determine if it executes properly (i.e. your linux distribution comes with pexpect); if not, retrieve pexpect online (I used v3.2)

Update the SensorTag Firmware

NOTE: You will need an iOS device for this!

I obtained the following instructions from this website: http://www.myweathercenter.net/installing-a-new-firmware-for-ti-sensortag/

1) Make the changes to the firmware to get a faster refreshing rage. Here is how to do so (information obtained from: http://e2e.ti.com/support/wireless_connectivity/f/538/t/311302.aspx?pi310978=1):

a) Download IAR Workbench: http://supp.iar.com/Download/SW/?item=EW8051-EVAL (make sure to choose 30 day evaluation copy) b) Download BLE-STACK from TI: http://www.ti.com/tool/ble-stack c) In IAR Workbench Open SensorTag.eww file from following path: "C:\Texas Instruments\BLE-CC254x-1.4.0\Projects\ble\SensorTag\CC2541DB\SensorTag.eww" d) After the gyro data is read, the gyro goes into sleep mode. A gyro wake up routine is called. This makes the gyro capture period limited to the gyro startup time which is 60ms. So, in order to get a faster refreshing rate, one must modify to code in HalGyro.c so the gyro does not go to sleep after data is read (line 296). Also, get rid of SENSOR_PERIOD_RESOLUTION in the gyro service source file

(Alternatively, instead of changing the firmware manually, you can get the updated version (with faster refreshing rate) from a github repository. Get the A and B images from the following repository: https://github.com/Lahorde/sensor_tag_firmware/tree/master/gyro_period)

2) Get the SensorTag App from the app from the Apple App Store 3) Connect your iOS device to your computer and open up iTunes. 4) Under the "Apps" section, go to the bottom of the page to find "File Sharing". The SensorTag App should appear in the "Apps"-list. 5) Click "Add" on the right hand side and select both firmware files. 6) Sync iTunes with iOS device. 7) Open SensorTag App on your iOS device. 8) Select "Upgrade FW" then "Select FW File" then "Shared Files" 9) If you already have image A installed, install image B. (If you have B installed, install image A) 10) Wait till firmware has been updated on your device.

You have successfully updated your firmware, so now you can have a fast refreshing rate!

User Instructions
To use the program run ./boneServer.js as shown below

Go to 192.168.7.2.9090 and click on the ball and cube image.

Wait a few seconds to connect.

The image should be rendering on the screen as shown below.

Highlights
Here is where you brag about what your project can do.

Include a YouTube demo.

Theory of Operation
Give a high level overview of the structure of your software. Are you using GStreamer? Show a diagram of the pipeline. Are you running multiple tasks? Show what they do and how they interact.

Work Breakdown
List the major tasks in your project and who did what.

Also list here what doesn't work yet and when you think it will be finished and who is finishing it.

Future Work
Suggest addition things that could be done with this project.

Conclusions
Give some concluding thoughts about the project. Suggest some future additions that could make it even more interesting.

References: