Launch Throttle Setting via Subaru Cruise Control Module

In some forms of racing, particularly rally racing, it is important to quickly and reliably get the car moving from a standing start. This is often referred to as a "launch". The idea is to reduce the likelihood of a stall, and to decrease the time required to get to racing speed.  In rally racing it is often the case that the difference between first place and second place finishers is measured in seconds. Over the two or three days of a typical event the competitors will launch many times. A poor launch, especially when the engine takes a long time to restart, can cost the team the rally win.

Thus the idea of launch control. Launch control is simply an ECU controlled throttle setting such that the engine is set to a certain RPM and held there by the ECU. The driver can then drop the clutch, with little to no damage to the drive train (clutch, transmission, differentials... etc), and be off and running. The modest amount of wheel slip during such a launch is less costly than the potential of a stall during a manual launch.

The Link Plus Configuration

The first form of launch control used by LDR was based on recommendations of the Link Plus ECU then in use. In this situation the throttle idle screw was turned in such that the throttle was always open far more than for a normal idle. The ECU then dealt with idle RPM control, for normal idle or launch, by interrupting the ignition.

The Hydra Configuration

The second form of launch control was implemented with a large solenoid attached to an unused cruise control cable. The cable was attached to the throttle in the normal way, except that the throw of the solenoid was adjusted so the throttle would be open the required amount when the solenoid was active. In this way the ECU (a Hydra, not a Link Plus) could manage the engine normally, and during launch, as separate configurations.

The solenoid used had to be strong so as to be able to pull against the throttle return spring. This meant that the solenoid had to be large and heavy. A suitable solenoid was found at a local truck stop. It was a generic replacement injector pump stop solenoid for large trucks. Big, heavy, and loud.  In the end the Hydra ECU's limited or awkward ability to handle launch control made this solenoid solution redundant, and it subsequently was removed.

A More Elegant Solution

Subaru has used conventional vacuum solenoid based Cruise Control (CC) actuators, and stepper motor based CC actuators. The vacuum solenoid CC actuators have been seen on Forester wrecks at Silver’s Junk Yard. The stepper motor CC actuators seem to be on the WRX vehicles.  

The most useful of these two options is the stepper motor version. The SMCCA (Stepper Motor CC Actuators) can hold its position without intervention. The vacuum based systems require some form of feedback loop to constantly control the level of pull needed to maintain a given RPM. The SMCCA can be set, and then ignored. It will remain in the set position until it is told otherwise or told to release.

The only question is how to tell the SMCCA what to do?

The factory wiring diagrams don't provide much detail.  They also don't suggest how the module works.  Fortunately an inspection of one disused unit has revealed the inner workings of the middle model year (2003 - ? ) version.

Internally the Stepper Motor CC Actuators (SMCCA) have the following components:

A circuit which can drive such a unit looks like this:

Schematic Page 1

Schematic Page 2

Schematic Page 3

A prototype was built and looks like this:

Picture of protoytype board

The push button in the upper right of the photo is the Calibrate button.  It will store the current position into non-volatile memory. The next time the ECU Command port is set to a logic HIGH, the board will drive the SMCCA so that it pulls the cable to the position memorized by the last Calibrate setting. The micro-controller will remember its last Calibrate setting indefinitely. Power on or power off doesn't matter. Once set the calibration is retained, until the next time the Calibrate button is pressed.