Writing‎ > ‎

Review of the Harmony Logitech 676 Remote

Logitech's Harmony remotes represent a radical change from other remotes I've used, with a couple of things that make them stand out from the crowd: the programming software and it's activity-centric nature.

The Harmony remotes are technically learning remotes*. However, instead of the rather complicated dance on the buttons required by learning remotes to program a button, you program the Harmony remotes via an application on your computer. When you're done, you plug the remote into a USB port on the computer, and download the configuration into your remote. Other remotes have computer connectivity, but I've not yet encountered one where all the programming could be done on the computer.

The other thing that makes this remote stand out is that it emphasis activities, not devices. An activity is something you do with your A/V system. This includes things like Watch a movie, Watch TV, Listen to music, and so on. But you can create arbitrary activities. The remote supports activities directly, and works best when you use it for activities.

Programming the remote


You start programming the Harmony remote by telling the software what devices you have. It offers a menu of device types, and you select the manufacturer for the ones you have, and click next. You then input the model numbers for all those devices. It uses that to look up the command codes for that device, and will let you use all of them when you get around to programming the device. The weakness is that you can't specify multiple devices of a single type at setup, but you can add the devices after you've done the initial setup.

When I say all of the command codes, I do mean all of them. The Harmony software gives you all the codes that any member of the family of devices you are using knows. So you'll find commands for things that your device can do that the original remote couldn't do. For instance, Sony TVs with multiple inputs understand commands to select some input directly, but the Sony remotes don't always support that. The Harmony software does. You'll probably find commands that your device doesn't understand that some other member of that device family does. Continuing the example, all Sony TVs share the same command set, so you're liable to find commands to select an input that your TV doesn't have because some other Sony TV has that input.

The programming interface is straightforward. There's a picture of the remote on the left, and next to that is a list of every programmable button on the remote. Next to each of those is a pop-up menu of all the commands that the device understands. You can assign any device command to any programmable button on the remote. When you've got them all set the way you want, you click done.

Like universal remotes*, the default settings for the device set most of the buttons to reasonable things. Since the command set is much more extensive than typical universal remotes, the functionality is more complete. The process resembles that of a universal learning remote*, in that you wind up fine-tuning the advanced and esoteric functions. Except the interface is much easier to deal with, and the preinstalled command set is more complete.

Activities, not devices

After you tell the software what devices you have, you tell it what activities you do. The available activities include things like Watch a movie, Watch TV, Listen to music, and so on. Picking one of these picks a wizard to help set it up. There's also a Generic activity for everything else. After you've created an activity, you can rename it to whatever you want.

Some of you may have noticed a bit of missing functionality in the device programming description, in that there's no way to make the volume controls control some other device, which is a typical feature of device-centric remotes. And you're right – that's missing. When the Harmony remote is configured for a device, it can only control that device.

In practice, this isn't a problem, because you normally use the remote to control an activity. The programming screen for activities is similar to the one for programming a device, except that there is a column of command menus for every device involved in an activity. Here's where you set the volume for an activity to control the appropriate device. Of course, you can set any programmable buttons to send any command for any device involved in the activity. Further, you can have the remote send commands to multiple device. It's not a true macro facility, because you can only send one command to each device, but it's a useful ability nonetheless.

As with devices, the default configuration for an activity is mostly correct. The activity setup wizard collected information about the activity needed to do this. Again, after the initial setup, it was mostly a matter of fine-tuning the controls to get things just the way I wanted them.


The above is all true if the database has all your devices in it, and knows all the commands for the device. If you have a new enough device, that won't be true, and you'll have to teach the database – not the remote – the missing commands.

This is slightly more time-consuming than for a normal remote, because it creates a little application for each button, and you have to download and run that for every button. This is the only part of the process where a high-speed Internet connection is nearly mandatory. On the other hand, pressing a Learn button, and possibly typing in a name, is much easier than the button dance required by most learning remotes to learn new commands. How hard this is will depend on how you've got your browser and the Harmony software set up. If things are right, it will all happen automatically. If you are more paranoid about downloaded software, you'll have to take some steps manually.

