Bridging a gaming console with a wireless network

Apparatus and system for configuring a wireless bridge for a computing device such as a game console. The wireless bridge must include a key (not known to the public) employed in producing a digest. The digest is passed to the game console to authenticate that the wireless bridge is compatible and can thus be configured by the game console. Once the wireless bridge proves its compatibility, a configuration procedure included in an operating system on the game console configures the wireless bridge to connect to a wireless network so that the game console can communicate through the wireless bridge with a gaming site that is accessed over the Internet. The configuration is done without using a web browser program or a configuration program that is specific to a particular model and manufacturer of the wireless bridge.

FIELD OF THE INVENTION

This invention generally pertains to a wireless bridge that is adapted to connect through a wire connection to a computing device to enable the computing device to communicate over a wireless network and to a method for configuring the wireless bridge, and more specifically, pertains to a wireless bridge that is designed to be configured by a specific computing device, and to a method for configuring such a wireless bridge with a user interface executed on the computing device.

BACKGROUND OF THE INVENTION

One of the more popular options available to users of Microsoft Corporation's XBOX™ game console is the ability to connect over the Internet to Microsoft Corporation's XBOX LIVE™ gaming service. Although the XBOX game console is a computing device that can be programmed to do much more than play electronic games, the game console is not provided with a web page browser program and is not designed for browsing web sites on the Internet, like a personal computer (PC). Instead, the game console is designed to connect via the Internet to the XBOX LIVE™ gaming service through a virtual private network (VPN) tunnel that provides a very secure communication link to enable user(s) of the game console to play online games with other XBOX game console users who are also subscribers to this online gaming service. The game console does not include any program for displaying a web page that includes hypertext markup language (HTML) code. To make a broadband connection to a local area network (LAN) for accessing the Internet, the XBOX game console includes an Ethernet port. This connection is intended to serve as the communication link for the game console to access the Internet through a digital subscriber line (DSL), a cable modem, or other network broadband connection. While certain games can be played at the communication speeds available through a plain old telephone service (POTS) connection, there is a benefit in requiring that all users use a broadband so that all users will then experience a similar low response latency and rapid download of data from the gaming service and from each other. For this reason, the game console is only able to connect to the XBOX LIVE gaming service through a broadband connection.

The growth of broadband connections for accessing the Internet has been remarkable; currently, a substantial number of homes in this country have a broadband connection for accessing the Internet. However, most homes do not have wired Ethernet networks installed. Instead, wireless (WiFi) networks have become very popular as an alternative to wired Ethernet networks for interconnecting computers and other types of computing devices in a home and for providing access to the Internet. WiFi networks offer a relatively low cost and effective alternative to installing Ethernet wiring throughout a house when creating a residential LAN. In a wireless network, a wireless base station or router typically has a wide area network (WAN) port that is coupled to a DSL interface or cable modem and serves as an access station for one or more computing devices that wirelessly connect to the wireless base station. Certain types of computing devices, such as game consoles, set top boxes, laptop computers, and other computing devices only have an Ethernet port for connecting to the Internet and cannot access the base station wirelessly.

To address this problem, several companies have developed wireless bridges that include an Ethernet port coupled to a radio with a wireless transmitter and receiver. The Ethernet port on the wireless bridge permits an XBOX game console or other computing device to connect to the wireless bridge via a conventional Ethernet cable and communicate over the wireless network through the bridge. An XBOX game console can thus form a VPN tunnel with the XBOX LIVE gaming service over the wireless network. Similarly, other types of computing devices with an Ethernet port can connect to the Internet through a wireless network using the wireless bridge. Example of such wireless bridges include D-Link Corporation's Model 810™ and Linksys Corporation's Model WGA54G™.

Each wireless bridge vendor will typically employ different setup techniques. For example, if a wireless bridge is used with a computing device that runs a web browser program such as INTERNET EXPLORER™ or NETSCAPE™, it is relatively straightforward to configure the wireless bridge produced by some manufacturers by entering a default network address assigned to the wireless bridge by its manufacturer in the browser program and then interacting with an HTML web page having appropriate dialog boxes or text entry boxes for entry of the parameters needed to configure the wireless bridge. The configuration web page and other related web pages are typically embedded in the firmware of the wireless bridge, along with the software for accessing these web pages for configuring the bridge. Since configuration of the bridge is done using a conventional web browser program, almost any PC that can directly connect to the Ethernet port of the bridge can configure it. Alternatively, for some bridges produced by other vendors, a wizard set-up program supplied with the bridge is run on a PC that is connected by an Ethernet cable to the bridge to configure the bridge for the user's wireless network. Typically, the configuration will require providing a name for the network, an Internet Protocol (IP) address for the bridge (if the network does not use dynamic host configuration protocol (DHCP)), a gateway, a domain name server (DNS) IP address, an encryption keyword (if used), and other parameters and options. Once the bridge has been configured using the PC, the bridge can be moved and connected to any computing device that cannot itself readily be used to configure the bridge.

Many people are confused by the two step process that requires a bridge to be configured on a PC and then moved and connected to an XBOX™ game console or other computing device that is not readily usable to directly configure the bridge. Accordingly, what is needed is an approach that enables such a computing device to configure the bridge itself, without the need to first connect the bridge to a PC for the configuration before moving the bridge to the computing device for connecting the computing device to the wireless network.

