# Patent

## Title
Methods and systems for network configuration

## Abstract

Network and device configuration systems and methods are described. In an embodiment, a first user interface configured to receive from a user configuration information regarding a first network provided. Program code stored in computer accessible memory is configured to generate a barcode that includes information related to the first network configuration information, wherein the barcode can be scanned by a device having a barcode scanner and a network interface to configure the network interface to access the first network.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation of U.S. patent Ser. No. 13/303,577, filed Nov. 23, 2011, which is a continuation of U.S. patent Ser. No. 12/982,445, filed Dec. 30, 2010, now U.S. Pat. No. 8,066,187, which is a continuation of U.S. patent Ser. No. 11/934,573, filed Nov. 2, 2007, now U.S. Pat. No. 7,861,933, which claims benefit of priority to U.S. Patent Application No. 60/856,993, filed Nov. 6, 2006, the content of which is incorporated herein in its entirety.


STATEMENT REGARDING FEDERALLY SPONSORED R&D
Not applicable.
PARTIES OF JOINT RESEARCH AGREEMENT
Not applicable.
REFERENCE TO SEQUENCE LISTING, TABLE, OR COMPUTER PROGRAM LISTING
Not applicable.
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention is related to electronic devices, and in particular, to methods and systems for configuring electronic devices.
2. Description of the Related Art
With the rapid increase in networkable consumer electronic systems, such as Internet radios, televisions with computer interfaces, and the like, there has been a rapid increase in consumer frustration regarding the configuration of such electronic systems so as to be able to access a network, such as the Internet.
For example, a conventional network configuration process (wherein the target network is the Internet), may involve accessing a network configuration user interface, entering the name of an Internet Service provider, specifying a network connection-type, specifying whether the connection is to be made via a broadband connection that needs a user name and password, via an “always-on” broadband connection that does not require a sign-in, or via a connection is to be made using a dial-up modem, specifying security related information, etc. Such a conventional process is difficult to perform on electronic devices having small screens not capable of displaying extensive user interfaces and/or having limited keyboards (e.g., that do not have an alphanumeric keyboard).
SUMMARY OF THE INVENTION
Example embodiments are described that enable configuration of device settings, such as a network interface, using a printed visual code read or accessed by the device.
An example embodiment provides a network configuration system, comprising a first user interface configured to receive from a user configuration information regarding a first network. The system further includes program code stored in computer readable memory configured to generate a barcode that includes information related to the first network configuration, where the barcode can be scanned by a device that has a barcode scanner that converts the barcode into digital data and the device uses at least a portion of the data to configure a network interface to access the first network.
An example embodiment provides a configuration system, comprising: a first user interface configured to receive from a user configuration information regarding a first device associated with the user; and program code stored in computer accessible memory configured to generate a visual code that includes information related to the first device configuration information, wherein the visual code can be read by the first device to configure, at least in part, the first device.
An example embodiment provides a method of providing network configuration information, comprising: causing at least in part a first user interface to be displayed to a user on a user terminal, the first user interface including fields for receiving configuration information for a first electronic device network interface; causing at least in part information provided by the user via the first user interface to be encoded in computer readable optical code, wherein the optical code can be read by the first electronic device using an optical image capture device; and causing at least in part the optical code to be displayed and/or printed via the user terminal, wherein the optical code is configured to be scanned to obtain the network interface configuration information.
An example embodiment provides a configurable system, comprising: a processor; memory coupled to the processor; a computer program stored in the memory that is executable by the processor; a network interface; and an optical reader, wherein the computer program is configured to utilize information read by the optical reader to configure network settings.
An example embodiment provides a method of configuring a system, comprising: causing, at least in part, an optical code to be read by the system using an optical reader that converts image information to digital data; and causing, at least in part, the digital data to be used to configure the operation of at least a network connection.
An example embodiment provides a method of configuring an electronic device, comprising: using an optical reader to read a visual code to obtain data encoded therein; and configuring a network connection of the electronic device using at least a portion of the data.



BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments of the present invention will now be described with reference to the drawings summarized below. These drawings and the associated description are provided to illustrate example embodiments of the invention, and not to limit the scope of the invention.
FIG. 1 illustrates an example configuration flow chart.
FIGS. 2A-C illustrate example user interfaces for receiving device settings.
FIGS. 3A-C illustrate example user interfaces displayed by a device being configured.
FIG. 3D illustrates an example optical code format.
FIG. 4 illustrates an example networked system,
FIG. 5 illustrates an example configurable electronic system.



DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
Example systems and methods are described herein for configuring network settings on a device based on the characteristics of an available network and/or for setting user preferences for the device. Certain embodiments utilize visual indicia read by an optical reader to perform network configuration and/or to set user preferences for an electronic device.
As discussed above, certain conventional approaches for configuring an electronic device to access a network are overly complex for a typical consumer. Further, many conventional approaches rely on the device having a relatively large and expensive screen for displaying complex and detailed user interface, and having a relatively large keyboard (e.g., an alphanumeric keyboard) for entering in network configuration data. It would be advantageous to make it easier for a consumer to configure a consumer electronic device and to reduce the hardware requirements of the electronic device.
As discussed below, certain embodiments encode network configuration information and/or user preferences for an electronic device in an optical/visual code (e.g., a barcode) and utilize an optical reader, such as a barcode scanner, coupled to the electronic device to read the optical code. The electronic device then performs the network configuration and/or configures other device settings in accordance with the user preferences.
Throughout the following description, the term “Web site” is used to refer to a user-accessible network site that implements the basic World Wide Web standards for the coding and transmission of hypertextual documents. These standards currently include HTML (the Hypertext Markup Language), HTTP (the Hypertext Transfer Protocol), Java, and XML. It should be understood that the term “site” is not intended to imply a single geographic location, as a Web or other network site can, for example, comprise multiple geographically distributed computer systems that are appropriately linked together.
Furthermore, while the following description relates to an embodiment utilizing the Internet and related protocols, other networks and other protocols may be used as well. In addition, unless otherwise indicated, the functions described herein may be performed by executable code and instructions running on one or more general-purpose computers. For example, program code stored in non-volatile and/or volatile memory can include one or more instructions, which can optionally be straight-line code and/or organized as modules or objects configured to receive and process inputs, provide outputs, and to selectively store data. However, the present invention can also be implemented using special purpose computers, state machines, and/or hardwired electronic circuits. While certain example processes are described herein, not all the process states need to be performed, and the order of the process can be varied.
While certain example embodiments are described with reference to barcodes (e.g., linear barcodes, stacked barcodes, matrix barcodes, etc.) and barcode scanners, other computer readable indicia (e.g., dots, concentric circles, text codes hidden within images, text readable using optical character recognition systems, etc.) and scanners/image capture devices can be used. For example, a scanner/image capture device can be a laser scanner (e.g., including light source, a lens and a photo conductor translating optical impulses into electrical ones), a still frame camera, a video capture device, etc. While certain types of networks may be referred to (e.g., an IEEE 802.11 wireless network) other networks may be utilized (e.g., cellular networks, IEEE 802.16 networks, etc.). While the illustrated user interfaces may user certain language and provide certain user instructions, other language and instructions may be used.
In an example embodiment, a networked user terminal (e.g., a personal computer, an interactive television, a smart phone, a personal digital assistant, a networked-enabled digital music/video player, etc.) scans for existing wireless networks (or otherwise accesses information regarding local networks) and displays (e.g., via a computer system display) a listing of available networks (e.g., one or more IEEE 802.11 wireless networks) to the user. By way of example, a WiFi scanner can be used to discover wireless nodes (e.g., access point and wireless clients). The user chooses (e.g., by clicking on a network entry in the network listing) which network the user wants to configure a second device to access. By way of example, the second device has a barcode or other optical scanner. By way of further example, the second device can be a processor-based terminal, including a display, a keyboard, memory, a wired and/or wireless network interface, and a scanner/camera.
Optionally, the second device can be configured to be used to scan product information, such as that encoded in barcodes on household or business consumable items, such as food packaging. By way of further example, the second device can be a kitchen appliance (e.g., an oven, refrigerator, blender, television, computer, a waste receptacle, etc.) including or coupled to an optical scanner and including a network interface.
A user interface is provided that enables a user to input/select certain network information (e.g., what network the second device is to use, what is the security method being used, such as WEP, a network password, a network address, a proxy setting, etc.). Some or all of the information may be prepopulated based on information stored on or accessed by the computer system. The user interface may be provided by an application stored on the user's computer system or may be accessed over a network from a remote server (e.g., over the Internet, wherein the user interface is provided as a Web page or pages by a Web page server).
Additionally, a user interface is optionally provided via which a user can input device preferences, such as energy management settings (e.g., when or after what period of non-use the second device is to power down or enter a lower power consumption mode, such as by turning off the second device display until the user presses a button or otherwise uses the second device), display brightness, display contrast, and/or other preferences. The input/selected information can be stored locally in memory on the user computer system and/or remotely or a remote computer system (e.g., the computer system that provided the user interface).
Based on the selected/input information (e.g., configuration settings and/or preferences), the barcode generation application generates barcodes or other computer readable indicia/codes which can be printed (e.g., by a printer connected to the user computer system) in response to a user instruction or otherwise. The printed barcode(s) are then placed beneath or otherwise positioned with respect to the second device scanner, which then scans the code. The second device then configures its network setting and/or preference settings in accordance with the scanned code.
FIG. 1 illustrates an example configuration process for a target electronic device, (e.g., the scanning system described in U.S. Pat. No. 7,165,721, incorporated herein by reference, or other electronic device). The target device optionally has a relatively small display (e.g., less than 10 inches diagonal), and may have a relatively small keyboard (e.g., 9 keys or less, 5 keys or less, etc.). Optionally instead, the target device has a relatively large display and a relatively large keyboard. At state 102, a user accesses a website hosted by a remote system (e.g., an electronic commerce system, such as one that tracks user consumption of items and processes item orders received over a network or otherwise) via a terminal (e.g., a personal computer) coupled to a Website. The terminal may be equipped with a relatively large display (e.g., 10 inches or more diagonally) and may be further equipped with an alphanumeric keyboard.
The user then proceeds to register to create an account (or if the user already has an account, the user can log in to edit/modify account information). For example, the user may be asked to provide a user name, contact information (e.g., email, physical address, phone number, etc.), identification information regarding the device to be configured (e.g., a part number and/or a serial number), payment information (e.g., a credit card number, a debit card number, etc.), and/or other information. In addition, the user may be asked to provide user preference information.
For example, if the target electronic device is intended to collect information regarding items consumed by the user and to generate shopping lists for replacement items, the user may be asked to specify user preferences related to how often to reorder items, who orders are to be placed with (e.g., which retailer/supermarket), how items are to be delivered, when items are to be delivered, what types of status notifications are to be automatically provided to the user, etc. Other example user preferences are described in U.S. Pat. No. 7,165,721.
Optionally, a user interface is provided via which the user can specify device settings. For example, the user can specify when (e.g., how long after the last use of the device) the device should enter a low power consumption mode (e.g., turn off display backlighting, let device hard drive spin down, turn off network radio, etc.). The information provided by the user at state 102 is stored in a user database or other data store.
In addition, a user is requested to provide/select network settings via a network configuration user interface. For example, the user may be asked to provide (by typing in, selecting from a menu, or otherwise) some or all of the following and/or other information:

    
    
        Network name;
        Network security level;
        Password (if the security level necessitates a password);
        Network address (e.g., IP address, subnet mask, router, DNS primary, DNS secondary, or an indication that the system is to automatically obtain the network address);
        Proxy name and port number (if a proxy is being used).
    
    


