Method of upgrading software of an apparatus
The invention relates to a method of upgrading software of an apparatus. The invention further relates to an apparatus comprising a first memory for storing upgradeable software.
The invention also relates to a computer programme product comprising computer executable code enabling a computer to execute such method.
The invention relates to a medium having stored thereon such computer programme product as well
Japanese patent application JP2002- 132368 discloses a method for upgrading the firmware of a printer. A user is notified of the availability of updated firmware. Next, he pays for software and receives a secret number. Subsequently, the number is provided to an authorization means comprised by a remote server. When the number is correct, data for upgrading the firmware from the remote server can be properly downloaded. This method takes a lot of steps and requires the issue of a number from a remote location, upon which the secret number has to be sent away again to a server, usually owned by the party to whom the payment has been made and has issued the secret number. Also, for every upgrade, another secret number has to be acquired.
It is an object of the invention to provide a method for upgrading software of an apparatus that is easier. To achieve this object, the invention provides in a first aspect a method of upgrading software of an apparatus, comprising the steps of: providing identification data stored in the apparatus, the identification data identifying the apparatus; communicating the identification data to an upgrade server; receiving data for upgrading the software in response to the communication of the identification data; and upgrading the software of the apparatus.
As the identification data stored in the apparatus identifies the apparatus for which the data is intended and/or a user who has paid, this does not have to be obtained from
the manufacturer every time again an upgrade of the software is available. This saves time and money.
In an embodiment of the method according to the invention, the data is provided to the apparatus via a further apparatus. It may not always be desirable to have the apparatus establish direct contact with the upgrade server. Furthermore, the apparatus should have dedicated communication circuitry on board for communicating with the upgrade server. This may not be desirable as well, from a cost and/or weight point of view. By providing the data for upgrading the software via a further apparatus, the first problem is solved. The second issue may be solved in this way as well; when the upgrade server should be communicated with via a complex protocol, but communication between the apparatus and the further apparatus can be established with a simple link, it may be advantageous to use the further apparatus as an intermediary.
In a further embodiment of the method according tot the invention, the method further comprises the steps of: writing the data on a medium readable by the apparatus, the writing step being controlled by the further apparatus; and providing the medium to the apparatus.
When the data is transferred from the further apparatus to the apparatus via a medium, the transfer of data to the apparatus can be controlled in a very strict way. This solves a lot of security issues and probably also lift some security concerns that may live with consumers. Furthermore, when the apparatus is designed to read said media, for example a DVD+RW recorder, very little additional hardware is necessary to implement the invention.
In yet a further embodiment of the method according to the invention, the ID is provided to a screen connected to the apparatus and the ID is communicated to the upgrade server via a further apparatus connected to the upgrade server via the first network connection.
The advantage of this embodiment is that it can be implemented easily. There is no need for providing any communication between the apparatus and the further apparatus. Also, the ID can be easily displayed on the screen; this is easy to implement in a menu structure.
In again another embodiment of the method according to the invention, the upgrade server keeps a history of past software upgrades.
The advantage of this embodiment is that a provider of the data for upgrading the software and/or a manufacturer of the apparatus can keep track of what kind of software
updates each individual user is. Furthermore, it can also be checked what data is necessary for a specific software upgrade. When a user has not upgraded the software for quite a while, it might be necessary to download additional data to properly install the newest software upgrade. The invention provides in a second aspect an apparatus comprising: a first memory for storing upgradeable software; a second memory for storing identification data identifying the apparatus; a first communication unit for communicating the identification data to an upgrade server; a second communication unit for receiving, in response to communicating the identification data, data for upgrading the software from the upgrade server; and a processing unit conceived to upgrade the software using the data.
In an embodiment of the apparatus according to the invention, the first communication unit and the second communication are one and the same.
This can be implemented when the ID and the data for upgrading are communicated via the same communication means, like for example the internet.
The invention will now be elucidated by means of Figures, each depicting embodiments of the invention and not limiting for the scope of the invention. In theses Figures: Figure 1 shows an embodiment of the apparatus according to the invention;
Figure 2 shows an embodiment of the apparatus according to the invention connected to an upgrade server; and
Figure 3 shows a further embodiment of the apparatus according to the invention with a further apparatus connected to an upgrade server.
Figure 1 shows a consumer electronics system 100 comprising a video recorder 110 as an embodiment of the apparatus according to the invention, a TV-set 150 and a control device 160. The video recorder 110 is arranged to receive and record streams of audio-visual data and interactive applications associated with those streams of audio-visual data carried by a signal 170.
To this end, the video recorder 110 comprises a receiver 120 for receiving the signal 170, a de-multiplexer 122, a video processor 124, a central processing unit like a micro-processor 126 for controlling components comprised by the video recorder 110, a
harddisk drive 128 as a storage device harddisk drive, a programme code memory 130, a user command receiver 132 for receiving signal from the control device 160 and a central bus 134 for connecting components comprised by the video recorder 110.
The video recorder further comprises a network interface unit 140 for connecting to a network like the internet or a LAN. The network interface unit 140 may be embodied as an analogue modem, an ISDN, DSL or cable modem or a UTP/ethernet network interface.
The receiver 120 is arranged to tune in to a broadcast (audio or video) channel and derive data of that broadcast channel from the signal 170. The signal 170 can be received by any known method; cable, terrestrial; satellite, broadband network connection or any other method of distributing audiovisual data. The signal 170 can even be derived from the output of another consumer electronics apparatus. The receiver 120 outputs a baseband signal that carries at least one stream of audiovisual data.
The de-multiplexer 122 is arranged to de-multiplex audiovisual data from other data that may be comprised in the baseband signal outputted by the receiver 120. The video processor 124 is arranged to render audiovisual data outputted by the de¬ multiplexer 122 in a way that is can be rendered by the TV-set 150. The output can be provided in various analogue formats as SECAM and PAL or digital formats.
Data stored in the programme code memory 130 enables the microprocessor 126 to execute the method according to the invention. The programme code memory 130 may be embodied as a Flash EEPROM, a ROM, an optical disk or any other type of data carrying medium. The data stored in the programme code memory is considered to be an operating system of the video recorder 110.
The storage device may also be embodied as an optical disk drive like a DVD or Blu-Ray drive and is adapted to store content that is received by either the receiver 120 or the network interface unit 140 for future reproduction on the TV-set 150 or for further dissemination via the network interface unit 140. The content may be processed prior to storage.
As development of consumer electronics is going faster and faster and the quality of consumer electronics equipment is increasing, there is a need for upgrading firmware - the programme code in the programme code memory 130 - during the lifetime of the video recorder 110.
As development of firmware upgrades is costly, it is preferred that users pay to get the data for upgrading the operating system of the video recorder 110 to cover those
development costs. The user can either pay at the moment of purchase of the video recorder 110 or at the reception or ordering of the data for upgrading the operating system. In both cases, it is preferred that the user receives data that can only be used on his or her equipment. When this would not be the case, also other people who have not paid for the data for upgrading the firmware can use the data as well, without a proper payment. Figure 2 will be used to elucidate how firmware upgrade data is downloaded according to an embodiment of the invention.
To obtain the proper data for upgrading, the video recorder 110 connects via the network interface unit 140 to an upgrade server 220 over a network 210 - preferably the internet - and transmits a unique ID of the video recorder 110 to the upgrade server 220 comprising a storage medium 222 having stored thereon various groups of data for upgrading firmware of various types of video recorders. With this information, the upgrade server 220 determines the type number of the video recorder 110 and also the firmware that has already been installed on the video recorder 110, either at the manufacturing site or at a previous firmware upgrade using the method according to the invention.
Subsequently, the user is prompted to pay for the upgrade of the operating system of the video recorder 110. This payment can be fulfilled in many different ways, like electronic banking, credit card or special pre-paid devices for internet payments, this is irrelevant for the scope of the invention. Having received the payment, the upgrade server sends the data for upgrading the operating system to the video recorder 110.
Having received this data, it is in first instance stored on the harddisk 128. Next, the installed operating system determines what parts of the firmware need to be upgraded. This is done by the micro-processor 126, instructed by means of computer executable instructions comprised by the installed operating system. Finally, the firmware is upgraded using the downloaded data.
Figure 3 shows another embodiment of the invention. In this embodiment, the unique ID of the video recorder 110 is displayed on the television set 150, at a request of the user inputted via the control device 160 (Figure 1). Subsequently, the user inputs this ID in a personal computer 310 and sends it via a first connection 320 over the network 210 to the upgrade server via a second connection 320. The upgrade server 220 determines the appropriate firmware to send and in return for a payment, the upgrade server 220 sends the data for upgrading the firmware of the video recorder 110 to the personal computer 310.
On the personal computer, the downloaded data is firstly stored on a harddisk drive (not shown) and subsequently stored on a medium like a removable data carrier (like
for example, but not limited to an optical disc (Compact Disc®) or a solid state memory (Flash)), in this embodiment a DVD+RW disc 350, using a DVD+RW writer station 312 in the personal computer 310. In other embodiments of the invention, the medium is an SD card or another solid state memory card. The DVD+RW disc is inserted in an optical drive unit 302 comprised by the video recorder 110 and read by the video recorder 110. The DVD+RW has data on it recognized by the operating system of the video recorder, recognizing it as data for updating the firmware. Subsequently, the firmware is upgraded as discussed before. Optionally, the intermediate storage on the harddisk drive 128 can be skipped.
In again a further embodiment, depicted in Figure 3 as well, the data for the firmware upgrade are sent from the personal computer 310 to the video recorder 110 over an electronic connection 360 like for example, but not limited to, FireWire (IEEEl 394), USB, any variant of IEEE 802.11, IrDa or Bluetooth.
In the last two embodiment just described, the ID can be sent via the personal computer 310 using proprietary firmware provided by the manufacturer of the video recorder 110 (running on the operating system of the personal computer 310), by downloading via a web browser programme like Opera, or by e-mail using well-known e-mail programmes like ELM, Lotus Notes and Eudora mail. The data for updating the operating system may be received by e-mail as well, as an attachment. Upon receipt of the e-mail, the attachment is detached and burned on a DVD+RW disc using standard software. In the embodiments described, the ID is sent over the same connection as the data for upgrading the firmware. In a further embodiment, both are sent over separate channels. For example, the ID is sent to the upgrade server 220 over a telephone line using a modem and the data for upgrading the operating system is sent to the personal computer over a broadband internet connection. In the embodiments described so far, the data to be sent to the video recorder
110 was determined automatically by the upgrade server 220 by means of the ID of the video recorder 110. In a further embodiment of the invention, a user is provided with a lot of choices of features. Upon sending the ID data to the upgrade server, the upgrade server provides the user the choices of features to upgrade the firmware of the video recorder 110. Having chosen the features to upgrade the video recorder 110 with, the upgrade server 220 provides the user with a bill on a screen, either the TV-set 150 when the embodiment of Figure 2 has been is implemented or a computer monitor (not shown) connected to the personal computer 310 when the embodiment of Figure 3 is implemented. When the user has paid the bill by means already discussed, the data for upgrading the
firmware of the video recorder 110 is available for either downloading or sending, the latter preferably by e-mail.
As mentioned before, it is desirable that every owner of a video recorder like the video recorder 110 presented buys his or her own version of the firmware upgrades and that data for upgrading the firmware is used only once, on the system for which it was intended. This is especially the case when the data for upgrading is recorded on a medium and the medium has to be inserted in the video recorder 110. Such a medium can easily be inserted in a further video recorder of the same type as the video recorder 110 for upgrading of the firmware of the further video recorder. To prevent this, an embodiment of the invention provides customization of the data for upgrading in such a way, that it can only be used by the video recorder 110, for which the data for upgrading was intended. Customizing the data for upgrading and preventing use by further video recorders can be done relatively easily, for example by writing the ID data on the disc. Next, the video recorder 110 will only accept a medium with ID data that is equal to the ID data of the video recorder 110 itself.
As a person skilled in the art will readily acknowledge, such a solution is relatively easy to hack. Therefore, encryption is preferred. In that case, the ID data does also comprise key data for encrypting and decrypting the data for upgrading. A person skilled in the art will readily appreciate that there are also other ways to customize the data for upgrading. Which way will actually be used is not relevant for the scope of the invention.
In the description the word 'firmware' has been used to specify the software, which is used for operating at least a part of the video recorder 110. The invention, however, is not limited to firmware. This could in another embodiment of the invention also be operating software to control the whole video recorder 110. Basically, with software is meant: any type of code that can be sent over an electronic connection and be put in a memory for programming a processing unit (microcontroller, microprocessor and the like).
The invention has been described by means of various embodiments. A person skilled in the art will appreciate that all different embodiments can be combined with each other to provide the optimal solution in each specific case. Furthermore, it will also be appreciated that where one element as described in the embodiment performs multiple functions or one function with several substeps, those functions or substeps may in another embodiment be performed by multiple elements. Just the same, where multiple functions have been described as being performed by multiple
elements, they may in a further embodiment be performed by one element, without departing from the scope of the invention.
In summary, the invention relates to the following: with rapid development of consumer electronics, consumer electronics devices are obsolete in a short amount of time. On the other side, they are usually made according to specs to last at least ten years.
Therefore, there is a need for upgrading obsolete devices. The invention provides a method to do so. According to an embodiment, a device owner becomes a unique number from the device, sends it to the manufacturer, chooses on or more software update for newly available features on the device, pays for the software and subsequently downloads the software. Subsequently, the software is put on a medium like a Compact Disc ® or a Flash card, which is put in the device for upgrading the internal software. The software may either be an operating system or dedicated firmware.