One approach that might be used to address this problem is to provide a plurality of different configuration programs on the computing device for corresponding bridges produced by different manufacturers. The computing device might either automatically detect the model (and manufacturer) of the bridge coupled to the computing device or require that the user choose the appropriate configuration program by input of or selection of the model (and manufacturer) of the bridge being used from a list. However, other manufacturers may enter the market with such bridges. Maintaining an appropriate configuration for each of a plurality of different bridges that may change as new models are added or as changes are required to address firmware improvements is clearly impractical. Instead, what is needed is a single user interface for configuring bridges made by different manufacturers that is not affected by changes in the bridge firmware or the release of newer models. It should be possible to employ this single user interface to troubleshoot any problems arising in the configuration and to provide help in answering questions about the parameters and configuration options that are required. Although this approach might initially be implemented on a specific computing device such as the XBOX game console, it will be apparent that the same approach might be used for other types of computing devices, such as set top boxes, or computers without provision for adding a wireless PC card or other type of wireless station device.

SUMMARY OF THE INVENTION

To enable certain types of computing devices that do not have the ability to use a configuration web page or run a proprietary configuration wizard to directly setup a wireless bridge, the present invention employs a more general configuration interface program that will only operate with wireless bridges that are certified to operate with it. Any bridge that is not so certified will need to use a more conventional technique for configuring the bridge and selecting parameters that are required to connect a computing device to a wireless network through the bridge. The configuration interface program will only attempt to configure a bridge that is certified to be configured with the program.

More specifically, a first aspect of the present invention is directed to a bridge that includes a memory in which a stored authentication data and machine instructions. The authentication data are included to enable the bridge to be recognized as compatible for configuration through the computing device. A port adapted to couple the bridge to a computing device through a wire connector is included, as well as a radio that includes a wireless receiver and a wireless transmitter that are coupled to an antenna system. A processor is coupled to the memory, the port, and the radio and executes the machine instructions to carry out a plurality of functions. These functions include responding to a discover request from the computing device that is coupled to the bridge by returning an indication of an address of the bridge and configuration information for the bridge. The response also provides the authentication data to the computing device via the port. In response to a command received from the computing device, the processor sets properties of the bridge so as to enable the bridge to subsequently communicate data to and from the computing device over the wireless network. Data are then able to be communicated between the computing device and the wireless network via the bridge, once it has thus been properly configured.

The authentication data comprise a key that is provided to the computing device, but is not publicly available. Optionally, the authentication data may include a text string. A one-way hashing algorithm that uses the key is applied to a concatenation of a one-time variable, and the address of the bridge (and the text string—if used), producing a result that is communicated to the computing device in response to the discover request. Based upon the response, the computing device can confirm the compatibility of the bridge to be configured with the properties sent to the bridge by the computing device.

The processor then responds to a request received from the computing device to enumerate all available wireless networks by scanning for available wireless networks. The response returned to the computing device identifies an address for each access point of an available wireless network, as well as other parameters for each available network enumerated by scanning. A subsequent command received from the computing device sets the properties of the bridge as needed to enable the bridge to communicate with an available wireless network that was identified by scanning.

Another aspect of the present invention is directed to a method for automatically configuring a bridge to communicate over a wireless network, where the bridge is coupled through a wire connection to a computing device that does not have a web browser program for setting properties of the bridge. The method includes steps that generally implement the functions of the bridge and the computing device as described above.

Yet another aspect of the present invention is directed to a memory medium for carrying out the steps of the method, on the bridge, and on the computing device.

Still another aspect of the present invention is directed to a computing device for setting up a bridge to communicate over a wireless network. The computing device includes a memory in which machine instructions are stored, a network interface and port used for connecting through a wire lead to a bridge, and a processor that is coupled to the memory and the network interface. The processor executes the machine instructions to carry out a plurality of functions, including sending a discover request to a bridge that is connected to the network interface through the port, requesting information about the bridge. Using a key that is not publicly known, from the response to the discover request received from the bridge, the processor determines whether the bridge has included an indication that appropriate authentication data are stored on the bridge, thereby verifying whether the bridge is compatible with being set up to communicate over the wireless network by the computing device. If the bridge is compatible with being setup by the computing device, the processor sends a command to the bridge with properties selected to configure the bridge for communicating over the wireless network. And, if successful in configuring the bridge, the computing device is able to communicate over the wireless network through the bridge.

DESCRIPTION OF THE PREFERRED EMBODIMENT

Exemplary Game Console

As shown inFIG. 1, an exemplary electronic gaming system100includes a game console102and support for up to four user input devices, such as controllers104aand104b.Game console102is equipped with an internal hard disk drive (not shown in this Figure) and a portable media drive106that supports various forms of portable optical storage media, as represented by an optical storage disc108. Examples of suitable portable storage media include DVD discs and CD-ROM discs. In this gaming system, game programs are preferably distributed for use with the game console on DVD discs, but it is also contemplated that other storage media might instead be used, or that games and other programs can be downloaded from a gaming site over the Internet (or other network).