When the user has provided the network configuration data, the user can select a “save” control and the data is stored locally on the user terminal and/or in the user database.
At state 104, the remote system (or the terminal) encodes the network configuration information using a barcode generator and preferences related to the electronic device into an optical code (e.g., a barcode). For example, the network name, security level, password, IP address, subnet mask, router, DNS, Proxy name, proxy port number can be encoded into a barcode, as illustrated in FIG. 3D.
Optionally, the system can encode other types of information into the barcode and/or additional barcodes. For example, the system can encode a Uniform Resource Locator (URL) or other locator which the device is to access and obtain information or programs. For example, the URL can access a Web site via which a new version of an operating system or program for the device can be downloaded to and installed by the device. By way of further example, the URL can access a site via which an item catalog or catalog data (or other database) can be downloaded.
At state 106, the remote system transmits the optical code in digital form (e.g., as a digital image or as data that can be converted by the terminal into an image) over the network to the user terminal. At state 108, the user prints out the optical code using a printer (e.g., a laser printer, an ink jet printer, a thermal printer, a sublimation printer, etc.) coupled to the user terminal (optionally, the user can scan the code directly from the terminal display without printing out the optical code).
At state 110, the user scans the optical code (e.g., from the printed hardcopy version or from the terminal display) using an optical scanner coupled to the electronic device. The scanner translates the optical code to digital data which is then stored in device memory. The digital data is provided/accessed by a corresponding program hosted on the device. The corresponding program then utilizes the digital data appropriately. For example, at state 112, a network configuration program accesses the network configuration portion of the data and configures the network interface accordingly. At state 114, the device connects to a network. At state 116, the device communicates with the system.
Certain example user interfaces with now be described with reference to FIG. 2AC. FIG. 2A illustrates an example user interface that can be utilized by a user to provide network configuration information to the system. The user interface display instructions for the user regarding providing network settings via the user interface. Corresponding fields are provided to receive the network settings. In this example, the following fields are provided (although other fields can be provided as well):

    
    
        Network name;
        Security level;
        Password;
        Automatically obtain network address check box (to instruct the device to automatically obtain the network address using, in this example, Dynamic Host Configuration Protocol);
        Manually enter network address checkbox (to enable the user to enter network address information);
        Fields for receiving manually entered network address information (IP address field, Subnet Mask field, Router address, Primary DNS, Secondary DNS);
        Proxy name field;
        Proxy port address.
    
    


