SuiteTV: IPTV Solution for Sports Stadium Suites ECE4007 Senior Design Final Project Report Section L01, VIP Team Project Advisors: Dr. David Keezer & Dr. Randal Abler Alyssa Freeman Mohamed Himedan Richard Reece Peter VanNess Submitted May 5, 2011 Table of Contents Executive Summary ii Introduction 1 1. 1. 2. Objective Motivation 1 2 2. Project Description and Goals 2 3. Technical Specification 3 Quantitative Specifications Qualitative Specifications 3 4 Design Approach and Details 4 1. 2. 4. 1. 2. 3. Design Approach Codes and Standards Constraints, Alternatives, and Tradeoffs 4 13 14 5. Schedule, Tasks, and Milestones 15 6. Results and Acceptance Testing 16 7. Marketing, Budget, and Cost Analysis 17 Marketing Analysis Budget and Cost Analysis 17 18 8. Conclusions and Future Work 20 9. References 22 1. 2. Appendix A Appendix B Appendix C Appendix D Appendix E Appendix F Appendix G Appendix H 23 24 25 29 30 31 32 33 i Executive Summary Georgia Tech Athletics Association has tasked the Vertically Integrated Projects (VIP) eStadium team to design and prototype an Internet TV set-top box known as SuiteTV as a part of the Suite of the Future. Currently, the suites have aging CRT TVs that are only capable of standarddefinition video. SuiteTV equips the suites with state-of-the-art technology that provides an experience comparable to new stadiums. SuiteTV displays an interactive menu that includes options to view a live video feed, the eStadium web page, the Ramblin’ Wreck Store web page, and a weather application. A wireless Wii remote and an LED emitter bar provide a simple interface to the menu. SuiteTV supports multicast streaming for the live video feed. Currently no existing consumer products provide the features that SuiteTV delivers. The hardware of SuiteTV is a custom-built PC with an Asus AT5IONT-I motherboad, 2GB Kingston RAM and 30GB SSD drive. The software is a Fedora x64 operating system. XBMC media center serves as both an on-screen menu and manager for the multimedia content. All project goals were met by the VIP senior design group. SuiteTV met technical specifications, namely supporting HD video and multicast streaming, and temperature endurance requirements. The customer requirements of having a silent, minimal maintenance device were met by using hardware with no moving parts. Cost requirements were met; SuiteTV costs $401.29 in hardware per unit. The following cost projections for a production run are based on an estimate of installing 50 SuiteTVs in a stadium at a rate of one stadium per year. The hardware cost is $401.29 per unit. The total cost for the production run is $124,319.58, which yields a net profit of $50,680.42 for a sales price of $700. The per unit profits are $202.72 or 28.96%. ii SuiteTV: IPTV Solution for Sports Stadium Suites 1 Introduction Georgia Tech Athletics Association tasked the Vertically Integrated Projects (VIP) eStadium team to design and prototype an Internet Protocol TV set-top box known as SuiteTV as part of the Suite of the Future. The SuiteTV senior design team took a total of 510 hours to design, test, and build the SuiteTV prototype at a cost of $24,407.86. 1.1 Objective eStadium is a student driven academic research program that develops new technologies for sports stadiums. Currently, eStadium provides a mobile application that offers instant replays, a drive tracker, live stats, and other content on game day. SuiteTV is part of an eStadium initiative known as Suite of the Future that aims to upgrade the suites of Georgia Tech Athletics’ sporting facilities. The goal of SuiteTV is to bring multimedia content, including the JumboTron feed and the eStadium website, to a high-definition TV located in a suite. Figure 1. SuiteTV and existing eStadium architecture. 1 1.2 Motivation Georgia Tech Athletics asked the VIP eStadium team to develop a prototype that implements cutting edge media technology into the suites at Bobby Dodd Stadium. Currently, the suites only have aging CRT TVs capable of standard-definition video. The Suite of the Future team aimed to deliver an interactive experience for suite attendees, providing live game video and web content for instant replays and other applications. SuiteTV brings this experience to Bobby Dodd, the oldest Division I football stadium, making it competitive with newer stadiums. 2 Project Description and Goals SuiteTV is a set-top box with integrated Internet capability that is designed specifically to deliver sports content to luxury suites. It has an interactive menu that includes options to display a live video feed and the eStadium web page. A wireless remote control provides a simple interface to the menu. All the design goals of the SuiteTV set-top box were met and are listed below: ● Intuitive graphical user interface (GUI) ● Simple wireless controls ● Ability to display live HD video stream ● Support multicast streaming ● Runs on a Linux-based platform ● Low noise/maintenance-free (fan-less) ● Able to operate in extreme summer heat (3.5 hours at 90°F) ● Costs less than $500 to produce 2 3 Technical Specifications 3.1 Quantitative Specifications Table 1. Quantitative Specifications Specification Target Actual Sustainability Uninterrupted Operation at 90 °F 3.5 hours continuous run-time > 3.5 hours Hardware Motherboard Cooling Fan-less Fan-less Networking 1 Gbps Ethernet 1 Gbps Ethernet Output HDMI HDMI Dedicated Memory Minimum of 128 MB 512 MB 2GB DDR3 2 GB Type Solid-state Solid-state Capacity 16 - 64 GB 30 GB Interface SATA SATA Power Supply 90 - 120 W 102 W Case Maximum 30.5 cm x 30.5 cm x 15.25 cm 19.2 cm x 21 cm x 6.2 cm User Interface Device Wireless Remote Control Wii Remote Control Weight < 15 lbs 4 lbs Linux- based Fedora x64 Video RAM Hard drive Software Operating System 3 Performance 3.2 Resolution 1080p (1920 x 1080 pixels) 1080p (1920 x 1080 pixels) Frame Rate 30 frames per second Met Qualitative Specifications The following qualitative specifications were evaluated on a boolean scale, either they met the proposed specification or they did not. Table 2. Qualitative Specifications Specification Proposed Actual Menu system usability Intuitive Met Video playback Smooth Met Case ventilation Well ventilated Met 4 Design Approach and Details 4.1 Design Details The specific software installation instructions for installing all software, can be found in Appendix D. Hardware Selection Process The team investigated hardware options to meet the specific requirements of SuiteTV. The motherboard requirements include the following: ● Capable of decoding and displaying 1080p video ● Fan-less design ● 1 Gbps Ethernet 4 ● Cost less than $500 The team researched the hardware requirements needed to decode 1080p video, but discovered that 1080p is a description of the abilities of a display, not the capabilities of the device rendering the video. Given this, the team needed to determine the minimum hardware requirements needed for 1080p playback to adhere to the fan-less, low power design constraint. The team performed testing on a variety of computing platforms to get a baseline for processing power required to decode a 1080p video compressed with the H.264 video codec. For preliminary testing, the team tested HD video playback on available hardware platforms including: an Advantech PCM-9371 single-board-computer, a 2009 ASUS EEE PC netbook, a 2008 ASUS GV50VT gaming laptop, and a 2008 Apple MacBook (MB467xx/A). The Advantech and ASUS netbook were not even powerful enough to display 720p video. The other two platforms could play the 1080p video without problems. The SuiteTV needed to have a low power, low heat processor to reduce the power consumption so that a fan-less design was possible. A low power CPU alone cannot handle 1080p video decoding. A GPU with video decoding capabilities is needed to decode the video allowing the system to have a low power CPU. To keep in line with the team’s goal of having SuiteTV run free, open source software, an NVIDIA GPU was required as they provide Linux drivers. For further testing, the team took a bootable flash drive with Fedora to Fry’s Electronics and performed tests on multiple other platforms as seen in Table 3. 5 Table 3. Features of tested hardware platforms. Features Dell Inspiron Mini 10 HP Mini 110 Lenovo Q150 ASUS EeeBox PC EB1012B Processor Intel Atom N450 Intel Atom N455 Intel Atom D510 Intel Atom D510 GPU Intel NM10 Intel GMA 3150 NVIDIA ION NVIDIA ION 2 Connections VGA VGA HDMI, VGA HDMI, VGA NIC 10/100 Mbps 10/100 Mbps 10/100 Mbps 10/100/1000 Mbps The team decided to go with an ASUS AT5IONT-I motherboard because it has a fan-less design, Gigabit Ethernet, the latest low power NVIDIA GPU, and a low power Intel Atom D525 processor. Hardware The hardware of SuiteTV is a custom-built PC. The motherboard is a standard Mini-ITX ASUS AT5IONT-I with an integrated Intel Atom D525 processor and NVIDIA Next Generation ION graphics processor [3]. The motherboard uses 2 GB of compatible DDR3 RAM and a 30 GB internal solid-state hard drive. A 102W power supply was used for the original SuiteTV build. This was kfound to have greater power than the SuiteTV required. Since then, the team has decided that a 60W supply is sufficient for future builds. Since the motherboard doesn’t have a built-in Bluetooth reciever, an external one must be used to communicate with the Wii remote. The IOGEAR GBU421W6 USB Bluetooth dongle was selected for its known Linux support and small size. The Bluetooth receiver and sensor bar connect to the motherboard via USB as seen in Figure 2. 6 Figure 2. Diagram of hardware component layout. As shown in Figure 3, the set-top box takes three inputs: a USB Bluetooth receiver, 102W power supply, and USB connection to IR emitter. The set-top box uses an HDMI cord to output to an HDTV. Figure 3. Cabling and placement diagram. 7 Software Selection Process If SuiteTV is deployed in Bobby Dodd, each HDTV in each of the approximately 70 suites would need its own SuiteTV. Given the fact that a Windows operating system license cost approximately $150, a stadium wide deployment of SuiteTV at Bobby Dodd stadium using Windows would result in an additional cost of 70 x $150 = $10,500. To eliminate software licensing fees, the team investigated free, open source operating systems. SuiteTV also needed to be compatible with the eStadium server, which runs on a Linux operating system. For these reasons, the team narrowed the options down to Ubuntu and Fedora, and ultimately decided to use Fedora x64 because it was the team’s technical advisor's preference. In order to completely eliminate any licensing fees, the team researched open source media players for the SuiteTV GUI. The team narrowed the search down to two media players: MythTV and XBMC. SuiteTV required a GUI with the ability to play HD video, call a web browser, stream multicast video, and have customizable themes. Table 4 compares the main features of XBMC and MythTV. Table 4. XBMC vs. MythTV GUI Comparison SuiteTV Requirement XBMC MythTV Smooth HD video playback ✔ ✗ Embedded Web Browser ✗ ✔ Multicast Streaming ✗ ✔ Customizable Theme ✔ ✔ Although MythTV met three of the four SuiteTV GUI requirements, the most critical, smooth HD video playback, was not met. As a result, XBMC was chosen as the SuiteTV GUI. Software 8 SuiteTV runs on a Fedora x64 operating system. XBMC serves as both an on-screen menu system and multimedia manager. The theme was customized to include four options: JumboTron, eStadium, Store, and Weather. The JumboTron option plays out a live streaming video feed, meant to imitate the JumboTron video feed. The eStadium and Store options access the following websites respectively, estadium.gatech.edu and ramblinwreckstore.com. Screenshots of the SuiteTV menu and different menu options is shown in Figure 4. Figure 4. SuiteTV GUI Screenshots. XBMC supports http streaming, but does not inherently support multicast streaming. In order for the JumboTron feed to be streamed through XBMC, a multicast streaming solution was needed. One solution was to convert the incoming multicast video stream into an HTTP video stream that can be played by XBMC. The team discovered that Video Lan Client (VLC), a free, open source multimedia player that has the ability to receive and re-stream video over various protocols. VLC was used as a relay to receive a multicast video stream and rebroadcast it as an HTTP stream to XBMC as shown in Figure 5. 9 Figure 5. Multicast solution: VLC relay to XBMC. The eStadium application is web based and therefore requires a web browser to be accessed. Since XBMC does not have an embedded web browser, a python script was written to launch an external web browser. When the python script executes, XBMC minimizes and an external web browser is launched to the specified home page. This solution was used for both the eStadium and Store menu options. An embedded weather application is included in the standard installation of XBMC. The SuiteTV team decided to keep this application accessible from the SuiteTV menu as it adds functionality for free. Remote Control Selection Process The team explored two technologies for the SuiteTV remote control: Infrared (IR) and Bluetooth. IR remotes have the ability to control multiple devices at once, which is undesirable in the suites. The team tested an IR remote in the suites of Bobby Dodd and discovered that one remote could control multiple TVs, even TVs in adjacent suites that are separated by glass walls. Bluetooth devices, including remotes, only communicate with one device once paired, eliminating the problem of multiple controllers, as seen in Figure 6. It was determined that Bluetooth was the better solution for the SuiteTV due to its pairing mechanism. 10 Figure 6. IR remote vs. Bluetooth remote functionality in football suites. Since the SuiteTV’s motherboard doesn’t have a built-in Bluetooth reciever, an external one must be used to communicate with the remote. The IOGEAR GBU421W6 USB Bluetooth dongle was selected for its small size and known Linux compatibility. Another concern of the remote is its simplicity. A user must be able to use the remote without instruction. This requires the remote to have an intuitive mapping to the GUI with few buttons. The team compared three universal remote controls: the Universal Electronics NevoSL, the Pronto NG Home Theater Control Panel, and the Logitech Harmony 890. While these offered the Bluetooth functionality needed, they did not provide the desired simplicity. The first two have touch screens, which eliminates the problem of having too many buttons, but adds a new concern of power consumption. The last one was deemed too complex for SuiteTV as it had too many buttons. Evaluating the first two, the team determined neither was a good option for SuiteTV as their costs exceeded the alotted $100. The Wii remote has been used in home theater applications because of its ease of customization and use of both IR and Bluetooth technologies to provide intuitive control over devices. The team explored the intellectual property implications of using the Wii remote with SuiteTV, and after 11 consulting with an expert faculty member, decided it was acceptable to use without infringing on any intellectual property. Remote Control The Wii remote was chosen as SuiteTV’s remote control for its built in bluetooth functionality, its simplicity, and cost. The Wii remote has only 11 buttons, which can be mapped to keyboard and mouse keys. This simplicity allows a first-time user to use SuiteTV without any instruction. The Wii remote will communicate these keystrokes to SuiteTV via Bluetooth and give mouse functionality through its IR receiver. The Wii remote and dongle have a combined cost of $40, which meets the team’s $100 limit. IR Emitter The team planned to use just the Wii remote’s built-in accelerometer for navigating the browser, but discovered that the motions required for controlling using these movements were not intuitive. Scrolling up and down required a tilting motion and scrolling right and left required a rolling motion. For this reason, the team explored the function of the Wii Sensor Bar in Nintendo’s gaming system. This device is actually an IR emitter, with ten IR LEDs, five on each side. The Wii remote has an IR reciever that maps movements in the X-Y plane by comparing the location of the Wii remote to the two IR sources on the Sensor bar. The Wii Sensor bar connects to the Nintendo Wii via a proprietary connection, which cannot be replicated on the SuiteTV. For this reason, the team decided to build its own IR emitter. The IR emitter used for the SuiteTV currently has four LEDs, two on each side. This emitter is a simple circuit of two LEDs in series with a resistor, as seen in Figure 7. This circuit receives power from a USB port on the SuiteTV. 12 Figure 7. Circuit Schematic of one side of the IR emitter bar In order to supply power to the LEDs, 5V power was taken from a USB connection to the SuiteTV. The following wire diagram was used to determine the correct wires to solder to the board. Figure 8. USB wiring diagram. 4.2 Codes and Standards SuiteTV uses standard Gigabit Ethernet based networking to receive a video stream and access web content. Gigabit Ethernet is a well-known standard that is used by most new computers for LAN communications. Gigabit Ethernet is formally defined by IEEE 802.3ab [4]. To get audio and video to a TV, SuiteTV will use an HDMI output. HDMI is currently the industry standard means of connecting media deices to TVs [5]. The Nintendo Wii Remote uses Bluetooth as a communication protocol. Bluetooth is defined by IEEE 802.15.1 [6]. 13 4.3 Constraints, Alternatives, and Tradeoffs Constraints The main design criteria given to the VIP senior design team by Georgia Tech Athletics include: ● Minimal maintenance: no moving parts ● Device fits behind a flat-screen HDTV ● Capable of continuous operation in summer heat (maximum temperature of 90 °F) ● Capable of displaying 1080p video at 30 frames per second ● Capable of receiving a high-definition video stream Alternatives Apple TV and Google TV were considered as alternatives for the hardware of SuiteTV. These options would require modifications to the existing software products to meet SuiteTV’s design requirements. It was determined that modifying the existing systems was not a viable option due to legal concerns. Additionally, AppleTV does not support SuiteTV’s 1080p video playback specification. The remaining options were to either build a small computer on a component-bycomponent basis or purchase a pre-built computer. Currently, there are no pre-built computers on the consumer market that meet all of the design specifications of SuiteTV. For this reason the VIP team chose to build a custom computer component-by-component to meet all the design specifications. The way a user interfaces with SuiteTV needs to be simple and intuitive. A first-time user must be able to operate the system without instruction. Since SuiteTV is a computer based device, an obvious choice would be to use a keyboard and mouse. This option was avoided because it is overly 14 complex. It was determined that a simple wireless remote control is sufficient to navigate SuiteTV’s menu. Tradeoffs ● Power consumption vs. capable performance ● Fan-less design vs. alternative cooling ● Unicast vs. multicast There are two main ways in which IPTV streams data to consumers: multicast and unicast. Unicast streaming involves a one-to-one connection between client and server. The main drawback of unicast streaming is each client that connects to the server requires additional bandwidth [1]. Multicast streaming is a broadcast-based alternative in which there is no explicit connection between the clients and server. The server transmits only one stream which is then replicated by multicast-enabled routers throughout the network. Multicasting reduces network congestion because it uses a fixed amount of bandwidth regardless of the number of client connections. This reduced bandwidth can only be achieved on a network where all components support multicasting, which is not the case over the Internet [2]. For this reason, multicasting is ideal for streaming video feeds, such as the JumboTron, on a LAN to multiple clients in the suites of Bobby Dodd Stadium. 5 Schedule, Tasks, and Milestones Table 5 shows the major tasks in bold and milestones in italics. 15 Table 5. Major Tasks and Milestones 6 Task Name Duration End Date Proposal 8 days 2/21/11 Proposal Due 0 days 2/21/11 Hardware 11.5 days 2/28/11 Hardware Assembled & Working 0 days 2/28/11 Software 46 days 4/17/11 Install Fedora 1 day 2/28/11 Configure Fedora 43 days 4/17/11 Software Installed & Configured 0 days 4/17/11 Remote Control 38 days 4/14/11 Remote Control Operational 0 days 4/14/11 Configure Stream Server 1 day 4/14/11 Testing/Bug Fixing 12 days 4/25/11 Implementation Success 0 days 4/18/11 Demonstration Preparation 11 days 4/27/11 Demonstration 0 days 4/27/11 Final Presentation 0 days 4/27/11 Results and Acceptance Testing The final demonstration of SuiteTV occurred on April 27th, 2011 in the VIP Arbutus Lab (Van Leer 465). Dr. Randy Abler & Dr. Edward Coyle of VIP, Dr. David Keezer of ECE, and Kyle Shields & Dan Goldberg of the Georgia Tech Athletics Association (GTAA) were present for the final demonstration. SuiteTV was connected to an LG HDTV via an HDMI cable and the Internet via a CAT-5 network cable. The functionality of SuiteTV was verified by the following test procedure: 16 1. SuiteTV was powered on and a Fedora x64 operating system was displayed on the HDTV 2. The XBMC application was launched, and the SuiteTV menu was displayed 3. The menu was traversed through using a Wiimote 4. The remote was handed off to a first-time user to gauge intuitiveness, and the user was able to navigate SuiteTV without instruction 5. For each of the menu options the following occurred: a. When the JumboTron option was selected, SuiteTV displayed a live HD (720p) video feed b. When the eStadium option was selected, XBMC was minimized and an external web browser was opened to the eStadium website (estadium.gatech.edu) i.Upon calling the web browser the wiimote’s mouse functionality was enabled ii.Upon closing of the web browser the wiimote’s mouse funcationality was disabled c. When the Store option was selected, SuiteTV XBMC was minimized and an external web browser was opened to the Ramblin Wreck Store website (ramblinwreckstore.com) i.Upon calling the web browser the wiimote’s mouse functionality was enabled ii.Upon closing of the web browser the wiimote’s mouse funcationality was disabled d. When the Weather option was selected, SuiteTV launched an internal XBMC weather application 7 Marketing, Budget, and Cost Analysis 7.1 Marketing Analysis Marketing SuiteTV is a product prototype that can be combined with any high-definition TV or monitor to provide enhanced content to the users. The target market for this product is collegiate and professional 17 sports stadiums. SuiteTV is currently customized for Georgia Institute of Technology’s Bobby Dodd Stadium and will be used to display the JumboTron feed, eStadium website, Ramblin Wreck Store website, and weather. In the future, SuiteTV can be used to display other web content such as stock market feeds and news feeds. Similar Products Currently no existing consumer products provide the streaming video, web access, and wireless interface that SuiteTV aims to deliver. Table 6 shows some products that are currently on the market that are similar to SuiteTV. Table 6. Similar Consumer Products Product Name Apple TV [7] Roku XDS [8] Logitech Revue with Google TV [9] No No Yes Wireless Remote Wireless Remote Wireless Keyboard and Trackpad $99.99 $99.99 $299.99 720p 1080p 1080p Networking 10/100 Base-T, 802.11a/b/g/n 10/100 Base-T, 802.11a/b/g/n 10/100 Base-T, 802.11b/g/n Size 3.9” x 3.9” x .9” 4.9” x 4.9” x 1.2” 9.7” x 6.7” x 1.4” .6 lbs .5 lbs 1.3 lbs Integrated Web Browser Human Interface Price Maximum Resolution Weight 7.2 Budget and Cost Analysis Prototype Cost of Development Table 7 below summarizes the cost of development for the SuiteTV. It is assumed that development will require a qualified engineer making $30 per hour. A breakdown of the hardware cost can be found in Appendix B. 18 Table 7. Development Cost Breakdown Project Component Labor Hours Labor Cost Equipment Cost Total Component Costs Hardware Assembly 10 $300.00 $326.39 $662.30 Operating System Installation 20 $600.00 $600.00 Operating System Configuration 70 $2,100.00 $2,100.00 Install GUI 40 $1,200.00 $1,200.00 Configure GUI 110 $3,300.00 $3,300.00 Integrate Remote 70 $2,100.00 $38.99 $2,138.99 Demonstration Preparations 40 $1,200.00 $1,200.00 Weekly Meeting with Advisor 30 $900.00 $900.00 Lecture 120 $3,600.00 $3,600.00 TOTAL LABOR 510 $15,300.00 TOTAL PART COST ($) $401.29 Fringe Benefits $3,825.00 Overhead $4,881.57 PROJECT TOTAL $24,407.86 Production Cost Projection The following cost projections are based on an estimate of installing 50 SuiteTVs in a stadium at a rate of one stadium per year. Given this, a total of 250 SuiteTVs will need to be made for this production run. It is typical for hardware manufacturers to offer bulk discounts on hardware they produce. An expected 25 percent discount per unit would yield a projected hardware cost of roughly $300 per unit. Hardware assembly should only require minimal skill as there are few components to put together, none of which require any special training to install. The team estimates that five SuiteTVs can be assembled per hour. Software installation should be a relatively automated process of copying an install image to the SuiteTV’s hard drive. It should be possible to do the hard drive imaging in parallel with the hardware assembly by the same person that is assembling the hardware so there is effectively no additional cost. Table 8 shows the production run cost break down 19 Table 8. Production Run Costs Production Run Components Component Cost Development Cost $24,407.86 Hardware Cost $75,241.88 Labor Cost $3,750.00 Fringe Benefits $937.50 Overhead $19,982.34 TOTAL $124,319.58 The total cost for the production run is $124,319.58 which yields a net profit of $50,680.42 for a sales price of $700. Dividing the net profit by the number of units produced results in a per unit profit of $202.72 or 28.96 percent. 8 Conclusions and Future Work A SuiteTV prototype has been developed which satisfies the aforementioned design constraints. The Suite of the Future project and SuiteTV prototype have been presented to the Georgia Tech Athletics Association for approval. Currently, the team is preparing for potential in-suite trial deployment within a year. SuiteTV future work should mainly focus on tailoring the SuiteTV software, namely XBMC, to the features requested by Georgia Tech Athletics Association. Two outstanding issues which are required to enhance the user experience per expectations are: ● Develop native support for multicast streaming in XBMC ○ Remove VLC relay between multicast stream and XBMC ● Develop a web browser embedded within XBMC ○ Eliminate need to minimize XBMC and launch external web browser As home theater PCs become more popular and as the technology advances the availability of SuiteTV- compatible hardware will increase. Eventually, with this in mind, it will be feasible to replace custom hardware solutions with pre-built solutions for increased ease of implementation. In 20 addition, hardware developed for the IR emitter bar should, in the future, be developed more fully to include a housing for the hardware and a more aesthetic design. Currently, the prototype hardware is ready to be deployed. The prototype software (XBMC configuration/modifications) is not yet ready to be deployed and should go through a more rigorous and thorough development. The GUI can be further customized by tailoring the options to the customer’s needs. 21 9 References [1] Microsoft Support. (2005, Nov. 5). Differences Between Multicast and Unicast [Online]. Available: http://support.microsoft.com/kb/291786 [2] Networkguruz. (2008, May 31). What is unicast, broadcast and multicast? [Online]. Available: http://www.networkguruz.com/networking-basics/what-is-unicast-broadcast-and-multicast/ [3] ASUSTek Computer, Inc. (2010, July) AT5ION-I Motherboard Manual [Online]. Available: http://dlcdnet.asus.com/pub/ASUS/mb/Intel_CPU_Onboard/AT5IONT-I/E5277_AT5IONI_Series.pdf [4] IEEE 802.3 Ethernet Working Group, IEEE 802.3, 2011. [5] HDMI Licensing, LLC. HDMI Licensing Knowledge Base [Online]. Available: http://www.hdmi.org/learningcenter/kb.aspx [6] IEEE Standard for Local and Metroplitan Area Networks, IEEEStd 802.15.1™, 2002. [7] Apple, Inc. (2011, February) Apple TV Technical Specifications. [Online]. Available: http://www.apple.com/appletv/specs.html [8] Roku, Inc., Roku Player Products, 2011. [Online]. Available: http://www.roku.com/rokuproducts#2 [9] Logitech International S.A. (February, 2011) Logitech Revue with Google TV. [Online]. Available: http://www.logitech.com/en-us/smartTV/revue 22 Appendix A Figure A1. Updated Gantt chart to reflect actual project milestones and completion dates. 23 Appendix B Table B1. Hardware Cost Breakdown Hardware Costs Component Motherboard Ram Case & Power Supply Solid-State Hard Drive Model ASUS AT5IONT-I Kingston KVR1066D3S7/2G Mini-box M350 Case & picoPSU-80 & 60W Adapter Power Kit Unit Price $ 179.99 $ 22.99 Quantity Price 1 $ 179.99 1 $ 22.99 $ 69.00 1 $ 69.00 Kingston SNV125-S2/30GB $ 75.99 1 $ 75.99 Bluetooth Receiver IPGEAR GBU421 Bluetooth Micro Adaptar $ 12.59 1 $ 12.59 Wireless Bluetooth Remote Nintendo Wii Remote Plus Black $ 38.99 1 $ 38.99 IR Emitter Bar 2 x 75Ohm Resistors + 4 x IR LEDs + USB Cable $ 1 $ Total 1.74 1.74 $ 401.29 24 Appendix C - SuiteTV Software Installation Instructions NOTE: These instructions were written for a member of the VIP eStadium team but all files mentioned can be found on the Senior Design Team’s website. 1. Obtain live CD image of Fedora-14 x64 <http://fedoraproject.org/en/get-fedora-options> 2. Configure bios to boot CD-ROM a. Before loading live CD, configure bios to load CD-ROM b. If USB flash drive is desired, this can be done see online examples 3. Boot computer 4. Click Install to Hard Drive (on desktop) a. next (to begin) b. next (accepting English as the language) c. leave the basic storage devices radio button selected and click next. If the hard disk is new you may be prompted to initialize it (Click Re-Initialize All). d. enter “SuiteTVXXX” for the hostname where XXX is a unique number e. Accept the default time zone of New York and uncheck the “System clock uses UTC” checkbox f. enter a secure root password for the purposes of the demo box “vipteam” was chosen as the root password g. leave the default radio button of “use all space” selected and click next and leave the checkboxes unchecked. (if there was a previous OS install the default option may be something other than Use All space). Click next. If prompted select “write changes to disk” to wire agree to partitioning the hard drive h. Click close to exit the install wizard i. Eject the cd and restart the computer 5. The computer should boot to a welcome screen that finishes the installation process a. press “forward” to get past the welcome screen b. press “forward” to agree to the license c. choose a USERNAME (for the purposes of the demo box “vipteam” was chosen as the USERNAME). Set the Full Name to “SuiteTV”. select a password (or the purposes of the demo box “vipteam” was chosen as the password). click “forward” to continue. if prompted agree “yes” to a weak password. d. set the time and date and click “forward” e. leave the default radio button of “do not send” for the hardware profile and click “finish”. If a dialog pops up say “No, do not send.” 6. You should now be at the login prompt a. login using the password that was chosen for your USERNAME 7. The first order of business is to disable SELinux a. open a terminal [Applications->System Tools->Terminal] (this launcher can be dragged to system panel for quicker access). b. enter su -c ‘vi /etc/selinux/config’ to edit the SELinux configuration c. find the line that says SELINUX=enforcing and change it to SELINUX=disabled d. reboot the computer 25 At this point Internet connectivity is assumed to exist. 1. The system boot menu GRUB now needs to be configured so Fedora can be booted without xWindows so that the NVIDIA graphics driver can be installed. a. open a terminal [Applications->System Tools->Terminal] b. enter su -c ‘vi /boot/grub/grub.conf’ to edit the GRUB boot menu configuration file (you will be prompted for the root password when this command is executed) i.change the line that says “timeout=0” to “timeout=10” to allow time to edit boot commands when the system starts ii.comment out the line “hiddenmenu” by adding a “#” to the beginning of the line iii.add “nomodeset” to the end of the kernel line, save the document and reboot iv.upon reboot you should be prompted with the GRUB boot menu, press “a” modify the kernel arguments and add space and “3” to the end of the line and press enter to start the boot process v.enter the USERNAME and password vi.enter su -c 'yum install gcc make wget kernel-devel-2.6.35.6-45.fc14.x86_64'. this command assumes that you are running kernel version 2.6.35.6-45. this can be verified by running uname -r to see the running kernel version. vii.to download the NVIDIA driver, run “wget http://us.download.nvidia.com/XFree86/Linuxx86_64/XXX.YY.ZZ/NVIDIA-Linux-x86_64-XXX.YY.ZZ.run”, where XXX.YY.ZZ is the version of the NVIDIA driver that is desired (at this time most recent version is 270.41.06). viii.to install the driver run “su -c 'sh NVIDIA-Linux-x86_64-260.19.21.run’” 1. Accept the license 2. Answer yes to install the 32-bit OpenGL libraries 3. select “yes” to run the nvidia-xconfig utility, and select “ok” ix.enter “reboot” to reboot the computer x.audio doesn’t work automatically under Fedoar 1. add the following to the file /etc/modprobe.d/sound.conf options snd-hda- intel enable_msi=0 probe_mask=0xffff,0xfff2 2. reboot 3. System -> Preferences -> Sound, Output tab, select the HDMI option At this point the NVIDIA driver should be installed on the system and audio should work 1. To install XBMC the free RPM fusion sources must be added to Fedora’s Source list a. temporarily switch to root (enter “su” and the root password) b. as root, run ‘rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-releasestable.noarch.rpm’, and ‘rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusionnonfree-release-stable.noarch.rpm’ c. still as root, enter “yum install xbmc”. if prompted enter yes to accept the key of the source, and then type exit to leave root 26 At this point XBMC should be installed on the system 1. To install VLC for the VLC relay type type “su -c ‘yum install vlc’” At this point VLC should be installed 1. To install the wiimote drivers type “su -c ‘yum install cwiid-wminput’ a. configure the ir_ptr file to work with SuiteTV i.copy the ir_ptr file from SVN to /etc/cwiid/wminput/ . Make sure the file permissions are correct. b. to make the wiimote daemon start on boot automatically a boot-up script must be installed i.from SVN copy the “wiimote” file to /etc/init.d/ . Make sure that you do this as root so that the file permissions are correct. also make sure the scipt is executable ii.in /etc/rc5.d/ make a link to the wiimote. this will call the wiimote script when the SuiteTV is powered on. 1. cd /etc/rc5.d/ 2. su -c ‘ln -s ../init.d/wiimote S90wiimote’ At this point the wiimote should be configured to operate on boot-up 1. To have XBMC and VLC start automatically they must be added to a list of Startup Applications a. On the system menu bar click “System -> Preferences -> Startup Applications” b. for VLC i.click the add button ii.in the Name field type VLC Relay iii.add the following to the command field /usr/bin/vlc udp://@224.0.0.1:54321 --sout ’#standard{mux=ps,dst=,access=http}’ & iv./usr/bin/vlc udp://@224.0.0.1:54321 --sout'#standard{mux=ps,dst=,access=http}' & v.add “VLC Relay for SuiteTV” to the comment field vi.click save c. for XBMC i.click add button ii.in the Name filed type XBMC iii.in the command field type /usr/bin/xbmc iv.in the comment filed type Starts XBMC At this point XBMC should be configured to start the VLC relay and XBMC on login 1. XBMC now needs to be configured. a. the scrolling RSS feed can be configured. currently it is set to http://www.prism.gatech.edu/~rreece3/rss.xml. This feed url can be set by opening XBMC and clicking System -> Appearance -> Skin and then go to Edit under RSS news feeds. b. weather can be configured by clicking System -> Weather -> Change Area Code 27 c. the mouse should be disabled in XBMC to imporove the experience when using the Wiimote. System -> System -> Input Devices -> Enable Mouse d. copy all the png images from SVN to /usr/share/xmbc/addons/skin.confluence/backgrounds . These images are used to customize the XBMC interface to a Georgia Tech theme. e. to simplify this process simply copy the Home.xml file from SVN to the /usr/share/xbmc/addons/skin.confluence/720p/ directory. it may be a good idea to make a backup of the original Home.xml file. f. to launch a web browser from XBMC a python script must be execuited. First, make a directory called scripts under the home directory of the USERNAME that was used for SuiteTV enter “cd ~; mkdir Scripts” in a terminal. copy the browser.py script from SVN to the newly created /home/USERNAME/Scripts directory. Make sure that the script is executable “chmod +x browser.py”. If USERNAME != vipteam then the Home.xml file needs to be updated accordingly g. to setup the jumbotron feature copy the jumbotron.strm file to /home/USERNAME/Documents directory. If USERNAME != vipteam then the Home.xml file needs to be updated accordingly h. the firewall in fedora causes some problems with SuiteTV, for now just disable it System -> Administration -> Firewall. Enter the root password and click the disable button in the menu. At this point XBMC should be customized to have a Georgia Tech theme and all main features should work. 28 Appendix D - streaming/jumbotron.strm http://127.0.0.1:8080/ 29 Appendix E - wiimote/ir_ptr #ir_ptr configuration file #include buttons Wiimote.A = KEY_ENTER Wiimote.B = BTN_LEFT Wiimote.Home = KEY_ESC Plugin.ir_ptr.X = ABS_X Plugin.ir_ptr.Y = ABS_Y #Plugin.led.Battery = 1 Plugin.led.Led1 = 1 Wiimote.Up = KEY_UP Wiimote.Down = KEY_DOWN Wiimote.Left = KEY_LEFT Wiimote.Right = KEY_RIGHT 30 Appendix F - Scripts/wiimote #!/bin/bash # # Bash script to start, stop, and restart the Wiimote Daemon (wminput) # (c) 2011 Rich Reece <rich.reece@gatech.edu> # # Set the config file CONF="ir_ptr" # Set the MAC of your wiimote WIIMOTEMAC=00:1B:7A:00:F7:D9 # Add the WIIMOTEMAC system variable to the end of the commands to associate only # with a particular Wiimote case "$1" in 'start') echo "Starting Wiimote Daemon" /usr/bin/wminput -c $CONF -d & ;; 'stop') echo "Stopping Wiimote Daemon" killall wminput ;; 'restart') echo "Restarting Wiimote Daemon" killall wminput sleep 1 /usr/bin/wminput -c $CONF -d & ;; *) echo "usage $0 start|stop|restart" exit 1 ;; esac 31 Appendix G - Scripts/browser.py """ Script for launching a browser """ # (c) 2011 Rich Reece <rich.reece@gatech.edu> # plugin constants __plugin__ = "Browser" __author__ = "Rich Reece" __url__ = "http://vip.gatech.edu/wiki/index.php/Senior_Design_-_Spring_2011" __svn_url__ = "" __credits__ = "Alyssa Freeman, Mohamed Himedan, Rich Reece, Peter VanNess" __version__ = "1.0.0" # main import import import import import imports sys os xbmc xbmcgui xbmcplugin class Main: def __init__( self ): exec_str = '/usr/bin/firefox' xbmc.executehttpapi("Action(199)") if len(sys.argv) > 1: exec_str += ' ' + sys.argv[1]; os.system('%s'%(exec_str)) xbmc.executehttpapi("Action(199)") if ( __name__ == "__main__" ): Main() sys.modules.clear() 32 Appendix H - Edited Section of home.xml NOTE: This is just the section of the home.xml file that was edited. The complete home.xml file can be found on the SuiteTV website. <content> <!-- SuiteTV additonal code --> <item id="4"> <label>JUMBOTRON</label> <onclick>XBMC.PlayMedia(/home/vipteam/Documents/jumbotron.strm)</onclick> <icon>special://skin/backgrounds/jumbotron.png</icon> <thumb>$INFO[Skin.String(Home_Custom_Back_Weather_Folder)]</thumb> <visible>!Skin.HasSetting(HomeMenuNoWeatherButton)</visible> </item> <item id="4"> <label>ESTADIUM</label> <onclick>RunScript(/home/vipteam/Scripts/browser.py, http://estadium.gatech.edu)</onclick> <icon>special://skin/backgrounds/eStadium.png</icon> <thumb>$INFO[Skin.String(Home_Custom_Back_Weather_Folder)]</thumb> <visible>!Skin.HasSetting(HomeMenuNoWeatherButton)</visible> </item> <item id="4"> <label>Store</label> <onclick>RunScript(/home/vipteam/Scripts/browser.py, http://www.ramblinwreckstore.com)</onclick> <icon>special://skin/backgrounds/RamblinWreckStore.png</icon> <thumb>$INFO[Skin.String(Home_Custom_Back_Weather_Folder)]</thumb> <visible>!Skin.HasSetting(HomeMenuNoWeatherButton)</visible> </item> <!-- end of SuiteTV additional code --> <item id="6"> <label>8</label> <onclick>ActivateWindow(Weather)</onclick> <icon>special://skin/backgrounds/Weather.png</icon> <thumb>$INFO[Skin.String(Home_Custom_Back_Weather_Folder)]</thumb> <visible>!Skin.HasSetting(HomeMenuNoWeatherButton)</visible> <visible>!Skin.HasSetting(ShowWeatherFanart) | IsEmpty(Skin.String(WeatherFanartDir))</visible> </item> <item id="6"> <label>8</label> <onclick>ActivateWindow(Weather)</onclick> <icon>special://skin/backgrounds/Weather.png</icon> <thumb>$INFO[Skin.String(WeatherFanartDir)]$INFO[Weather.FanartCode]</thumb> <visible>!Skin.HasSetting(HomeMenuNoWeatherButton)</visible> <visible>Skin.HasSetting(ShowWeatherFanart) + !IsEmpty(Skin.String(WeatherFanartDir))</visible> </item> </content> 33