On a front face of game console102are four connectors110that are provided for electrically connecting to the controllers. It is contemplated that other types of connectors or wireless connections might alternatively be employed. A power button112and a disc tray eject button114are also disposed on the front face of game console102. Power button112controls application of electrical power to the game console, and eject button114alternately opens and closes a tray (not shown) of portable media drive106to enable insertion and extraction of storage disc108so that the digital data on it can be read and loaded into memory or stored on the hard drive for use by the game console.

Game console102connects to a television or other display monitor or screen126via audio/visual (A/V) interface cable120. A power cable plug122conveys electrical power to the game console when connected to a conventional alternating current line source (not shown). Game console102may be further provided with a data connector124to transfer data through an Ethernet connection to a network and/or through a broadband connection to the Internet. Alternatively, it is contemplated that a modem (not shown) may be employed to transfer data to a network and/or the Internet. As yet a further alternative, the game console can be directly linked to another game console via an Ethernet crossover cable (not shown).

Each controller104aand104bis coupled to game console102via a lead (or in a contemplated embodiment, alternatively, through a wireless link). In the illustrated implementation, the controllers are Universal Serial Bus (USB) compatible and are connected to game console102via USB cables130. Game console102may be equipped with any of a wide variety of user devices for interacting with and controlling the game software. As illustrated inFIG. 1, each controller104aand104bis equipped with two thumb sticks132aand132b,a D-pad134, buttons136, and two triggers138. These controllers are merely representative, and other gaming input and control mechanisms may be substituted for or used, in addition to those shown inFIG. 1, for controlling game console102.

Removable function units or modules can optionally be inserted into controllers104to provide additional functionality. For example, a portable memory unit (not shown) enables users to store game parameters and port them for play on another game console by inserting the portable memory unit into a controller on the other console. Other removable function units are available for use with the controller. For example, a removable function unit comprising a voice communicator module140is employed to enable a user to verbally communicate with other users locally and/or over a network. Connected to voice communicator module140is a headset142, which preferably includes a boom microphone144or other type of audio sensor that produces an input signal in response to incident sound, and a headphone146or other type of audio transducer for producing audible sound in response to an output signal from the game console. In another embodiment that is contemplated (not shown), the voice communicator capability is included as an integral part of a controller (not shown) that is generally like controllers104aand104bin other respects. The controllers illustrated inFIG. 1are configured to accommodate two removable function units or modules, although more or fewer than two modules may instead be employed.

Gaming system100is of course capable of playing games, but can also play music and videos on CDs and DVDs. It is contemplated that other functions can be implemented by the game controller using digital data stored on the hard disk drive or read from optical storage disc108in drive106, from an online source, or from a function unit or module.

As supplied, game console102is not intended to be capable of browsing the Internet or connecting to web addresses that display web pages in a browser program. Instead, the game console can only connect to a dedicated gaming service over the Internet that facilitates multiplayer games played by subscribers to the service who connect through game consoles that are registered with the gaming service. Each connection over the Internet is through a VPN tunnel, so that the communications between the game console and the gaming service are secure. The game console is not currently provided with a conventional keyboard, so that entry of text messages or other text input is possible only by selecting alphanumeric characters from a virtual keyboard display (shown inFIG. 13) using one of the controllers. The game consoles do not have direct communication with parties who are outside of the environment that is provided by the gaming service for playing multiplayer games. Similarly, anyone who is not connected with a game console in the gaming environment cannot have direct communication over the Internet with those who are connected to the gaming service. It is the lack of a web page browser program on the game console that precludes using a configuration web page that might be embedded in a conventional wireless bridge to setup the parameters of the wireless bridge to communicate over a wireless network.

Wireless Bridge

FIG. 2illustrates a block diagram that includes functional components of an XBOX™ compatible wireless bridge150. The wireless bridge includes an Ethernet transceiver152that transmits and receives data to and from the game console via an Ethernet wire connection. Data received from the XBOX™ game console are sent to a processor154that acts on the incoming data according to instructions read from a memory156. The memory also stores authentication data that enables the adapter to be recognized as compatible for configuration through the computing device. Dependent on the incoming data, the processor also writes data to the memory. The processor sends data to a block158comprising Medium Access Control (MAC) and Physical (PHY) Layers. The MAC layer controls how a computing device on a network gains access to data and permission to transmit it. The Physical Layer conveys the bit stream to an 802.11 radio frequency (RF) transceiver160to drive antenna(e)162that propagate(s) radio waves to a wireless access point or other wireless link. Data exchange between the functional components in the wireless bridge is bi-directional so that data that are received through the antenna(e) are processed and conveyed to the Ethernet connection of the game console.

Gaming Environment

