Abstract:
A method and system for upgrading software stored on a hardware unit is provided. The method includes the steps of: (i) connecting a plurality of hardware units to a computer, the computer including an upgrade algorithm; (ii) scanning, by the upgrade algorithm, for the presence of the plurality of hardware units; (iii) querying, by the upgrade algorithm, each of the plurality of hardware units for information about the software stored on the respective hardware unit; (iv) determining, by the upgrade algorithm, that an upgrade is available for the software stored on at least one of the plurality of hardware units; (v) installing the available upgrade on the at least one of the plurality of hardware units; and (vi) receiving, from the upgrade algorithm, an indication that the installation was successful on at least one of the plurality of hardware units.

Description:
FIELD OF THE INVENTION 
       [0001]    The present invention relates to methods and systems for updating radio units, and more specifically to methods and systems for simultaneously updating the software of multiple radio units. 
       BACKGROUND 
       [0002]    Modern radio receivers are sophisticated computers that receive, process, and output a wide variety of information. For example, in addition to normal programming, many radio transmissions are accompanied by metadata about the programming. For music programming, for example, the metadata may include the lyricist, arranger, performer, title of the song, length of the song, and/or other information. The metadata may also include commercial information and/or advertising. Usually, some or all of this metadata is displayed to the user. 
         [0003]    Radio receivers may also be multi-functional. For example, many radio receivers are combined with a GPS receiver and thus possess a digital display for the radio functions as well as for maps displayed in conjunction with the GPS receiver. In addition to GPS, radio receivers can also comprise other functions, such as outer camera displays including back-up cameras, and many, many other functions. 
         [0004]    Since radio receivers comprise programming for all of these functions, and since this programming—like all programming—is periodically updated for security reasons, to improve functionality, and/or to offer new functionality, then the radio receivers are preferably connected at one time or another to an external computer in order to update the programming. This can be, for example, during repair or maintenance of the car, when the car is sold or refurbished, or at many other times. 
         [0005]    Current programming update methods require that radio receivers be connected one-by-one to an external computer which then communicates with the radio receiver and updates the programming. This method is slow and inefficient, especially if many radio receivers are ready for updates. The method can also be inefficient if there are multiple different kinds or versions of radio receivers, and/or if there are similar radio receivers but with different versions of programming that must be updated. 
         [0006]    Accordingly, there is a continued need in the art for efficient methods and systems to update the programming of radio receivers. 
       SUMMARY OF THE INVENTION 
       [0007]    The present disclosure is directed to methods and systems for updating the programming of a radio receiver. For example, the method comprises a computerized system capable of interfacing with multiple radio receivers at one time, and simultaneously updating the multiple radio receivers. The radio receivers may be, for example, different models and/or may comprise different program versions to be updated. 
         [0008]    According to an aspect is a method for upgrading software stored on a hardware unit. The method comprises the steps of: (i) connecting a plurality of hardware units to a computer, the computer comprising an upgrade algorithm; (ii) scanning, by the upgrade algorithm, for the presence of the plurality of hardware units; (iii) querying, by the upgrade algorithm, each of the plurality of hardware units for information about the software stored on the respective hardware unit; (iv) determining, by the upgrade algorithm, that an upgrade is available for the software stored on at least one of the plurality of hardware units; (v) installing the available upgrade on the at least one of the plurality of hardware units; and (vi) receiving, from the upgrade algorithm, an indication that the installation was successful on at least one of the plurality of hardware units. 
         [0009]    According to an embodiment, the hardware unit is a radio unit and/or a GPS unit. 
         [0010]    According to an embodiment, the determining step comprises the step of comparing the information about the software stored on the respective hardware unit to a database, the database comprising information about software and available upgrades. 
         [0011]    According to an embodiment, at least one of the plurality of hardware units comprise software which is different from software stored on at least one of the remainder of the plurality of hardware units. 
         [0012]    According to an embodiment, the method further includes the steps of: receiving, from the upgrade algorithm, an indication that the installation was not successful on at least one of the plurality of hardware units; re-installing the available upgrade on the at least one of the plurality of hardware units; and receiving, from the upgrade algorithm, an indication that the installation was successful on the at least one of the plurality of hardware units. 
         [0013]    According to an embodiment, the querying step comprises querying each of the plurality of hardware units for information about a make and/or model of the hardware unit. 
         [0014]    According to an aspect is a system for upgrading software stored on a hardware unit. The system includes: a plurality of hardware units, each of the plurality of hardware units comprising stored software; a communications link; and an upgrading computer connected to each of the plurality of hardware units by the communications link, wherein the upgrading computer comprises a processor configured to: (i) scan to confirm that the plurality of hardware units are connected to the upgrading computer; (ii) query each of the plurality of hardware units for information about the software stored on the respective hardware unit; (iii) determine that an upgrade is available for the software stored on at least one of the plurality of hardware units; (iv) install the available upgrade on the at least one of the plurality of hardware units; and (v) provide an indication that the installation was successful on at least one of the plurality of hardware units. 
         [0015]    According to an embodiment, the system further includes a hardware unit rack into which the plurality of hardware units is connected, wherein the hardware unit rack provides power to each of the plurality of hardware units. 
         [0016]    According to an aspect is a method for upgrading software stored on a hardware unit. The method includes the steps of: (i) providing an upgrade system, the upgrade system comprising: a plurality of hardware units, each of the plurality of hardware units comprising stored software; a communications link; and an upgrading computer comprising a processor, wherein the upgrading computer is connected to each of the plurality of hardware units by the communications link; (ii) querying, by the processor, each of the plurality of hardware units for information about the software stored on the respective hardware unit; (iii) determining, by the processor, that an upgrade is available for the software stored on at least one of the plurality of hardware units; (iv) installing the available upgrade on the at least one of the plurality of hardware units; and (v) providing an indication that the installation was successful on at least one of the plurality of hardware units. 
         [0017]    According to an embodiment, the computer further includes a user interface, and the indication is provided via the user interface. 
         [0018]    These and other aspects of the invention will be apparent from reference to the embodiments described hereinafter. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0019]    The present invention will be more fully understood and appreciated by reading the following Detailed Description in conjunction with the accompanying drawings, in which: 
           [0020]      FIG. 1  is a flowchart of a method for updating the programming of a radio receiver, in accordance with an embodiment. 
           [0021]      FIG. 2  is a schematic representation of a system for updating the programming of a radio receiver, in accordance with an embodiment. 
           [0022]      FIG. 3  is a schematic representation of a user interface for an upgrading system, in accordance with an embodiment. 
           [0023]      FIG. 4  is a schematic representation of a user interface for an upgrading system, in accordance with an embodiment. 
           [0024]      FIG. 5  is a schematic representation of a user interface for an upgrading system, in accordance with an embodiment. 
           [0025]      FIG. 6  is a schematic representation of a user interface for an upgrading system, in accordance with an embodiment. 
           [0026]      FIG. 7  is a schematic representation of a user interface for an upgrading system, in accordance with an embodiment. 
           [0027]      FIG. 8  is a schematic representation of a user interface for an upgrading system, in accordance with an embodiment. 
       
    
    
     DETAILED DESCRIPTION 
       [0028]    The present disclosure describes various embodiments of a method and system for updating the programming of a radio receiver. The method comprises a computer that is configured to direct interface with a plurality of radio receivers simultaneously. The computer communicates directly with each of the plurality of radio receivers to determine what update, if any, the radio receiver requires. The computer then provides and applies the update. 
         [0029]    Although several of the embodiments described herein comprise a radio unit, it is important to note that the invention covers other hardware units encompassing software that may require upgrading. For example, instead of radio units, a component such as a stand-alone GPS receiver or other similar device may be utilized. 
         [0030]    Referring to  FIG. 1 , in one embodiment, is a flowchart of a method  100  for updating the programming of a radio receiver. At step  110  of the method, one or more radio units are received, some or all of which may require a software update or upgrade. The units may be received by, for example, any entity, such as an upgrading entity, that is responsible for maintaining, repairing, providing, and/or upgrading radio units. For example, the upgrading entity may be an entity that contracts with or otherwise engages with a radio unit providing entity to process orders. The radio unit providing entity can be, for example, a vehicle dealership or any other entity that sells, rents, or transfers radio units. For example, the radio unit providing entity can be a vehicle dealership that identifies radio units that require or potentially require an upgrade, either alone or as part of a repair or maintenance of that radio unit. 
         [0031]    At step  120  of the method, the one or more radio units are connected to an upgrading system. For example, the system may comprise an upgrading computer that comprises an upgrading program to assist in the upgrading process. Accordingly, an upgrading computer may comprise a non-transitory storage medium that stores the upgrading program or software or algorithm, as well as a processor that executes the software or algorithm. The upgrading computer will also comprise an external wired and/or wireless communications link to establish communication with the plurality of radio units. 
         [0032]    According to an embodiment, the system comprises a harness that can accommodate a plurality of radio units at one time. Each radio unit plugs into the harness, which is in turn connected to a power source. This provides power to each of the individual radio units. The radio units are then connected individually to the upgrading system. For example, if the radio units comprise a USB port, the USB port can be used to connect to the upgrading system. Each individual radio unit can be connected by a separate USB and wire to the upgrading computer or system, or there may be one or more USB or other hubs that connect the radio units to the upgrading computer or system. 
         [0033]    At step  130  of the method, the upgrading program or algorithm is executed and the system scans for one or more connected radio units. The computer may, for example, automatically detect the radio units as they are connected to the computer, regardless of whether the upgrading program or algorithm is executing. According to an embodiment, the upgrading program or algorithm comprises a user interface that guides a user through the upgrade process. For example, referring to  FIG. 3  is a representation of the user interface in which information about up to 30 different radio units can be displayed. As shown in  FIG. 3 , however, in this representation no radio units are currently connected to the system. In other words, there are no blocks showing “Device present.” In contrast, referring to  FIG. 4 , in one embodiment, a radio unit is detected in block  1 , and it is showing “Device present.” In  FIG. 5 , in one embodiment, a radio unit is detected at block  1 , and it is showing “Connected.” The device in block  1  is now ready for upgrading. 
         [0034]    At optional step  132  of the method, if the system fails to detect one or more of the radio units which are connected or believed to be connected to the system, then the system may rescan the attached units. The rescan may be automatic or may be activated manually. For example, according to one embodiment, a rescan is always performed. According to another embodiment, a rescan is activated if, for example, a unit is attached to lead or wire # 5  and is detected and a unit is attached to lead or wire # 6  and is detected, but there is no unit detected for lead or wire # 6 . According to another embodiment, a rescan is activated only if a user determines that a radio unit is attached but was not detected in the initial scan. 
         [0035]    At step  140  of the method, the system begins the upgrade process. This step may be initiated only manually by a user, or automatically after a period of time, or automatically after a rescan, for example. According to an embodiment, the upgrade process may be automatically or within a certain predetermined or preprogrammed amount of time after all radio units are indicated as “Connected,” similar to block  1  in  FIG. 5 . Referring to  FIG. 6 , in one embodiment, the system is beginning the update process and each of the connected blocks now indicates “Updating.” According to an embodiment, the operation can be aborted by clicking on a desired block or cell and then clicking an “ABORT” button. 
         [0036]    According to an embodiment, the upgrade system can automatically communicate with each attached radio unit and query the radio unit for information. For example, the upgrade system can obtain information from the attached radio units about their make, model, software version, and other information. As a result, the upgrade system can evaluate the radio unit and the loaded software in order to determine whether an upgrade is necessary. According to an embodiment, the upgrading system comprises a database of radio units and available upgrades. The system can consult this database with the information obtained from the radio units in order to determine which upgrades are available. According to an embodiment, the upgrading system comprises one or more or the available upgrades stored in its memory. Accordingly, the upgrading system will be able to automatically determine which upgrade is available for a radio unit, can locate that upgrade package in its memory, and download and install the upgrade to the radio unit. 
         [0037]    According to another embodiment, the upgrading system may require an external source to provide one or more of the required upgrade packages. For example, the system may determine that a specific upgrade package is required to upgrade one or more of the attached radio units, and will use the user interface to prompt the user to provide the upgrade package. The upgrade package may then be provided by one or more flash drives, external storage, or a variety of other sources. The system may automatically retrieve the required upgrade package from an online source via a wired and/or wireless network. 
         [0038]    The system then installs and activates the radio unit upgrade. According to an embodiment, the system may power down and power back up a radio unit, and/or may otherwise test the radio unit to ensure that the software upgrade was successful. 
         [0039]    According to another embodiment, the upgrading system may determine that no upgrade is necessary for the radio unit. For example, the radio unit may provide information to the upgrading system which allows the system to determine that the radio unit has the most recent available software version already installed. 
         [0040]    At step  150  of the method, the system receives an indication from the radio unit that the upgrade package was successfully installed and/or is functioning properly. This may be in response to a test by the system, or may be automatically provided to the system by the radio unit. For example, the radio unit may ping the computer system if the upgrade package is successfully installed and is operating properly. Referring to  FIG. 8 , in one embodiment, the upgrade was successful and block # 1  reports “Done—PASS.” 
         [0041]    According to an embodiment, the upgrading system may alternatively receive an indication from the radio unit that the upgrade package was NOT successfully installed and/or is NOT functioning properly. Referring to  FIG. 7 , in one embodiment, the system failed to upgrade radio unit connected at block # 1 , and the block reports “Done—FAIL.” The system is programmed to create a pop-up, icon, warning, sound, light, or other indication that the upgrade has failed. The user may repeat the process with just the failed radio unit. Alternatively, the system may automatically attempt to power down and power back up the radio unit, and/or to install the upgrade package, or to otherwise process the radio unit. Alternatively, the radio unit may be removed by the user for other processing or analysis. 
         [0042]    At step  160  of the method, the one or more radio units are removed from the upgrading system. According to an embodiment, the radio units may be powered down automatically or manually, such as when the upgrade is complete, and will be ready for removal. From there, the radio units may be processed or otherwise used or analyzed. According to one embodiment, for example, the radio units are removed and processed for shipping back to the source, such as back to a vehicle dealership, among many other possibilities. 
         [0043]    Referring to  FIG. 2 , in one embodiment, is a system  200  for updating the programming of a radio receiver. According to an embodiment, the system comprises an upgrading computer  210  with a user interface  220 . The upgrading computer  210  may comprise an upgrading program to assist in the upgrading process. Accordingly, the upgrading computer may comprise a non-transitory storage medium that stores the upgrading program or software or algorithm, as well as a processor that executes the software or algorithm. The user interface may be a screen, monitor, or any other display capable of transmitting and/or receiving information from a user. 
         [0044]    System  200  also comprises a user  230  which interfaces with the user interface  220  and the upgrading computer  210  to upgrade the plurality of radio units. The user, for example, can connect the radio units to the computer, activate the upgrade program, confirm that upgrade was successful or request a repeat of the upgrade, or any of a variety of other steps in the method or process. The user may, for example, remove the radio units once an upgrade is reported to be successful, and can then prepare the radio units for shipping. Many other functions are possible. 
         [0045]    System  200  also comprises a rack  240  comprising a plurality of radio units  250   a, b, c, d.  The optional rack  240  is connected to a power source (not shown). The rack also comprises a plurality of connections to provide power to each of the radio units  250 . 
         [0046]    The upgrading computer will also comprise an external wired and/or wireless communications link  260  to establish communication with each of the plurality of radio units. The communications link  260  may be a wired link such as an Ethernet cable or any other wired communication means. The communications link  260  may also or alternatively be a wireless connection such as WiFi, Bluetooth, or any other wireless communication means. 
         [0047]    As will be appreciated by one skilled in the art, aspects of the present invention may be embodied/implemented as a computer system, method or computer program product. The computer program product can have a computer processor or neural network, for example, that carries out the instructions of a computer program. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment, and entirely firmware embodiment, or an embodiment combining software/firmware and hardware aspects that may all generally be referred to herein as a “circuit,” “module,” “system,” or an “engine.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon. 
         [0048]    Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction performance system, apparatus, or device. 
         [0049]    The program code may perform entirely on the user&#39;s computer, partly on the user&#39;s computer, as a stand-alone software package, partly on the user&#39;s computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user&#39;s computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). 
         [0050]    The flowcharts/block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts/block diagrams may represent a module, segment, or portion of code, which comprises instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be performed substantially concurrently, or the blocks may sometimes be performed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions. 
         [0051]    While various embodiments have been described and illustrated herein, those of ordinary skill in the art will readily envision a variety of other means and/or structures for performing the function and/or obtaining the results and/or one or more of the advantages described herein, and each of such variations and/or modifications is deemed to be within the scope of the embodiments described herein. More generally, those skilled in the art will readily appreciate that all parameters, dimensions, materials, and configurations described herein are meant to be exemplary and that the actual parameters, dimensions, materials, and/or configurations will depend upon the specific application or applications for which the teachings is/are used. Those skilled in the art will recognize, or be able to ascertain using no more than routine experimentation, many equivalents to the specific embodiments described herein. It is to be understood that the foregoing embodiments are presented by way of example only and that, within the scope of the appended claims and equivalents thereto, embodiments may be practiced otherwise than as specifically described and claimed. Embodiments of the present disclosure are directed to each individual feature, system, article, material, kit, and/or method described herein. In addition, any combination of two or more such features, systems, articles, materials, kits, and/or methods, if such features, systems, articles, materials, kits, and/or methods are not mutually inconsistent, is included within the scope of the present disclosure.