A control is provided via which the user can instruct the system to save the network configuration system information;
A control is provided via which the user can skip entering data via the illustrated user interface (e.g., when the user would rather perform network configuration directly on the target device).
FIG. 2B illustrates a user interface presented once the user has completed the registration process. The user interface further instructs the user to print out the barcodes corresponding to the network settings and to scan the barcodes via the target device.
FIG. 2C illustrates an example print out of the barcodes corresponding to the network configuration data. In addition to barcode data, human readable text is provided including, in this example, the network name, security level, and password specified by the user. Other user provided data can be textually provided as well. Instructions on the use of he barcode are also provided.
FIGS. 3A-C illustrate example user interfaces for adding the target device to the user's network that are presented on an example target device display. In this example, the device includes three buttons whose functions may change and whose current functions are described by text/labels presented via the device display. In addition two buttons of fixed function with fixed labels are provided (a voice reminder/memo button to initiate recording of a voice memo/shopping list, and “order now” button to cause a substantially immediate order to be placed for a pending shopping list).
Referring to FIG. 3A, the example user interface asks the user if the user would like to setup a wireless network connection by having the device scan the printed wireless settings. The programmable buttons function respectively as a “yes” input, a “no” input, and a “back” button (to return to a previous menu). If the user activates the “yes” button, the example menu illustrated in FIG. 3B is presented. The user interface instructs the user to scan the wireless network setting barcodes printout and to press the “done” control when complete. One of the buttons is labeled “done” and another button is labeled “back”.
If the user activates the “done” button, once the device configures the network interface and successfully connects to a local network in accordance with the settings specified in the barcode, the example user interface displayed in FIG. 3C is presented on the device. The illustrated user interface informs the user that the device has successfully connected to the user's network and instructs the user to activate a control to begin using the networked device.
FIG. 3D illustrates an example barcode in code 128 barcode format and the relative position of the network setting information and of a calculated check digit. Code 128 is a linear symbology that encodes numbers, text functions and the 128 ASCII character set (from ASCII 0 to ASCII 128). A Code 128 barcode includes the following sections:

    
    
        Quiet Zone;
        Start Character;
        Encoded Data;
        Check Character;
        Stop Character;
        Quiet Zone.
    
    