FIG. 3illustrates different aspects of the gaming environment. InFIG. 3, a schematic diagram280shows that the online gaming environment comprises a plurality of game consoles and Internet connections284a-284h,which are connected to a gaming server282. Of particular note is game console102that is connected to XBOX™ compatible wireless bridge150. The wireless bridge transmits wireless IEEE 802.11 data packets to and receives IEEE 802.11 data packets from a wireless access point (or base station)286. Data packets are conveyed between the gaming server and the game consoles through VPN tunnels, over Internet285. Each of game consoles and Internet connections284a-284his thus connected in secure communication with gaming server282, which may comprise a single server or, alternatively and more likely, will include a plurality of servers that are coupled together to carry out specific functions required for the gaming service. Use of the VPN tunnel insures a secure communication link between each game console and the gaming service. The secure gaming environment ofFIG. 3does not provide any option for connecting a game console to any other device and only permits communication between game consoles that are connected to the gaming service to enable the game consoles to participate in multiplayer games. Although a game console can conduct certain administrative functions such as subscribing, selecting passwords, and indicating other players with whom a person using the game console wants to participate in a multiplayer game, the game consoles are constrained from communicating over the Internet outside the gaming environment defined byFIG. 3. Thus, a game console of this type cannot connect with an arbitrary web page using an HTML web browser, as is possible on a PC or other general computing device that has an Internet connection and is provided with a web browser. In addition, it would be impractical to attempt to provide configuration programs for each of a plurality of different models of wireless bridges from different manufacturers, since each would require a different configuration program.

Device Configuration

FIGS. 4A,4B, and4C illustrate, in an exemplary manner, the process for configuring an XBOX™ compatible wireless bridge that does not have a web browser interface, without using a model/manufacturer specific configuration program that is executed on the game console. The Ethernet port of the wireless bridge is connected by a conventional Ethernet cable to the Ethernet port of the XBOX™ game console.

A recent update to the “Dashboard” program is employed to configure a compatible wireless bridge. The Dashboard is executed each time the XBOX™ game console is rebooted with no game media in the DVD-ROM drive, or in response to certain other conditions. The Dashboard program provides the user interface for the game console when the user is not playing a game.

As indicated in a flow chart300, the wireless bridge may be set up by following the logic that starts with a step302. In this step, a Dashboard update program executes upon starting the XBOX™ game console with an appropriate CD installed in the optical media reader drive. This program upgrades the Dashboard running on the XBOX so that it is able to configure a compatible wireless bridge. Alternatively, while connected to the XBOX LIVE™ gaming service using, for example, a wire Ethernet connection, the Dashboard update will automatically be downloaded and installed. A step304upgrades the Dashboard, if the Dashboard has not already been updated by other means, as noted above. The process proceeds to a step306, which launches the Dashboard to a wireless entry point and continues with a step308. In step308, the logic provides for the XBOX game console to send a discover request to the wireless bridge. A discover request is a transmission to all entries on the Ethernet segment. The discover request includes a 16 byte nonce, which might be a current time or some other quasi random variable. This step causes the wireless bridge to authenticate its XBOX™ compatibility by responding with secure, encoded data that can only be provided by devices specifically designed to interface with and be configured by the XBOX™ game console. More specifically, the wireless bridge concatenates components, including the nonce received from the game console, a unique MAC address assigned to the wireless bridge when it was manufactured, and in a preferred embodiment, a predefined alphanumeric (text) string. The text string is not required, but provides an additional security measure, since unauthorized duplication of the text string may constitute a copyright infringement. Next, the wireless bridge applies a Keyed-Hash Message Authentication Code (HMACkey) to the three (or two) concatenated components, producing a 20 byte digest that is returned to the XBOX™ game console over the Ethernet cable. The HMACkeyalgorithm is described in Federal Information Processing Standards Publication 198, published Mar. 6, 2002, which notes that HMACs typically have two functionally distinct parameters, including a message input (i.e., the concatenation of the three components) and a secret key.

The digest is received by the game console, along with the MAC of the wireless bridge. By repeating the concatenation of the three (or two) components and applying the same key using the HMAC algorithm a result is obtained that is compared with the digest received from the wireless bridge by the XBOX™ game console. The wireless bridge therefore proves that it is compatible with being configured by the game console if the digest and the corresponding result produced by the game console match.

If the wireless bridge thus successfully authenticates its XBOX compatibility, a decision step310determines if the wireless bridge is at the factory default settings. If the wireless bridge is set at the factory default settings, the logic continues through connector “D” onFIG. 4Bto a decision step312, which determines if the wireless bridge is connected and authenticated? If so, the logic continues through connector “C” onFIG. 4Ato a step314, which displays the wireless link status. This step displays the connection status (i.e., connected or not), the network name (i.e., Wireless SSID), the connection data rate, and the signal strength for received wireless data. The user is given the option to change the settings, view more network details, or exit this display screen (i.e., by pressing the back button “B” on the game console controller). While at step314, a step316queries the connection status five times per second and, so long as the query indicates that the wireless bridge is connected, returns to step314to refresh the Wireless Status display with the current information noted above. The status display of signal strength enables a user to move the wireless bridge about within a room, while viewing the data on the display to determine an ideal location for the wireless bridge that provides a maximum (or at least an acceptable) signal strength for communicating with the wireless network. From step314, if the user presses the “back” or “B” button on the controller, a step318evaluates the Back To variable, which determines how the user originally navigated to the wireless bridge configuration user interface. If the user arrived in the wireless configuration from the “advanced” network settings menu, then the user will be returned to the advanced network menu. If the user arrived in the wireless configuration user interface from the network troubleshooter, then the user will be returned to the network troubleshooter. If the user exits the configuration program after successfully setting up the compatible wireless bridge, the logic will advise the user to remove the disc to continue, in a step320. After removing the disc, the system will reboot and will communicate with the gaming environment via the wireless bridge, which is now properly configured to communicate over the wireless network.