The software

Interestingly enough, the software is actually web based. The information about your configuration is stored on Logitech's servers. This could be a problem if Logitech ever stopped supporting the remote. On the other hand, it means that you can do the programming from pretty much anything with a browser. I program it from a Unix system quite regularly.

The web site seems well done – it checks your browsers features, not your browser. It sometimes complains about FireFox, which is only fair, as FireFox will sometimes complain about what it's doing. In some cases, after this FireFox will be stuck on that page. Logging out and back in again seems to fix this. Logitech recommend IE or Netscape, but it works fine with Safari as well.

On the other hand, it appears that you have to install device-specific drivers for the connection to the remote. This means that while you can program the remote on any system with a modern browser, you can only install the configuration from a system that Logitech supports, which is Windows or OS X, though as of March 10, 2006 there is no support for Intel-based Macs.


You might have noticed there's no macro facility per se. That's because macro keys are normally used to prepare the system for some activity, and the Harmony remotes support activities directly. You can specify arbitrary commands and delays for each device involved in an activity when you switch to that activity.

For instance, I have Watch PVR as one activity, and Listen to XM as a second one. Both use the DirecTV DVR. Watch PVR issues the PVR command to go to the list of recorded shows when I start it, and switches to the only channel I watch live at the same time. Finally, it switches my receiver to Movie mode, which causes it to use the center channel for voices, which sounds better than using the left and right speakers for that. Listen to satellite just switches the receiver to normal mode, which doesn't use the center channel, but sounds better for music sources. It doesn't change the channel, but lists my favorite music channels on the Media button.

This is one of the parts of using the Harmony software that's remotely clumsy. This is both noticeably harder and noticeably easier than programming a macro on a conventional remote. It's notably harder, because adding a button requires three or four steps:

  1. Select a device if the right one isn't selected.
  2. Click Add to add a command.
  3. Select the command to add.
  4. Click Next to actually add the command.

It's noticeably easier because you have the list of commands in front of you, can remove commands from it, and move them around in the list. Programming a short sequence is harder than a conventional remote, because of all the extra actions. Programming a long sequence is easier, because you don't have to start over from scratch if you make a mistake. I've programmed longer macros on this remote – not even counting the part done automatically – than I ever set up on a conventional remote.

The gotchas

The one real problem was that the box had out of date software in it. Worse yet, the link to the correct software on the web site was broken. However, the tech support folks attitude seemed to be that they were going to make it work. They eventually got the proper software installed on my machine, and got everything working fine.

Over the long run, the software isn't quite as flexible as I would wish. For instance, you can't have different sound or picture configurations for different activities if they use the same device for sound or picture. And it appears that not all conceivable configurations options can actually be configured, though with creativity, some rather odd things can be done. For example, to get the media listing I wanted (just music channels, not a program guide) I wound up creating my "Watch PVR" activity using the "listen to satellite music" wizard, and then adding the TV set to it to get the TV controls I wanted for watching the PVR.

Using the remote

Look and feel

The remote is made of plastic, and so fairly lightweight. It's slim enough to fit comfortably in one hand, and the bottom is contoured to fit your fingers. It's very easy to hold, the buttons have a solid feel to them. There are sometimes problems finding the right button, particularly among the media control set. While it's not outstanding in this area, there's nothing drastically wrong with it either.

The activity-centric stuff works fairly well, but isn't perfect. In particular, the remote assumes that it knows what is and isn't powered on, and will adjust things from that state. If you start powering things on and off from the device configurations, it doesn't know what's on and off, and will put things in the wrong state when you select an activity. This afflicts the off button as well, which tries to turn off everything it thinks is on. Of course, if you have the remote properly configured, you won't be turning things on and off except via activities, so this isn't much of a problem.

This is where the help button comes in handy. It knows what state things should be in, and walks through the devices, asking you if various things are set right, and correcting the things that aren't. This turns out to be really useful, all by itself.

