Posted on

Adding Cruise Control Using an IO Nano

The PT Motorsport GC8 isn’t your average 1990s shitbox, under the base model GX exterior is the 3 litre flat 6 engine and 6 speed manual transmission from a Spec B Liberty. All of this is controlled through a Haltech Elite 2500.

One of the things which still needed to be added to make this a truly epic highway cruiser, was cruise control. To integrate with the Haltech we opted to use a PT Motorsport IO Expander – Nano, the reasons for this were two-fold. It is inexpensive, and the small form factor meant it could easily be tucked in behind the dash.

As the factory cruise module has had some of the wiring highjacked as part of the engine swap, the choice was made to tap into the factory wiring under the steering wheel. As the IO Nano only needs 4 wires from the ECU this meant a reduced number of long wires as well.

The factory Subaru cruise control uses a single main switch to activate cruise control, and then a three wire system for setting, cancelling, and adjusting speed.

The main switch simply uses two wires and is just a switch. There are extra wires, but they are just for the light (more on that later). To wire those into the IO Nano, one wire needs to be wired to one of the Digital Inputs and the other needs to be connected to one of the Ground pins.

The other switch which controls the majority of the cruise control functions is more difficult as it uses three wires. Some ECUs allow for cruise control to be wired using more than one input, which would simply mean wiring the common wire to 5V and each of the other wires to one of the Analog Inputs. The Haltech only allows for single wire cruise control operation. This isn’t a big deal, it just means that a resistor bridge must be made to allow both wires to be joined to a single Analog Input and function properly.

This is how the factory switch operates internally:

When either the set or resume buttons are pressed 12 volts can flow directly to the cruise control module through the dedicated input for each of those wires. The cancel switch operates by using a resistor as part of a voltage divider, when pressed a specific voltage is sent through the pins for set and resume, but due to the voltage being lower the cruise control computer knows that the cancel button has been pressed.

As we want to simplify this down to a 5V connection and then a single analogue voltage we will create an extension of this resistor based voltage divider.

There are a couple of things happening in this circuit, the voltage input is coming from the 5V pin on the IO Nano, to prevent all the analog inputs from “floating” a pulldown resistor is added to the AN1 input, which ensures that the ECU sees 0V when no buttons are pressed.

When the set button is pressed, 5V is supplied to the AN1 pin as there is not resistor to divide the voltage.

When the resume button is pressed the 1k Ω resistor divides the voltage and 2.5V is supplied to the AN1 pin.

When the cancel button is pressed, the resistor built into the factory switch divides the voltage and supplies 4.29V to the AN1 pin.

The rest of the setup is as below:

The circuit above outputs to the IO Nano AVI 1.

The DPO is used to trigger the cruise light on the cruise control button (both globes are currently blown on ours), this could also trigger a dash light if your car is equipped with one.

The separate enable input uses Digital Input 1 on the IO Nano to detect when the cruise control button is pressed and activates the whole system.

The wiring for the Enable button is as follows:

The wiring for the light is as follows:

The other requirement for running cruise control with a Haltech ECU is that a clutch switch is installed. The factory clutch switch and wiring was still in place, but not hooked up to the Haltech. To fix this, the two wires of the factory clutch switch were wired directly to the IO Nano.

It was then simply a case of assigning the clutch switch to Digital Input 2 in the Haltech NSP Software.

The final wiring was as follows:

If you are looking to add functionality to your project, the PT Motorsport IO Expanders are a great way to do so, with units available at every price point, and the flexibility to integrate them into every project.

  • Product on sale
    CANbus IO Expander - DTM
    CANbus IO Expander – DTM
    $249.00
  • Haltech Elite 2500 ECU HT-151300
    Haltech Elite 2500 ECU HT-151300
    $2,795.00
  • Product on sale
    CANbus IO Expander - Mini
    CANbus IO Expander – Mini
    $125.00
  • Product on sale
    CANbus IO Expander - Nano
    CANbus IO Expander – Nano
    $69.00