Depending on the wireless environment, specific wireless bridge, and the user's responses or input, other logic will be followed, as explained below.

Authentication Failure

Referring to step308, if no valid response is received from the wireless bridge in the attempt to authenticate it as an XBOX™ compatible wireless bridge, the logic continues through connector “L” onFIG. 4Bto a step322. In this step, the display indicates that a wireless bridge was not detected and an associated help screen suggests several possible causes that should be examined before continuing. While at step322, the logic continues through connector “M” onFIG. 4Ato a step324, which continuously queries the connection status to determine if any of the suggested steps that have been carried out by the user have corrected the problem. If the wireless bridge successfully responds with the proper authentication result, the logic continues to step310; otherwise, the error loops back through connector “L” onFIG. 4Bto step322. While at step322, the user may choose to return to the wireless entry point or to quit the wireless setup. Pressing an appropriate button on the controller will transfer the logic to a decision step326that evaluates which option the Back To variable should follow. If the “A” button is pressed, the state of the Back To variable is to “exit” and the logic continues through connector “A” onFIG. 4A, returning to the wireless entry point. If the “B” button is pressed, the state of the Back To variable is “not exit” and the logic continues through connector “B” onFIG. 4Ato decision step318. If the wireless bridge is not at factory settings as determined by step310, the logic continues at step314to display the connection wireless status. If the wireless bridge is at factory settings, the logic continues through connector “D” onFIG. 4Bto decision step312.

If the wireless bridge is connected and authenticated at decision step312, the logic continues through connector “C” onFIG. 4Ato step314. Otherwise, an available wireless network has not yet been identified, and in a step344, the busy spinner is displayed to the user while the game console requests that the wireless bridge transmit a wireless query that will identify available wireless networks, in a step346. In this step, the wireless bridge generates a list with one Service Set Identifier (SSID) for each Basic Service Set Identifier (BSSID) detected, operating in either ad hoc or infrastructure mode. Any error in this step leads to a step336, which displays an error dialog and is discussed below. A decision step348determines a size of the SSID list (i.e., the number of entries or wireless networks that were identified). If the number of entries in the list is greater than or equal to one, a decision step350determines if the wireless bridge is set to an auto configure mode, and if so, a step352displays an indication that “one or more wireless networks have been detected.” Thereafter, or if the response to decision step350is negative, the logic proceeds to a step354, which directs the user to select the network to which the wireless bridge is to connect. The user will choose one of the listed items, which are presented starting with the most powerful beacon for the “Current” SSID (if any network was previously selected), followed by the SSIDs of any other networks in order of signal strength (from higher to lower), followed by an entry “Other.” The first entry in the list is the default, if no other selection is made by the user.

If the user selects “Other” from the list, the logic continues with a step360, which displays a current network name or enables a user to employ a virtual keyboard to enter the network name. If the user selects a controller key to indicate that the network name has been entered, a decision step362determines if the length of the network name is zero and if so, loops back to step360until at least one character has been entered. Alternatively, the user may go back to step354to select a different option from the list, which enables a user to indicate a network that is not broadcasting its SSID for security or other reasons, so that the network is not included in the list of networks returned from the scan.

Returning to decision step348, if the size of the list is equal to zero entries, the logic proceeds to a decision step356, which again determines if the wireless bridge is in the auto configuration mode. If not, the logic continues with step360. Otherwise, the logic continues through connector “H” to a step342inFIG. 4C, at which step the wireless bridge settings or parameters are displayed, as discussed below.

In step354onFIG. 4B, if the user either selects any entry in the list beside “Other,” or if the network name length is not equal to zero, the logic continues through connector “G” to step342inFIG. 4C.

Wireless Status

While at step314, step316queries the connection status once per second. If step316detects an error, the logic continues through connector “J” at the top ofFIG. 4Bto a step336. Step336displays an error dialog, which informs the user that the XBOX console has had technical difficulties communicating with the wireless bridge and directs the user to seek additional help at the XBOX LIVE™ web site (e.g., accessed using a PC). When the user responds by pressing the “A” button to indicate “OK,” the process continues through connector “B” onFIG. 4Ato decision step318, which determines that the process should be exited, leading to step320.

From step314, which displays the wireless status, if the user selects an option “settings” to change the settings, a decision step328determines if the wireless bridge currently is using the factory default settings. If so, the logic continues through connector “F” onFIG. 4Bto a decision step340, which determines if the wireless bridge is connected and authenticated. If so, the logic continues through connector “G” onFIG. 4Cto step342, which displays the wireless bridge settings. Referring back to decision step328, if the wireless bridge is not set to the factory default settings, the logic continues through connector “G” onFIG. 4Cto step342.

Referring back to decision step340, if the wireless bridge is not connected or authenticated, the logic continues with step344while querying for available wireless networks in step346, as described above.

