![Nibo](images/nibo_logo_white.png)
Spring 2008
MEMBERS
- Kenneth Chan (kkchan [at] andrew.cmu.edu)
- Andrew Lai (ajlai [at] andrew.cmu.edu)
- Jonathan Li (jli1 [at] andrew.cmu.edu)
- Jesse Mwaura (jmwaura [at] andrew.cmu.edu)
PROJECT CONCEPT
A device that allows users to monitor information of their choice (weather, stocks, sports, etc.) at a glance.
This device will use accelerometer data to detect sharp taps to the left/right sides of the frame in order to manually cycle between multiple information sources which will be obtained from an internet connection via 802.11b/g.
MOTIVATION
Most modern technology (cell phone, computer, etc.) requires a user's interaction and full attention in order to convey information.
Once initially customized by the user, this prototype will automatically cycle between information streams with the option of manually switching streams by tapping the sides of the device.
COMPETITIVE ANALYSIS
-
Ambient
- 7-Day & 5-Day Weather Forecasters - $200 or $149, respectively
- Ambient Football SportsCast - $125
- Market Maven - $125
- Ambient Orb - $150
- Ambient Weather Beacon - $100
Ambient Devices currently markets a number of products designed to display information in a
nonintrusive manner requiring little user interaction after the initial configuration. The
majority of these devices can only display a single stream of information, (weather
forecast, sports scores, stock trends, traffic, etc.). Only the Ambient Orb and Ambient Weather Beacon
can be user configured to display an information stream from a limited number of
"information channels".
Although the basic (free) account covers major stock market indices and the weather forecast in major cities, a
subscription based premium account allows for monitoring of a customized stock portfolio and offers weather
forecasts for a larger set of cities.
Ambient devices depend on a pager network "that covers 90% of the US population" in order to display current information.
Source: Ambient Devices puts pager network to good use
Source: Ambient Devices Launches Wireless DataCasting Kit
![](images/ambient/15213coverage.gif)
Coverage of Pittsburgh, PA 15213
Summary:
- Not all areas have good signal coverage
- Different devices for different streams of information
- Capabilities: Weather, sports scores, stock trends
- Subscription required for customized information
- Oregon Scientific - Wireless weather monitoring station
- Single stream of information (weather)
- Sensor based
- Professional Weather Center (WMR200) - $419.99
- Complete Wireless Weather Station (WMR968) - $299.95
Summary:
- Only calculates local forecast
- Must install sensors
These devices are designed solely to forecast weather based on readings from remote sensors (anemometer, rain
gauge, thermometer, barometer, etc.). Higher end models allow for the integration of more sensors (up to 10
remote sensors for the WMR200 vs. up to 3 sensors for the WMR968). These monitoring stations are designed to
require little user interaction after the initial setup. Similar to the products made by Ambient Devices,
these monitoring stations are only able to display a single information feed (weather).
- “Feed” based
- WeatherNow with MSN Direct Service (WMS801) - $149.95
![](images/oregonscientific/WMS801_rg.jpg)
Summary:
- Based on FM radio
- Coverage limited to major cities
- Can take 24 hours to update in areas w/ weak signal
- Only calculates "local" forecast
This device is very similar to the Ambient Devices Weather Forecaster. It has no sensors of its own and pulls
weather information for the MSN Direct service network (FM radio). As such, it is also subject to similar
signal coverage issues. Furthermore, it is also only able to display a single information feed (weather).
TECHNICAL SPECIFICATIONS
Hardware:
![](images/back2.jpg)
Software:
- Custom software to parse websites and rss feeds
- Custom GUI to display information
- Custom software to analyze accelerometer data to detect sharp taps
Protocols:
REQUIREMENTS
Functional:
- Retrieve data from the internet via an 802.11b/g network connection
- Parse and display data on LCD screen
- Identify sharp taps to the left/right sides of the frame using accelerometer data
Timing:
- Update data every 10 min
- Retrieve data from internet in under 10 sec
- If data is available, parse and display on LCD screen in under 10 sec
Else, display error message + cached information from the last update
- Identify sharp taps and switch feeds in less than 1 sec
Reliability:
- Attempt to reestablish network connection upon failure
- Simple user interface (after initial configuration) with no physical buttons
- Small movements must not cycle the data being displayed
ARCHITECTURE
USE CASES (INTERACTION DIAGRAMS)
Startup:
Shutdown:
Normal:
Loss of Connection:
SYSTEM STATES & TRANSITIONS
RISKS & MITIGATION STRATEGIES
ERROR HANDLING
- Nibo checks for a wireless network connection every 3 minutes. If there is no connection
detected, Nibo will display an appropriate message and attempt to reconnect.
- The RSS feed list gets fetched every 3 minutes. If the fetch fails, "Unable to fetch [Feed Name]"
is displayed
- Disables browser so user cannot browse to any link displayed by a RSS feed
- To prevent any automated action from overriding a user's actions, Nibo Waits 15
seconds after user input before doing anything else (Fetching feeds, updating display, etc.)
IMPLEMENTATION DETAILS
- Received parts last week
- All components power on
- Experimenting with precompiled images
- Building image specifically catered for our needs
- LCD display is working
![](images/itworks.jpg)
![](images/itworks2.jpg)
![](images/frontback.jpg)
TEST CASES
- Bootup
- Why: Device must initialize correctly in order to function properly.
- How: Power on using adapter, check if previous settings are restored, check network connectivity, check LCD display, check accelerometer
- Fault Free
- Bootup and unplug device while booting up.
- Why: Device must not corrupt initialization sequence, must retain previous settings on hard shutdown
- How: Power on and unplug power at multiple points of bootup. Then reapply power and see if the device initializes correctly
- Failure-Injected
- Shutdown
- Why: Device must shutdown gracefully and store all settings
- How: Issue shutdown command via script/command line
- Fault-free
- Hard Shutdown
- Why: Device must not corrupt saved settings on the event of hard shutdown.
- How: Unplug the device during normal operations
- Failure-Injected
- Wireless /Ethernet (bandwidth/latency)
- Why: Internet connectivity is necessary to retrieve RSS feeds and possibly for configuration if we implement a configuration process via the web
- How: Check signal strength, download multiple file sizes multiple times to determine bandwidth, ping google.com to determine latency
- Fault-free
- Loss of Network Connection
- Why: Internet connectivity is necessary to retrieve RSS feeds and possibly for configuration if we implement a configuration process via the web. Must reestablish network connection if itfs lost. Possibly display cached copy of information.
- How: Unplug wi-fi antenna or Ethernet cable.
- Failure-injected
- Display text
- Why: Need to display text on LCD to convey RSS feed information
- How: Hello world test
- Fault-free
- Display Graphics
- Why: Nicer GUI, a picture is worth a thousand words, more user friendly
- How: Experiment with qtopia and directfb
- Fault-free
- Retrieve RSS feed
- Why: Need to read information and output to user
- How: Download a feed from the web via script. Download copy of feed via web browser. Compare the differences.
- Fault-Free
- Parse RSS feed
- Why: All information contained in RSS feed does not need to be displayed on LCD
- How: See if our parser is able to pull title and description off RSS feed
- Fault-Free
- Accelerometer interface with gumstix
- Why: Need accelerometer to switch between feeds. Need accelerometer data to do so
- How: Read accelerometer data over spi
- Fault-free
- Interpreting Accelerometer data
- Why: Need accelerometer data to switch between feeds.
- How: Tap the accelerometer and switch between texts. Apply different forces to accelerometer. Upon interrupt see if LCD is able to display a different text
- Fault-free
EXPERIMENTAL EVALUATION
![](images/charts.png)
Note: Due to our customized kernel, the gui automatically starts and bypasses the login prompt.
The average time elasped from the login prompt to retrieving a RSS feed is 9.8 seconds with a standard deviation of .9 seconds over 10 trials
LESSONS LEARNED
- Have backup hardware
- Be VERY careful when handling hardware
- Make smaller partitions on the microSD cards so it doesn't burn out the entire card
- Threshold settings can only be set to one value on all axes of the accelerometer. 2 accelerometers: One for x-axis, one for y-axis would
have made the sensitivity of the taps more accurate.
- Wireless is finicky
- Version control is very useful
- It NEVER works the first time
FUN STUFF
REFERENCES
- Project Proposal and Requirements, Team Project Presentation, February 1, 2008
- Design & Architecture, Team Project Presentation, February 15, 2008
- Mid-semester Project Status, Team Project Presentation, March 5, 2008
- Test Plan & Experimental Validation Team Project Presentation, March 28, 2007
- Final Project Presentation, Team Project Presentation, April 30, 2008
- Project Poster, May 2, 2007
- Project Video, May 2, 2007
Back to the top of this page
18-549 course home page