One step per detent

Published

Couch Remote is our TV remote for iPhone and Apple Watch. On 20 October 2026 it gained its watch app. On the watch, the Digital Crown changes the TV’s volume. We wanted each click of the crown to be one step on the TV, no more and no less. The same day we measured what a held key does on the TV. That measurement shaped the crown and every long press in the app.

What a held key does

The TV takes a key in three forms: a click, a press and a release. A click is a press and a release together. We measured a held volume key on our own TV. A press gave one step at once. After about 450 ms the TV started to repeat it, at about 17 steps a second. A step or two still came after the release.

Then we sent a press and no release. The volume went from 13 to 100, the maximum, in five seconds. A press without its release repeats forever.

In a remote app, a release can be lost. The finger can slide off the key. The app can go to the background. The connection to the TV can drop. Any of these, after a press, leaves the TV turning itself up.

Above, a press with no release: the measured volume climbs from 13 to 100 in five seconds. Below, the crown: three detents move a sample level from 14 to 17, one step each, and the TV gets one request for 17.

Two kinds of key

We split the keys into two groups.

The arrows, the volume and the channel keys never send a press to the TV. When the user holds one of them, the app repeats clicks itself. After the first click, a click goes every 125 ms, and every 80 ms after 1.5 seconds of holding. A hard cap stops the repeat: 10 seconds for the arrows, 3 seconds for the volume and the channel. Because these keys send only clicks, a lost release cannot happen.

Some keys mean something else when they are held: OK, Back, Mute and Home. An app-side repeat would lose that meaning, so these keys send a real press. A guard holds them. Before 400 ms, nothing is sent, and a lift sends a click. At 400 ms the guard sends the press, but only on a channel that answered a ping in the last second. On a channel that did not, the hold becomes a click.

Every way out of a press ends in a release: the lift, a cancelled touch, the app leaving the screen, a switch to another TV, and a cap of two seconds. If the connection dies while a key is pressed, the release of that key is the first message on the next connection. Only one key is held at a time.

The crown

The watch cannot open the TV’s own connection for keys. So its keys go to the iPhone, and the iPhone sends them to the TV. The volume is different. It needs no pairing token, so the watch asks the TV directly first and goes through the iPhone only when the TV does not answer.

The crown gives the app a value that moves as it turns. We count one step each time the value crosses a whole detent in the direction it turns. A turn of three detents is three steps, and the level stays between 0 and 100. The watch also gives a haptic click at each detent, so the hand feels the same steps that the TV takes.

The crown does not send a key per detent. A queue of volume keys would keep the TV moving after the hand stops. Instead the level on the watch moves at once, and the TV gets a target: one request to set the volume to that level. If the crown turns again while a request is on its way, the new steps join into one more request, for the newest target. When the TV answers, the watch shows the level that the TV confirmed. If the TV refuses, the watch goes back to the last level that the TV confirmed, and the next turn starts from there.

When the watch does not know the level yet, it sends one volume step instead. The TV’s answer then becomes the level.

The level shows in place of the touch surface for a moment after the crown moves, then hides. With VoiceOver, the same control takes the adjust gesture, one step at a time.

The long press on the watch

The watch cannot hold a key on the TV. Each of its keys is a separate request through the iPhone, and a lost release there would repeat on the TV. So a long press on the watch’s surface sends one request for a long OK. The iPhone runs it as a press, a fixed hold of 1.2 seconds inside the two-second cap, and a release, all on one short connection.

The watch’s other keys go one at a time, in order. At most five wait in the queue, which is one drag across the surface. A drag that ends does not keep the TV moving.

What the tests check

The tests for the watch remote check each of these rules with a fake transport. The crown with a known level sends one request for the target. Steps during a request join into one more request. A refused change goes back to the confirmed level. At most five keys wait. The guard and the repeat have their own tests, with time passed in by the test.

The demo below rebuilds the pair of screens with sample data. Turn the crown, and the iPhone shows the same level.

Not affiliated with, endorsed by or sponsored by Samsung. Samsung is a trademark of Samsung Electronics Co., Ltd.

Lounge TV · YouTube

Swipe to move. Tap to select. Press an edge for one step.

Lounge TV

Turn the crown with a drag, the wheel or the arrow keys. Each detent is one step; the iPhone shows the same level. Sample data.

All notes