Some of you might have noticed that there was no button for selecting an input, a common feature of device-centric remotes. That's because when you select an activity, all the devices involved are sent to the right input. Devices not involved are shut off, but you can change that. However, the commands for such are available, and can be programmed on whatever buttons you want. In particular, you can put them on soft buttons with whatever labels you want. So even though my TV remote doesn't let me go to a device directly, the Harmony remote in the TV device configuration has soft buttons labeled DVD, PVR and so on that switch directly to those inputs. This is a major improvement over other remotes I've used.

To top it off, the 676 lets you swap the faceplate out with one of several that come with the unit. While this had nothing to do with why I chose this remote, it is kinda cool to be able to have it in my favorite color.

The buttons

Now lets look at the actual remote:

At the very top of the remote are the help and off buttons. These are not programmable.

Below that, where you'd normally find the device buttons on a remote, is a set of four activity buttons. Three can be assigned to any activity you have defined in the software. The fourth brings up a menu of all the defined activities, and can't be programmed.

Next is an LCD screen with six buttons pointing at it. These are soft buttons. The programming software lets you put any label you want on the button, which is what makes them soft. You can have as many soft buttons as you wish. You can assign any soft button a device command just like a hard button.

Under the LCD are buttons labeled device, media and next. The device button brings up a menu of the devices in the system on the LCD, and you can select that device to get the configuration you created for it. The media button brings up a menu of media for the device or activity that is currently active. The next button goes to the next page in the LCD. These buttons are not programmable.

Under the LCD controls is a complete set of media controls. All these buttons can be programmed.

Below that is a five-way pointing device surrounded by six fairly generic buttons and two – at the top – labeled sound and pic. All but those last two can be programmed.

The sound and pic buttons change the behavior of all the programmable buttons on the device, creating yet another type of configuration. When you program a device, you can also program the sound and pic configurations for that device, with the same interface as you used to program the device configuration. When the remote is configured for a device, the sound and pic buttons switch to the sound or pic configuration for that device. When the remote is configured for an activity, the sound and pic buttons switch to a configuration for the device that deals with the sound or picture for the activity.

Next is the typical volume/channel cluster, with up and down controls for each, a mute button, and a button to go to the previous channel. These are all programmable. There's also a glow button. This is normally the only button on the remote that glows. Pressing the glow button causes all the buttons and the LCD light up, or to stop glowing. The glow button cannot be programmed.

At the bottom of the remote is a numeric keypad with the usual enter and extra button, all programmable.

This is the first remote I've used with both a large collection of hard buttons and a few soft buttons. This seems to work better than either mostly soft buttons, or all hard buttons. The hard buttons provide most of the functionality you want, and the soft buttons let you put real labels on the esoteric functions.

The post setup gotcha

Doing things as above has revealed a quirk in the configuration software, though. The activity configurations are interrelated, and affect one another. In particular, when you are configuring an activity, the devices are listed along with the role they play in that activity. Roles are things like Video Display and Volume Control, or – for things that don't have well-defined roles – passthrough. In theory, the configuration for each activity is completely independent of the configuration for other activities. In practice, the configuration software propagates the configuration of a device in a role to every other activity where that device is in the same role. This represents a change to deal with complaints from users. Some people like it, some people hate it.

If you want the device to have the same configuration in every activity – which isn't unusual – this usually makes things much easier on you, because you can change one activity and all of them change. On the other hand, if you desire them to be different for some reason – say you want a device command on a button that's unused in one activity, but not others – then it's a problem, because you can't do that if the device has the same role in both activities.

To further confuse things, the roles are assigned by the activity creation wizard, and not by you. In particular, the devices that the wizard knows are given fixed, meaningful roles like Video Display. The devices beyond that are named Passthrough, with a number appended for those beyond the first. Since the configuration is only propagated to the same device in the same role, you can't rely on this working for devices that may not have fixed roles.