Referring to back to step314onFIG. 4A, if the user selects the option “More,” to view more network details, a step330displays a busy spinner and continues through connector “I” onFIG. 4Bto a step332, which refreshes the wireless bridge settings. Decision step334determines whether the settings were properly refreshed. If not, the logic continues through connector “J” at the top ofFIG. 4Bto step336, which displays an error dialog, as discussed above.

If the settings were properly refreshed in decision step334, a step338display wireless details to the user on a screen, showing the network name associated with the SSID, the BSSID, channel, mode, type, wireless bridge name, and firmware version. When the user pushes the “A” or “OK” button on the controller, the logic continues through connector “C” onFIG. 4Ato step314, which has already been described.

Wireless Settings

From the display of wireless setting in step342, the user may selectively modify the network name, network mode, channel, security type, security key, password, or may save the settings, or may exit the display.

Network Name

If the user selects network name from Wireless Settings, the logic continues through connector “O” onFIG. 4Band displays the busy spinner in step344, while conducting the query of step346by scanning for available wireless networks to generate a list, as described above. The user can then selectively change to a different wireless network in the list.

Network Mode

If the user selects network mode from the wireless settings, a step364displays network mode information to the user. The user may move the cursor to the desired mode (i.e., infrastructure or ad hoc) and then press the “A” button to make the selection, or can exit this screen by pressing the “B” button. In either case, logic continues at step342.

Channel

While operating in ad hoc mode, if the user selects channel from the wireless settings, a step366displays channel information to the user. Note that this option is not available when operating in infrastructure mode. The user may move the cursor to the desired channel and then press the “A” button to make the selection, or may exit the screen by pressing the “B” button. In either case, logic continues at step342.

Password

If the user selects password from the wireless settings, a step368displays the options of setting or changing a password on the wireless bridge. If the user chooses not to set or change the password, the logic returns to step342, otherwise a step370displays a virtual keyboard to the user to enable entry of the new (or changed) password. After a password has been entered, the length of the password is evaluated in a decision step372. If the password is 3 to 16 characters, a step374displays a busy spinner and then a step380gives the user the option to save the password that was entered. If the password is 1 or 2 characters, a step376indicates that the password is too short and must either be 0 characters (empty) to disable the password, or 3 to 16 characters long. When the user responds to this message by pressing “A” for “OK” on the controller, the logic returns to step370where the user must enter the password of the required length or leave the password blank (zero characters). If the password is zero characters, a decision step378determines if the user wants to disable the password. A negative response directs the logic back to step370where the user must enter a non-zero password of 3-16 characters, whereas a positive response directs the logic to step374. The process continues from step374to step380, which enables the user to save the wireless bridge password. If the password has been successfully saved, the logic continues through connector “G” at the top ofFIG. 4Cwith step342. However, if the wireless bridge reports a failure, a step382indicates that the wireless bridge was unable to save the password and directs the user to other sources of information to correct the problem. When the user presses the “A” button, the logic continues through connector “G” on at the top ofFIG. 4Cto step342, which displays the wireless settings. If there are any other errors, the logic continues through connector “J” at the top ofFIG. 4Bto step336, which displays the error dialog, as discussed above.

Security

If the user selects security type from the wireless settings, a step384displays a screen to the user from which the user may select a desired level of security (i.e., 64 bit Wired Equivalent Privacy (WEP), 128 bit WEP, WiFi Protected Access (WPA), or no security at all). The selection is checked to determine if a security level has been selected in a decision step386and if no security was selected, the logic continues through connector “G” at the top ofFIG. 4Cwith step342.

If the user has selected some level of security, decision step386proceeds with a step388, which displays a virtual keyboard to the user for entering a security key of the appropriate length or type, based upon the selection that was made.

If the user chose to exit the virtual keyboard without completing entry of the security key, a decision step390determines whether the exit was from the step of entering a security key. If the entry to step388came via step384, the logic returns to step384; otherwise, the logic continues through connector “G” at the top ofFIG. 4C, returning to step342.

If the user completes entry of the security key in step388, a decision step392determines if the key is valid (for 64 bit WEP, either five ASCII characters or 10 hex digits must be entered, while for a 128 bit WEP, either 13 ASCII characters or 26 hex digits must be entered, while a WPA requires 64 hex digits or a pass phrase of from 8 to 63 ASCII characters to be entered). If the entry is valid, the logic continues through connector “G” at the top ofFIG. 4C, with step342. If the key that was entered is not valid, a step394indicates that an improper key has been entered for the type of security selected and prompts the user to try entering the key again, before returning to step388.