The check character is calculated from a modulo 103 calculation of the weighted sum of all the characters.
Of course other barcode types can be used, including, without limitation: UPC, Code 25, Code 39, Code 93, Code 11, ITF-14, Codablock, Code 16K, PDF417, Aztec Code, bCode, Code 16K, PDF417, etc.
FIG. 4 illustrates an example networked configuration. In this example, a system 404, which may host an online commerce website (e.g., a shopping website) is coupled to a network 402 (the Internet in this example). The system 404 includes a Web server that hosts user interfaces for providing network settings, such as those described above with reference to FIGS. 2A-C. In addition, the system 404 in this example hosts a barcode generator that converts data provided by the user via the user interfaces (and optionally other data as well, such as Uniform Resource Locaters) into barcodes. The system can include a user database storing user registration information (e.g., user contact information, payment information, etc.), user preferences, target device identifiers, user specified network settings, barcode information, order histories, pending orders, electronic catalogs including item information (e.g., name, cost, type, etc.), and/or other information.
User terminals 406, 414 (in this example, personal computers associated with two different users and located in different locations), access the system 404 via the Internet 402. The terminals 406, 414 in this example include full keyboards (including a key for each letter and for the numbers 0-9, and well as keys for certain punctuations), displays, local memory (e.g., a hard disk drive and/or FLASH memory, RAM, etc.), and network interfaces (e.g., wired and/or wireless network interfaces). As similarly discussed above, the terminals 406, 414 can be used to access user interfaces, enter data, and receive communications provided by the system 404. The terminals 406, 414 may be equipped with browsers to access Web sites. For example, the terminals can display a barcode generated by the system 404 and provided via a webpage or via email. The terminals 406, 414 are connected to corresponding printers 408, 416, which can be used to print the barcodes.
Wireless network access points 412, 420 provide wireless the target devices access to an Internet connection.
Target devices 410 (a touch screen portable personal digital assistant in this example) and 418 (a video game system in this example) include or are coupled to optical scanners which can be used to scan the barcodes, as discussed above.
FIG. 5 illustrates another example target device. The device includes an integral barcode scanner 502, dedicated buttons 504, 506 (such as the fixed function buttons discussed above with respect to FIGS. 3A-C), programmable function buttons (such as the changeable function buttons discussed above with respect to FIGS. 3A-C), a display 512, and an antenna 514. The device may include a processor, memory (e.g., a magnetic disk, FLASH memory, and/or RAM), a wired and/or wireless network interface, and an interface to removable memory. The processor may be coupled to the memory, network interface(s), display, and buttons. The device memory may store programs, user interfaces and data, such as a product database. A program may be use optically read data (after being converted to digital data) to implement corresponding device settings (e.g., network settings, display settings, energy conservation settings).
Thus, described above are efficient methods and systems for performing device configuration, including network configuration, even when certain user interface devices (e.g., a large screen, a full keyboard) are lacking.
It should be understood that certain variations and modifications of this invention would suggest themselves to one of ordinary skill in the art. The scope of the present invention is not to be limited by the illustrations or the foregoing descriptions thereof.

## Claims