There are two ways to defeat the propagation. One is to use Generic Activities wherever possible. With Generic Activities, every device is a Passthrough. You just have to make sure that you add devices so that they come up as different passthrough numbers in the activity. The numbers are given in the sequence that the devices are added to the activity. You can even create holes in the number sequence by adding a device prior to other devices and later deleting it. The downside of this is that you can't configure the media menu for generic activities.

The second way to defeat propagation is to create multiple devices in the configuration for the devices you want to have different configurations for. This are called clone devices. You just add a second device like the first one, and then configure it as having no commands to turn it on or off. You then configure a clone as the primary device for the activity where you want that configuration, and add the original as a passthrough device so it gets turned on and off properly.


Initial impressions

So far, I'm very happy with this remote. Programming this remote is much saner than what one goes through with remotes that can't be programmed from the computer. The activity-centric operation makes common activities much easer than the device-centric approach found on other remotes. I expect my family will be much happier with this as well.

The more I use this remote, the more I like it, and the less likely it becomes that I'll ever go back to a device-centric remote.

After the first month

Ok, a month is short notice for an update to a review, but I got it over the last month. With typical device-centric remotes, I put my most used functions on the universal remote, and kept the original remote around for emergencies. Originally, I was still emulating that with this remote: programming the devices with the most-used device functions, so that they would be easy to use when the remote was in device mode.

With this remote, that's simply wrong. The activities are were all the action is. I've since put most of the devices back to the default configuration, and deleted only the commands that I know my device doesn't understand. Yes, this makes the commands harder to use in device mode. However, if I find I'm using one regularly, I'll configure it so it's available in the activity mode. If I only use it in one activity, I'll put it on the main configuration for that activity. If I use it in on that device in multiple activities, I'll put it in the sound or picture mode for that device, making it available via that button for all devices that use that device via the sound or picture buttons. This makes it easy to use in the activities modes, and the device modes are reserved for emergencies. The original equipment remotes have all gone into storage.

The 880

As I got more and more into activities, I found myself creating more of them. In particular, part of setting things up for different light conditions involves a multi-step configuration of my TV. At this point, I wish I had real macro buttons, so I could make that available in a number of activities. The Harmony way to do this is with multiple activities. So far, I've just duplicated the most popular one this way, but I've still got lots of activities. Far to many for the three activity buttons, and enough that it's hard to page through the list of activities on the 676. So I bought an 880, with a larger LCD display that shows eight activities at a time. These can be had for under $100 if you find a sale, and under $150 fairly regularly.

There are two operational differences between the 676 and the 880. There are no dedicated activity buttons, just an activities button that displays a menu of 8 activities. And there are no picture and sound modes, instead you use the larger LCD menu for those commands.

The button layout is radically different. So is the button feel; where the 676 had high, rounded buttons that are clearly separated, the 880 has flat, square buttons that touching. Except for the buttons that are integrated into what feels like a decorative ring.

I love the longer display. The button are going to take some getting used to.

Remote types

Since the industry seems to have settled on terminology, let's discuss it here. Third-party remotes generally come in three flavors:

Universal remotes
These store the infrared codes for lots of devices internally. You tell the remote which manufacturer made the device you want to control, and it uses the appropriate set of codes. Universal remotes typically give you access to the basic functionality of a device, but not the the advanced or esoteric functionality. These make a good, inexpensive replacement for a lost or damaged remote.
Learning remotes
These actually predate universal remotes. They have an infrared sensor, and can read commands from other remotes and play them back. You can learn arbitrary commands from other remotes, and hence get access to any function that you have on any other remote, so you get all the functionality of the old remote – providing you still have it. The downside is that learning all the codes for a complex remote is a time-consuming process.
Universal learning remotes
These combine both features into one remote. You set the device code to program most of the buttons on the remote, giving you all the basic functionality. You then learn the advanced and esoteric functions from the original remote.
Device-aware remotes
The thing that the other remotes all have in common is that they are button-centric: commands are issued by buttons, and the commands you can issue come from remote buttons. The Harmony remotes and other high-end remotes understand that devices have commands that may not be on remote buttons, and have facilities to make those available to programmers.