I develop a device, which can be configured via a handful of binary settings. These can be set with mechanical switches (of course, internally they are evaluated electronically)

However, optionally, one can connect this device to a computer and change these settings via a software (which is developed for the monitoring of this device).

The question is, what is the best practice (industry standard?) to handle the situation when users use both the computer program and the physical switches? due to the nature of the device, this should usually not happen very often. Even the settings themselves are not such that they would need to be changed often.

Obviously, the settings sent by the computer overwrite the physical switches. (The switches are not powered - no motors or electromagnets -, so they remain in the old position)

Let's say all the settings are "off". The user sets setting1 and setting2 to "on" via the computer. Later, he sets setting3 to "on" via the switches. Now the question is:

  • A. Because the user now used the switches as an input method, only the switches are used for the settings. The settings will become: 1:off, 2:off, 3:on This has the problem that previous settings (set by the program) are forgotten.

  • B. Only change the new setting. The settings will become: 1:on, 2:on, 3:on. The problem: the switches for 1 and 2 are still off, so later it would be strange that some switches correspond to the correct setting, some do not. Of course, the monitoring program would display everything correctly, including the switching of further switches.


The device is intended to be able to be used completely without a computer (this is why the DIP switches are built in). However, if someone does use a computer, it is usually (I think) uncommon to handle the switches, because the device will usually not be within reach (e.g. built in under a table, into a bigger system, etc.) This also leads to alternative solutions, for example if it received configuration data from the computer, it should no longer allow to be changed via the switches, ever (unless it is reset, of course).

Are there notable devices which are configurable both by mechanical switches and by computers? I don't remember seeing a printer with such properties but I can imagine some might exist. Is there a method which is used in the majority of such cases? Are there advantages/disadvantages of my listed options I did not think of?

  • You need proper feedback and status visibility. Could you install a line of dual-color LEDs above or below the switches which show the real state?
    – Aadaam
    Commented Oct 8, 2012 at 7:10
  • @Aadaam: No, there is neither the place, nor the budget for that. It might have been a good idea, but the switches are not individual, they are DIP-switches. The reason: the switches are usually not needed to be changed during normal operation.
    – vsz
    Commented Oct 8, 2012 at 7:17
  • 1
    Well, the citizen 120D matrix printer had similar (rather confusing) abilities, at least, after powerup only the hw switches mattered and then you could overwrite them. Of course it wasn't operatable w/o a computer. Either provide visual feedback or accept that that part is bad as it's cheaply done.
    – Aadaam
    Commented Oct 8, 2012 at 8:16
  • And as far as I remember there are dips with built-in leds; but the leds could be anywhere, just make it obvious what do they represent
    – Aadaam
    Commented Oct 8, 2012 at 8:20
  • Are all combinations of switches valid? Could the switch meanings be assigned so that all-on or all-off was not a valid state? If so, one could say that any switch arrangement other than all-on or all-off will "dominate", and prevent anything else from being configured; if the switches are all-on or all-off, then the device needs to be software-configured.
    – supercat
    Commented Jan 16, 2014 at 21:01

4 Answers 4


Would it be an option to go for a third alternative?

  • Either you use the physical switches for all settings, or you use the computer for all settings. There is no in-between, the computer sets all settings when it is used.

If modifying the hardware to indicate the override is not possible, then I think the least confusing way is to have the software control all switches explicitly. That way, the user has the least confusing mapping to make: "computer in use means settings are controlled from computer and physical switches are meaningless".

You could make the computer take over the physical settings as defaults, but after that they would lose their meaning.


I suggest you investigate synthesizers and MIDI devices. These machines have faced this problem since the arrival of patch storage in the late 70s. If a patch was loaded, the pots were now awkwardly in the wrong positions. Popular solutions are: -indicative leds showing the state; - one led indicating that memory settings are now used and as such, ignore current hardware setting (until a button is pushed); - working "in the dark", that is, use the latest setting, regardless of origin, yet prevent us from knowing the exact state of the board.

My suggestion is to inquire on synth enthusiasts forums. Especially vintage analog synths.

  • 2
    Some of the old patterns there were pretty awful. For example, changing volume in software would persist until you accidentally nudged the hardware controls--at which point the volume would jump to the hardware-set leves, potentially blowing out your spreakers. So perhaps not the best source of positive lessons... Commented Feb 27, 2014 at 17:48

I suspect this is going to be less of a problem than you think. It takes effort to install software to control something remotely.

As long as the software is easy to use I can't see why someone would bother going back to fiddling with tiny DIP switches. So the situation is

Initially - use DIP switches

Later (possibly) - use the software (if people can see enough benefits from it to go to the bother of installing it)

The situation is similar to using digital cameras - often they come with software which you can use to manage and copy of photos ( if you can be bothered to install the software in the first place...)

I'd concentrate on making sure that the software interface is good - so that people have no need to going back to fiddling with switches.


From your description, I assume that all switches are two-state toggles, so that each of them is either on or off.

A very user-friendly and elegant solution — if your budget allows this — is to use a combination of tap buttons and LEDs: repeatedly tapping a button toggles its LED and its associated setting.

When using the software for changing the settings, then, all that needs to happen on the hardware UI side is properly synchronizing the respective LED's status.

A company that uses this approach in a pretty slick fashion, is Universal Audio. For example, some of their professional computer audio interfaces combine a circular LED chain and "endless" rotary knob.

Have a look at this product page to see what that looks like.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.