If the user selects save at step342, a step396displays a busy spinner and the process proceeds to a step398, which configures the wireless bridge with any parameter that was modified by the user and saves the modified configuration. If the save operation was not successful, a step400indicates that the wireless bridge was unable to save the settings and directs the user to other sources of information to correct the problem. When the user presses the “A” button for “OK,” the logic continues through connector “G” at the top ofFIG. 4C, with step342. If the save operation was successful, a step402determines the current status of the wireless connection. If there is no response, the logic continues through connector “J” at the top ofFIG. 4C, with step336, which has been discussed above. If the wireless bridge responds, a decision step404determines if the wireless bridge is associated/connected to a wireless network. If not, a step406displays an indication that no network was detected and displays information that may be helpful to correct the problem. Pressing the “A” button on the controller directs the logic to continue through connector “G” at the top ofFIG. 4C, with step342. If decision step404determined that the wireless bridge was associated/connected with a wireless network, a decision step408determines if the wireless bridge is authenticated, i.e., if it has the correct security settings. If not, a step410indicates that the incorrect security settings have been used and suggests a corrective action. Pressing the “A” button on the controller directs the logic to continue through connector “G” at the top ofFIG. 4C, with step342. If the wireless bridge has the correct security settings, a decision step412determines if the signal strength and speed of the wireless connection are greater than a minimum so that the wireless connection has acceptable transmission signal strength and speed. If the signal strength and speed are acceptable, the logic continues through connector “C” onFIG. 4A, with step314. If the signal strength or speed is not acceptable, a step414indicates that a poor wireless connection has been made and displays information that may be helpful to correct the problem. Pressing the “A” button on the controller directs the logic to continue through connector “J” at the top ofFIG. 4B, with step336, as discussed above.

Exit Wireless Settings

If the user chooses to exit from the Wireless Settings display, the logic continues through connector “P” onFIG. 4Ato a step415, which indicates that the settings are not saved, and requests the user to confirm exiting the procedure. If the user selects not to confirm exiting wireless settings, the logic continues through connector “H” onFIG. 4Cto return to the wireless settings display in step342. Otherwise, the process returns to step314.

Troubleshooting

A troubleshooting function is provided to assist the user in all aspects of the network connection and to provide assistance in various other functions of the game console. One function of this help feature that is pertinent to the present invention is the provision of troubleshooting logic to assist the user with problems associated with configuring XBOX™ compatible wireless bridges. There are two distinct pathways that lead to the troubleshooting logic. First, with reference toFIG. 4A, the user may initiate troubleshooting from a step416, which displays an advanced option to enable a user to select a specific wireless network for which the wireless bridge is to be configured. If the user selects this option, the logic continues with step308, which scans for available wireless networks. Alternatively, the user may go back to a step418, which displays network settings and enables the user to select between options labeled Connect and Advanced. Selecting Advanced returns to step416; selecting Connect proceeds to a step420, which displays the network connect status data. These data include the cable status, IP of the wireless bridge, the domain name system (DNS) server IP, and whether the wireless bridge is connected to XBOX LIVE™. When the wireless bridge is configured and functioning correctly, it becomes essentially “invisible” on the network.

The second pathway to access troubleshooting assistance is followed if the Back To variable has been set to Troubleshoot and the process reaches decision step318inFIG. 4A. If this occurs, the process continues to step420, which is discussed above.

Step420enables a user to select one of the parameters displayed. If the user selects Cables, a decision step422prompts the user to examine the physical connection to the wireless bridge through the Ethernet cable to determine if that cable is properly connected. If the physical connection of the Ethernet cable is not OK, a step424directs the user to correct the problem. The logic loops back to step422, until the cable connection appears to be fixed. When the cable connection is OK, a step426requests a response from the wireless bridge.

If the wireless bridge is present, based upon it returning a response to the request, a decision step428determines whether the wireless bridge is connected to a wireless network and authenticated as being compatible to be configured by the game console.

If the wireless bridge is not connected to a wireless network or not authenticated as being compatible, a step430advises the user that a wireless bridge was detected but is not connected to a wireless network and gives the user the option to connect to a wireless network. This step gives the user the option to connect to the network. If the user chooses to connect to the network, the logic continues through connector “N” onFIG. 4Bto step344. Otherwise, the process ends at step432, which indicates that the troubleshooting portion of the procedure is complete, but gives the user an option to request further help, which may return the user to step430.

If the wireless bridge is connected and authenticated or if the wireless bridge was not found in step426onFIG. 4A, a step434continue with troubleshooting procedure and moves the user through various troubleshooting steps that may resolve other issues preventing the wireless bridge from being authenticated or connecting to a wireless network. Details of these steps are not particularly relevant to the present invention and they are therefore not included. The steps between step428and436in the troubleshooter are not limited specifically to wireless functionality—that address other connectivity problems that can occur in both wired and wireless connection scenarios.

If the troubleshooting procedure completes without error, i.e., if the problem has been corrected by working through the procedure so that the wireless bridge is connected to a wireless network and is authenticated, a decision step436determines if the signal strength and speed are above a predefined minimum. If the quality of the wireless connection is too poor, a step438directs the user to attempt to correct the problem and improve the signal strength by moving the wireless bridge about and gives the user the option to view the Wireless Status screen, which displays signal strength and connection speed, so that the user is provided feedback on the quality of the connection as the wireless bridge is moved about the environment. If the user does not choose to view the Wireless Status screen in step314or if the signal strength and speed increase above the predefined minimum by virtue of the moving the wireless bridge to a better position, the troubleshooting process ends at a step440. The wireless bridge configuration is now complete, and the wireless bridge is connected to a wireless network.

Screen Displays

