Car Hacking: Permanent fix for Civic cruise control switch

A few months ago, the cruise switch on my 2007 Honda Civic changed from a toggle to a momentary; the mechanical latch in the switch failed. This switch acts as a master enable for cruise control functionality, so the latch failure meant that I had to hold the switch down to use cruise control. The options to fix it were to pay someone two to three hundred or more to do it for me, pay over $80 to get a new switch assembly and install it myself, or attempt to solder a resistor that cost me a penny years ago into the right spot. Only that last option can ensure the problem will never happen again. I figured that if I was going to take apart enough of the steering wheel to replace the switch assembly, I may as well do a little more disassembly to put in the resistor. As far as I’m concerned, all that disassembly is the hard part; figuring out where to put the resistor and soldering it there should be relatively simple. So I did, and it works; it is just like the switch is always down. Since I pressed down the cruise switch for the last time before it broke maybe a week after I got the car and then left it there for years, the fix works just fine for me.

What follows is how I did it. The specifics are for the car I have, but the general concept will likely work for many other cars, too. The first part is disassembling the steering wheel; skip to part 2 below if you don’t have something similar to an 8th generation Honda Civic (2006-2011 models). If you so have something similar (an Accord may prove similar enough) and already know how to take apart the steering wheel, skip to part 1.

I took a few pictures of this process that do not appear here. You can find them on Flickr.

Warning: I will not take responsibility for anything that goes wrong should you attempt to make the changes I document below. Good luck!

Part 0: Disassembly of the steering wheel

Caution: This assembly contains an explosive initiator.

The first step is to disconnect the car’s battery by taking off the negative terminal connection only. After that, remove the air bag. Without power, the air bag cannot deploy. The air bag is in an assembly with the horn switch in the center of the wheel. It is secured by two bolts with Torx-style (ISO 10664)  heads, both of which will need a good deal of torque to remove. You may want to see if you can loosen one before disconnecting the battery. I had to use my drill, which doubles as a very bulky and torque-y electric screw driver. The bolts are on the right and left sides, and are placed parallel to the ground and perpendicular to the car’s direction of travel. There are no covers and they are the largest bolts on the steering wheel, so they are easy to spot.

After the bolts are removed, the air-bag-horn assembly will rest in place. It is still connected by two wire connectors. The first is accessible from the underside of the wheel. There is a panel easily removed with a flat head screwdriver; remove it. Inside is a yellow wire connector for the air bag that is made to ensure a proper connection and ensure that it won’t come loose. At one end is a black slider; slide it closer to the end and then pull the ends apart. It should disconnect easily, but will resist until the slider is moved. The connector is keyed so that it only goes together one way.

From the top side, regular driver’s perspective, pull out the air-bag-horn assembly. Next, move its end of the yellow connector around some plastic stuff to avoid pulling on the wires. After that, disconnect the other wire. It is green with an odd connector that has a strip of exposed metal. On the black plastic of the connector is a little button and the text “push” next to it. It might be hard to see if you aren’t looking closely or have poor lighting. When pushed, the metal strip is easily removed from the plastic end. After this, the air-bag-horn assembly is completely disconnected.

The wheel is sandwiched by two plastic covers. The cruise switch assembly is attached to the front plastic cover, so that is the next item to remove. It is held in place by six screws from the back side of the wheel, and two more made accessible by the removal of the air bag. These are also two sets of screws; the two from under the air bag are different from the six on the back of the wheel. Start with the easiest two. These are on the bottom middle of the wheel when the wheel is positioned level, like for moving straight ahead.

Hard to find screw

Hard to find screw

The remaining four are difficult to get at. There are two on each side of the wheel that are found easily by looking for a cylindrical well; a screw is at the bottom. I found I needed to turn the wheel so that I had room to use a screw driver (the drill is far too large). I had to use the space in front of the lower instrumentation panel, the one with the tachometer, to fit the screw driver. If you need to do this, I suggest placing a soft towel in front of the instrumentation panel to avoid scratching it. I found that the other two screws are hard to find when looking at the back of the wheel. It was easier to find them by looking from the front of the wheel through the opening made earlier in this disassembly. Looking from the front also made it easier to guide the screw drive to the screw head.

The final two screws are a little more obvious; you may already have found them by this point. One is up and to the left of the trademarked word “Honda” in the appropriate font. To the right is a white label stuck on, and further right and up is the other screw. After removing these, disconnect the wiring harness in the center of the wheel. There a tab to secure it on the center bottom of the connector. Now the front plastic piece can be removed.

Part 1: Getting to the cruise switch

Cruise control switch assembly

Cruise control switch assembly

The cruise and audio controls are in separate assemblies attached to the front plastic piece and held by two screws each. Disconnect both sets of controls. The plastic cases of each are held shut by four clasps, two each on the top and bottom. I had to use a couple of small flat head screw drivers to release the clasps. Once you’ve done this on the cruise control set, you’ll see two circuit boards connected by a ribbon cable.