1. A configurable computing system, comprising:
a computer device; and
non-transitory computer readable memory having program instructions stored thereon that when executed by the computing device cause the system to perform operations comprising:
reading a barcode or other computer readable visual indicia;
utilizing the information read from the barcode or other computer readable visual indicia to determine how to configure local wireless network settings of a local wireless network interface of the configurable computing system without a user having to manually key in the wireless network settings on the configurable computing system to enable the configurable computing system interface to access the local wireless network, wherein the local wireless network settings include a local network password needed to communicate over the local wireless network;
using the determined local wireless network settings of the local wireless network interface of the configurable computing system to enable the configurable computing system interface to access the local wireless network without the user having to manually key in the wireless network settings on the configurable computing system, wherein the wireless network settings are used to enable the configurable computing system to communicate over the local wireless network of the user.

2. The system as defined in claim 1, the operations further comprising receiving the information scanned from the barcode or other computer readable visual indicia from the configurable computing system.

3. The system as defined in claim 1, wherein the received information scanned from the barcode or other computer readable visual indicia comprises:
a proxy name, and
a port number.

4. The system as defined in claim 1, wherein the operations are further configured to provide at least one user interface configured to receive:
a user name,
user contact information,
an identifier of the configurable computing system.

5. The system as defined in claim 1, wherein the configurable computing system comprises:
an optical sensor;
the local network interface; and
no more than nine physical keys.

6. The system as defined in claim 1, wherein the system is configured to receive, over a network, the scanned information from the configurable computing system.

7. A method comprising:
receiving, at a configurable computing system comprising a local wireless network interface, information scanned from a barcode or other computer readable visual indicia;
utilizing, by the configurable computing system, the information scanned from the barcode or other computer readable visual indicia to determine how to configure local wireless network settings of the local wireless network interface of the configurable computing system without a user having to manually key in the wireless network settings on the configurable computing system to enable the configurable computing system interface to access the local wireless network;
using the determined local wireless network settings of the local wireless network interface of the configurable computing system to enable the configurable computing system interface to access the local wireless network without the user having to manually key in the wireless network settings on the configurable computing system, wherein the wireless network settings are used to enable the configurable computing system to communicate over the local wireless network of the user.

8. The method as defined in claim 7, the method further comprising receiving the information scanned from the barcode or other computer readable visual indicia from the configurable computing system.

9. The method as defined in claim 7, wherein the received information scanned from the barcode or other computer readable visual indicia comprises:
a proxy name, and
a port number.

10. The method as defined in claim 7, the method further comprising providing at least one user interface configured to receive:
a user name,
user contact information,
an identifier of the configurable computing system.

11. The method as defined in claim 7, wherein the configurable computing system comprises:
an optical sensor;
the local network interface; and
no more than nine physical keys.

12. Non-transitory computer readable media having program instructions stored thereon that when executed by a computing system cause the computing system to perform operations comprising:
receiving information scanned from a barcode or other computer readable visual indicia;
utilizing the information scanned from the barcode or other computer readable visual indicia to determine how to configure local wireless network settings of a local wireless network interface of a configurable computing system without a user having to manually key in the wireless network settings on the configurable computing system to enable the configurable computing system interface to access the local wireless network, wherein the local wireless network settings include a local network password needed to communicate over the local wireless network;
using the determined local wireless network settings of the local wireless network interface of the configurable computing system to enable the configurable computing system interface to access the local wireless network without the user having to manually key in the wireless network settings on the configurable computing system, wherein the wireless network settings are used to enable the configurable computing system to communicate over the local wireless network.

13. The non-transitory computer readable media as defined in claim 12, the operations further comprising receiving the information scanned from the barcode or other computer readable visual indicia from the configurable computing system.

14. The non-transitory computer readable media as defined in claim 12, wherein the received information scanned from the barcode or other computer readable visual indicia comprises:
a proxy name, and
a port number.

15. The non-transitory computer readable media as defined in claim 12, wherein the operations are further configured to provide at least one user interface configured to receive:
a user name,
user contact information,
an identifier of the configurable computing system.

16. The non-transitory computer readable media as defined in claim 12, wherein the configurable computing system comprises:
an optical sensor;
the local network interface; and
no more than nine physical keys.