FIG. 5illustrates an exemplary screen500, which is displayed at step314(inFIG. 4A) to give the user information regarding the wireless status. Screen500includes a title510indicating “Wireless Status,” and connection information in boxes512a-512dthat specify various parameters of the wireless connection. Box512aspecifies whether there is a wireless connection, box512bspecifies the network name, box512cshows the connection speed, and box512dindicates the relative signal strength of the wireless connection. Selectable options514aand514bindicate the choices available to the user with the “More” option being highlighted. A dialog box516provides added information regarding the highlighted option. Also included on screen500are an icon506for the “A” button on the handheld controller and an explanation508of its “Select” function, and an icon502for the “B” button on the handheld controller and an explanation504of its “Back” function. Thus, pressing the “A” button on the handheld controller will select the currently highlighted “More” option, which in this instance, will enable the user to “view more wireless network details.”

FIG. 6illustrates an exemplary screen520, which is displayed at step322inFIG. 4Bto notify the user that a wireless bridge was not detected. Screen520includes a title522, indicating “No Wireless Bridge,” a dialog box524showing various reasons why the adapter may not have been detected, and a highlighted OK option526. Also included on screen520are icon506for the “A” button on the handheld controller and explanation508of its “Select” function and icon502for the “B” button on the handheld controller and explanation504of its “Back” function.

FIG. 7illustrates an exemplary screen530, which is displayed at step336inFIG. 4Bto notify the user of communication difficulties with the wireless bridge. Screen530includes a dialog box532acknowledging technical difficulties in communicating with the wireless bridge and suggests a web site where the user may look for more information. A highlighted OK option534is provided the user. Since icons for the “A” and “B” buttons on the controller are unavailable on this screen, pressing either button will dismiss the screen and direct the system to its next state, as discussed above.

FIG. 8illustrates an exemplary screen540, which is displayed to give the user information and options regarding the wireless settings. Screen540includes a title542, “Wireless Settings” and includes options in text boxes544a-544gshowing the choices available to the user. A “Save” option in text box544gis highlighted. Box542alists the Network Name, box542bindicates the Network Mode, box542cidentifies the Channel, box542dindicates the Security Type, box542especifies the Security Key, box544fprovides an option for changing the Password, and box544gcan be selected to Save the settings. Also included on screen540are icon506for the “A” button on the handheld controller and explanation508of its “Select” function, and icon502for the “B” button on the handheld controller and explanation504of its “Back” function.

FIG. 9illustrates an exemplary screen550, which is displayed in step352ofFIG. 4Bto notify the user of detected wireless networks. Screen550includes a text box552showing that one or more wireless networks have been detected and the highlighted OK option554indicates a default choice available to the user. Because icons for the “A” and “B” buttons are unavailable on this screen, pressing either button will dismiss the screen and direct the system to its next state.

FIG. 10illustrates an exemplary screen560, which is displayed at step354inFIG. 4Bto give a user an opportunity to select one of the wireless networks that are displayed. Screen560includes a title562“Select Network” and options in boxes564a-564cshowing the wireless network choices that were identified by the scan and are available to the user, with the “XLIVEMILLD2453TRISTANJ” option highlighted. A box566lists the option “Other,” which can be selected to enable a user to manually identify a wireless network. Also included on screen560are icon506for the “A” button on the handheld controller and explanation508of its “Select” function, and icon502for the “B” button on the handheld controller and explanation504of its “Back” function.

FIG. 11illustrates an exemplary screen570, which is displayed at step338inFIG. 4Bto give the user more information about the current selected wireless connection. Screen570includes a title572“Wireless Details,” a dialog box574showing the details, and the OK option576(highlighted). Also included on screen570are icon506for the “A” button on the handheld controller and explanation508of its “Select” function and icon502for the “B” button on the handheld controller and explanation504of its “Back” function.

FIG. 12illustrates an exemplary screen580, which is displayed at step368to give about the opportunity to enter a password. Screen580includes a dialog box582explaining why a password is desirable, the highlighted option584Password, and the option586Save. Also included on screen580are icon506for the “A” button on the handheld controller and explanation508of its “Select” function, and icon502for the “B” button on the handheld controller and explanation504of its “Back” function. Thus, by pressing the “A” button on the handheld controller, the “Select” function will choose the “Password” option, which, in this instance, will enable the user to create a password.

FIG. 13illustrates an exemplary screen590, which is displayed at step370inFIG. 4Cfor entry of a password. A similar screen is displayed at step360inFIG. 4B(for entering a network name), at step388inFIG. 4Cfor entry of a security key, and at other steps where necessary to enable a user to enter data for various parameters. In this example, screen590includes a title592“Enter Password,” a highlighted option594“Done,” character options in boxes596a-596d,and characters598, including Space and Backspace characters. A character is selected by using cursor controls on the controller to highlight the desired character and then pressing the “A” button on the controller. Entering a single capital, all capitals, an accent, or a symbol is accomplished by selecting “Shift,” “Caps Lock,” “Accents,” or “Symbols,” respectively. When all the characters are entered, the option “Done” is selected. Also included on screen590are icon506for the “A” button on the handheld controller and explanation508of its “Select” function and icon502for the “B” button on the handheld controller and an explanation504of its “Back” function.