Why is cruise control so complicated? From left-to-right, my Chevy Equinox has a cancel button (4), a two-way slider (1,2,3), and an on/off toggle (6). Setting a cruise speed takes two actions: toggle cruise control on then push the slider down to
SET the speed. But once I’m going, there are six — six! — ways to change my speed.
- Faster: push up (
+) on the slider
- Faster: press the gas
- Slower: push down (
–) on the slider
- Slower: hit
- Slower: hit the brake
- Slower: toggle cruise control
Did you notice that in addition to the four dedicated controls the brake and accelerator also play a role? As far as I can tell the state machine diagram for my cruise control has two states, four substates, and thirteen transitions controlled by six overloaded user input controls:1
To walk through all the transitions:
- The system starts in
Cruise Off. Flipping the toggle
Not Setsubstate of
Pushing the slider towards
Cruisingat the current speed.
Cruisingthere are the six means of changing speed, each of which has a subtly different result.
+keeps the car in
Cruisingbut changes the set speed by +1 mph.
–keeps the car in
Cruisingbut changes the set speed by –1 mph.
Depressing the accelerator transitions to
Accelerator Override, where speed is controlled by the accelerator position until:
a. Releasing the accelerator, which allows the car to slow back down to the set speed.
SETwith the accelerator still depressed, which returns to
Cruisingat a higher set speed.
Pressing the brake to exit
Set but Not Cruising, where the gas and brake work as normal.
SETto return to
Cruisingat a new set speed.
RESto return to
Cruisingat the previous set speed. c. Pressing
CANCELto return to
CANCELto clear the set speed and return to the
- Lastly, toggling
OFFfrom anywhere returns to
So the cruise control can be either on or off, where the distinction is
OFF means none of the other buttons do anything and
ON means they do. When cruise is
ON a speed can either be set and active, set but suspended, or not set.
To use this monstrosity, the driver has to internalize this state machine and consciously keep track of where they’re at.2 This is an awful lot of complexity for what should be an exceedingly simple activity and reminds me of Joel Spolsky’s article on confronting users with 15 different ways to shut down their laptop.
A cruise control really only needs a single button and two states:
Cruise Off and
Cruising. Pressing it turns cruise on and sets the cruise speed. Pressing it again turns cruise off, as does—for safety reasons—pressing the accelerator or brake. That’s it, set or not, and one button replacing four. Sounds like progress to me.
Because my instinct was to try and document my cruise control by drawing its state machine diagram. Curse of being a Systems Engineer. ↩
Not previously mentioned, two heads-down display indicators to help keep track of all this: an icon on the dash that illuminates when
Cruise Onis active, and a quick notification that pops up on a digital display whenever the set speed changes. ↩