There is an increasing trend to design devices as though they are a computer similinar to a regular desktop computer. Here, the operating software for these devices, commonly known as “firmware”, is designed so it can be updated in the location where the device is used.
Typically newer versions of this software are delivered over the Internet, most likely via the manufacturer’s Web site or, in some cases, through device-support forums.
One common way of delivering this software is to deliver the update as a binary package that you download using your regular computer, then upload to the device in one or more different ways.
This may involve physically transferring the package to the device using removable media which you install in the device. Then you may either restart the device or select a “Firmware Update” menu option to load this software in the device. An example of this may be a digital camera or an MP3 player.
It may also include uploading the software to the device’s Web management interface as is commonly done with wireless routers. On the other hand you may have to run a firmware-update program on your regular computer which delivers the software to your directly-connected device such as a printer or, in some cases, your network-connected device.
Some consumer-focused devices like the Cyrus Lyric network CD receiver or a lot of appliances require you to connect your regular computer to a “debug” port and run a firmware-update program on that computer to install the new firmware. This can be very tedious for ordinary end-users, but a lot of these manufacturers who take this approach presume that the ordinary consumer will run the device with “out-of-the-box” software.
An increasingly-common method that is used for devices that are connected to the Internet is to invoke a firmware-update routine through the setup menu. Here, the device visits a special server run by its manufacturer, checks the version of the firmware on that server and downloads the latest version if it exists on that server. This may be performed as part of the setup routine for a new device or the device may poll the server for new firmware updates at specified times.
The main benefit from device firmware that is updated through the device’s lifespan is that there is a chance for the device’s manufacturer to “iron out” bugs that may have been overlooked in the haste to get the device to market as soon as possible. This also includes “tuning” the device’s performance at handling particular tasks as newer algorithms come along.
In some cases, a firmware update may be about improving security, which is part of the increasingly-common “cat and mouse” game between the device manufacturer and the device-modding community. It also is about adding extra functions to the device that it didn’t come with when it was launched. An example of this include Draytek adding 3G wireless-broadband WAN functionality to their VPN routers or supporting newer wireless-broadband modems on these routers.
The security issue has in recent years come to light with respect to distributed denial-of-service attacks caused by the Mirai botnet and with home-network routers running compromised firmware. Here, software engineers are calling out for manufacturers to adopt a similar process to what Apple, Microsoft and Google are doing with their operating systems where security exploits that are identified in the software are rectified as quickly as possible.
The field-updatable firmware packages can allow a device to enjoy a longer service life as newer requirements can be “baked” in to the software and rapidly pushed out to customers. Examples of this can include support for newer peripheral hardware or newer operating standards.
There may be cases where some functions offered by the device may be broken due to a firmware update; or the device’s user has to learn new operating procedures to perform some of the functions.
As well, firmware updates that are drawn down by the device may chew up bandwidth especially if there are more of the same device to be update. This can also extend to frequently-delivered large firmware updates for the same device.
One situation that I had observed was the use of a Creative Labs Nomad Jukebox as a music-playout device at the church I go to. Initially, there were problems with using this music play because the previous music-playout device, which was a MiniDisc deck had a time-remaining indicator for the currently-playing track.
Subsequent to the purchase of this music player, Creative Labs delivered a major firmware update across the Nomad Jukebox range and this firmware had a “fuel-gauge” indicator to show how far in to the currently-playing track the unit was as well as a time-remaining indicator. Once the latest firmware was applied to this Nomad Jukebox, it became easier to use the device for the purpose that the church bought it for.
Another example was the Western Digital WDTV Live network media adaptor. Through the time I had the unit, there had been many firmware updates with UPnP AV / DLNA media playback being delivered through one of the updates and full MediaRenderer functionality being delivered at a subsequent update. Similarly, this device acquired Facebook, TuneIn Internet radio and other network-service functionality.
Yet another example was where I reviewed two HP business laser printers for this site. I had noticed that once these printers received firmware updates, they were able to work with HP’s ePrint ecosystem.
A large software image for a small problem
One main issue with firmware updating is that the company typically needs to deliver a complete firmware image to fix a small problem in the device. This can be annoying as devices have a firmware size equivalent to earlier incarnations of the Windows operating environment and this figure is increasing rapidly.
A direction that may have to be looked at for firmware-update delivery is to implement practices associated with updating regular-computer operating systems. This is where smaller incremental updates are delivered to the device and installed by that device. Apple has headed in to that direction with the iOS and this has become easier for them due to the regular desktop computing system being their founding stone. This direction may not work if the firmware is to be subject to a major rewrite with a changed user-interface.
Making and breaking preferred content distribution mechanisms
The article looked at the issue of field-updatable device software as making or breaking a preferred content-distribution model. There are examples of this with games consoles having their software modified so they can play pirated, homebrew or grey-import games titles; the “jailbreaking” of iOS devices (iPhone, iPad, iPod Touch) so they run software not provided by the iTunes App Store; or DVD and Blu-Ray players modified to play pirated and grey-import movies.
The manufacturers are in a game of “cat and mouse” with these devices with the software-modification community to keep these preferred distribution mechanisms alive. This is especially with devices like printers or games consoles that may be sold at loss-leading prices so that customers buy software or accessories at higher prices through preferred distribution chains.
Limiting “out-of-the-box” functionality unless updates are performed
This can lead to devices and partner software being unable to function fully unless the device is updated.
Some examples of this may include the PlayStation 3 games console package cited in the original article where you needed to download a significant update to play a game that was packaged with the console. Then you had to download extra software on to the console from the game supplier before you could play online.
Another example would be the previously-mentioned HP LaserJet printers which needed to be updated before they could run with the ePrint ecosystem. This situation may happen if the new software requirement was ran out just after the hardware was released.
A situation that can occur with devices that implement Internet-based updating is what I call an “update loop” or “update chain”. This is where the device completes many firmware-update cycles before it becomes useable. It has happened with the WDTV Live network media adaptor but can happen with other devices.
What manufacturers could do is to allow a “once and for all” update cycle that obtains and installs the latest firmware. The server software could prepare a software build that is particular to the device’s current firmware and supply that build rather than supplying earlier software builds.
PC-style functionality addition
The trend now is to have our devices work in a similar vein to a regular personal computer, where users can add accessory hardware and software at a later date through the product’s lifecycle.
This is intensified with the “app” ecosystem that has been driven by smartphones and tablets, where users visit an “app store” to download programs to their devices. Similarly, TV manufacturers are integrating programs like Skype in their network-enabled TVs and allowing customers to add on Webcams to these sets for video conferencing.
Here, we could the thinking of adding software functionality to devices either through apps and “drivers” that are downloaded as hardware is installed or subsequent full firmware updates. The former method could work well with devices that can have their functionality evolved by the customer or installer whereas the latter method would work with devices that perform the same function all the time.
What could be looked at with device software management
UPnP Device Management
The UPnP Forum have recently released a DeviceManagement Device Control Protocol which allows for network-based configuration and management of devices. This includes a SoftwareManagement Service which looks after the issue of software delivery for these devices.
This may be of relevance where another device works as a management point for another networked device with no user interface or a limited user interface. An example of this setup may be a regular computer or a tablet running an application that co-ordinates and manages firmware updates for a variety of devices; or an IPTV set-top box that is part of a “triple-play” setup managing the software on the router that is at the network-Internet “edge”.
Use of a network-attached storage to keep device software images
An increasing number of home networks are or will be equipped with a network-attached storage device which shares data held on a hard disk across the local network. One main application for this would be to keep music, picture and video files so that they can be shared across the network.
The industry could look at ways of using these NAS (network attached storage) to track down and keep a local cache of new firmware for devices on the home network. Then the devices can check this resource for newer software images when they need to update their firmware. This may suit home networks where there are multiple devices running the same software, such as multiple units of the same games console or multiple TVs made by the same manufacturer within a close time frame.
It may sound like a practice associated with computing in the “big end of town” where the desire by business IT teams is to maintain standard operating environments; but this technique could be used to keep multiple devices from the same manufacturer up to date without using up bandwidth for firmware updates. As well, with the appropriate protocols, it could allow for a “hands-off” approach when adding new devices to the network or maintaining existing devices.
As more and more dedicated-purpose devices move towards the computing model used by regular computers, we will need to think of issues concerning keeping the software up to date and using the updates to improve the devices.