The board on the right is the one connected to the wires that leave the control’s case. Remove its two screws. After this, the board isn’t really secured to the case, but it still won’t move far because the incoming wires are held in place by a zip tie. Destroy that tie so the wires are no longer secure. So far as I can tell, there is no need to replace it.

At this point, you should be able to pull up on the incoming wires and move the board away from its case. This will reveal the cruise switch; it is soldered directly to this board.

Part 2: Grok what the switch does

Cruise control switch assembly

Cruise control switch assembly

If you just want the solution I found for an 8th generation Honda Civic, skip to part 3. Be warned, however, that the cruise control switch assembly could change, even for the same car. For instance, if the switch that Honda was using when my car was built is no longer available, a new assembly could be made with a different switch part. Such a change may give you different results even if the different control assembly you have can work without modification in my car.

When the switch is depressed, it will either create continuity between two or more of the switch’s connection, or break continuity. This fix only works when continuity is made by the button press; this is likely the more common than breaking continuity.  The continuity signals to the car’s computer that the button is depressed, and then the computer will respond to input from the other cruise control switches. This fix places a resistor across the switch’s connections that have continuity only when depressed thereby causing the computer to see the switch as always depressed.

The next step is to figure out which of the switches output have continuity only when the switch is depressed. The best way to do this is to poke around the circuit with a multimeter set to signal continuity while changing the state of the switch. In the case of what I was working with, the switch has six through-hole connections on the board. The two in the middle always have continuity with each other because the circuit on the board connects them. These have continuity with the pin in the upper left only when the button is depressed.

Part 3: Modify the circuit

Cruise control switch fix ready for solder

Cruise control switch fix ready for solder

A resistor that makes the same electrical connection as is made with pressing the switch must now be put in place. I chose a resistor over a wire because a resistor will limit the current; if anything goes wrong, there won’t be much power to make matters worse. I think anything between 100 and 1000Ω will likely work. I used a 470Ω resistor because I have a bunch of 1/8 watt 470Ω resistors. The 1/4 watt variety often found at any store selling components will work, too, but I figured a smaller 1/8 watt one would be easier to work with.

Cruise control assembly with switch fix applied

Cruise control assembly with switch fix applied

I followed the traces on the board to see where I could put the resistor; it doesn’t have to be right next to the switch. I chose to place the resistor close to a wire connector on the board because it looked like it would be easier to solder the resistor there. I used the leads on the resistor to hold it in place while I soldered. After soldering, I removed the extra length on the leads to avoid shorting the circuit. I also retested continuity on the switch to be certain that the resistor was now part of the circuit and that its addition was the only change.

Part 4: Reassemble & final test

Put everything back together. Reconnect the car’s battery as the last reassembly step. Turn the key in the ignition and stop just short of starting the car. At this point, at least with a Civic, the dash light indicating that cruise control is enabled should be lit, and pressing the cruise switch should have no effect.
All done, or just starting

Tags: , , , , , , , , ,

21 Responses to “Car Hacking: Permanent fix for Civic cruise control switch”

  1. Lew Says:

    Here’s a faster and simpler solution. I cut a slice of rubber off an old washer. The piece was perhaps two mm at the top tapering to nothing after an inch or so. Push down on the cruise switch and jam the rubber sliver in the space created. Let go. If both cruise lights are lit you’re done. Fixed for nothing. If it doesn’t work the first time try again perhaps with a new rubber sliver.
    Can’t beat free!

  2. Fred Johnson Says:

    I used the “shim the switch” method on my 2001 Civic, but wanted to keep it more aesthetic on my ’07. Thanks for the resistor tip. Spent less than $20 for the soldering iron, resistors, and torx socket (that i’m sure I’ll never use again) as opposed to over $100 for the switch or $200+ for the dealer to do it!

    • jjackowski Says:

      Glad it worked for you! I’ll have to admit that I didn’t even think about putting in a shim; changing the circuit was the first thing that came to my mind.

  3. Phil Mason Says:

    2 q’s – 1. Do you think it is possible to do a shim behind the switch essentially keeping it depressed all the time? 2. is it possible to pop out the cruise button from the front and avoid taking it all apart and installing the shim behind?

    thanks – PM

    • jjackowski Says:

      2 a’s – 1. It might be. If I had looked closer at the switches, I might know, but I was too focused on the resistor solution. Given what others have written, it should be doable. 2. I doubt it. It is held in quite well.

  4. Danny Says:

    I fixed it with a penny: Press cruise button and stick a penny in the groove.

  5. Brian Says:

    Fixed my accord Euro for free after reading the above but did it slightly differently without solder and without a “wedge”.

    1- remove the switch assembly from the car.

    2- Carefully disassemble the switch / controler. On the 2004 Euro there are 3 small screws to remove on the back of the switch/control assembly and a some plastic catches that need to be carefully prised apart.

    3- On the accord, the troublesome micro switch is the same as the civic one referred to above albeit on a different circuit board.
    4-Now disassemble the switch without removing it from the circuit board by prising off the thin outer retaining cover on the switch. This is simple to do but beware of the spring inside sending things flying.

    5-lift out the white part of the switch and throw away the small spring under it. Put the small white part of the switch back in using a small amount of glue to hold it in place in the down position. With the spring removed it won’t pop back up. Once the glue is dry replace the thin outer retaining cover.
    6-Stick a small piece of foam or rubber about 3mm x 3mm x3mm on top of the white part of the switch. This is simply to assist making the control look and feel normal when everything is back together.
    7-Put the switch / control assembly back together being careful not forget any bits.

    8-reconnect and refit.

    The job took me 2 hours, cost nothing. Hope this helps some of you.

    • Craig Says:

      I finally figured out this little trick as well. Whoever designed that switch should be shot! It is meant to act like the button on a ball point pen, but after enough times being depressed, it wears away the TINY bit of plastic that makes it work.

  6. JCBabrick Says:

    I admire your resolve to find a fix for this problem and appreciate you taking the time to post the solution to the internet. I do however get a kick out of reading all the way through this solution and then to read the reply at the bottom of “stick a penny in it” – which I did and it works perfectly. I can even remove and reinsert the penny as needed.

  7. JCBabrick Says:

    Now, if you could tell me how to fix the air conditioning, which a technician left in the permanently “on” position after the air conditioning clutch failed…

  8. Jim Says:

    Thanks for the comments. It cost me 10 cents to fix, the penny was too thick, but a dime worked nicely.

  9. CJ Says:

    Just gave this a shot, checked the continuity upon pressing put a 470 resistor across them, they ended up being the same as yours, checked continuity across others. Seemed okay. But now if I press anything on that panel the car horn goes off continuosly until I press the unlock button on my keys.

    I assume it is some kind of anti-theft/tamper thing or a short going on. In any event, just now reading the switch/forced down with glue fix and might try that instead. Thanks for taking the time to post this though!

    • CJ Says:

      EDIT: I was an idiot I actually put the resistor across the absolutely wrong pins, I must have rotated the board between removing it and doing the continuity check!

      It works just fine now, but actually opted for a simpler solution that is a hybrid of the switch/glue and the penny. I put a rubber stopper under the outer witch between the inner white switch on the circuit board. It is a little less permanent this way and gets the same job done without me having to make sure I get a solid solder joint going!

  10. Ken S. Says:

    Thanks for taking the time to post this fix! The post explains the fix process well. Our 2007 Civic cruise control had this same failure. I basically used the procedure explained above and it worked. I used a 270 ohm 1/4 watt resistor. One thing that confused me was that I expected continuity with the pin in the upper left after the fix WITHOUT the button depressed but there was no buzzer sound on the tester. I figured the resistor was affecting the test. So I took a chance and reassembled the car and crossed my fingers . . . it works!

    • jjackowski Says:

      Good to hear it worked out!
      Continuity testers require a low enough resistance to report continuity, and have things like wires in mind. I’m not sure what is common for the maximum resistance threshold for continuity. Another option in cases like this is to measure the resistance. Most multimeters will do this.

  11. kellycroberts Says:

    Not sure if it’ll work for everyone, but I held the off/on switch down and then ran a bead of crazy glue alone the sides to keep the switch depressed. Has worked good ever since!

    • jjackowski Says:

      That is a pretty good idea, and simple, too. For a while after I first had the switch problem, I could only get cruise control to work if I pressed the button down far enough, but not too far. That was rather strange and might have prevented this solution from working, but I don’t think everyone has the down-too-far-and-it-won’t-work issue.

  12. ChrisM Says:

    I had the same problem with the cruise control switch on my 2006 ES. Initially I wedged the button to the on position with a piece of rubber. It did the job but I wanted to fix the switch.

    I followed the above instructions to disassemble the switch and get an idea of what to look for. I manged to find a replacement.
    “ALPS SWITCH PCB DPST LATCHING SPPH110800 SPPH110800 Push Button”. The height was different, so I had to shorten the switch stem. I fitted everything back and now it’s back in operation.

    Thanks guys

    • noved Says:

      Thanks Chris for pointing finding the PCB switch, I found that the direct replacement part is Alps part no SPPH120400. This has a shorter “peg” which eliminates the need to shorten it. I ordered it through Mouser and it was ~ $1.50.

  13. noved Says:

    The exact replacement switch is the Alps SPPH120400

    http://www.mouser.com/ProductDetail/ALPS/SPPH120400/?qs=seHrhfPpLDx9BPex2%252bN7qQ%3D%3D

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: