Skip to content

Stepper Motor

rusefillc edited this page Aug 28, 2026 · 13 revisions

Stepper Motor

Let's be clear: Stepper motors are our least favorite idle air valve option. We are not excited about them at all.

microRusEFI can control a 4-wire stepper motor using the on-board TLE8888 - see this pull request.

uaEFI and Proteus can control a 4-wire stepper motor using two h-bridges/DC motor drivers.

TunerStudio Stepper Preset

proteus Toyota pinout

How rusEFI drives the coils

useStepperIdle tells the firmware you have a stepper idle valve at all - "This setting should only be used if you have a stepper motor idle valve and a stepper motor driver installed". Which output hardware moves the coils is then a separate choice:

Setting What the firmware says it does
stepperStepPin / stepperDirectionPin step and direction signals to a dedicated stepper driver IC - the usual method
useHbridgesToDriveIdleStepper "If enabled we use two H-bridges to drive stepper idle air valve"
useRawOutputToDriveIdleStepper "If enabled we use four Push-Pull outputs to directly drive stepper idle air valve coils"
useTLE8888_stepper drive the stepper from the on-board TLE8888

The two-H-bridge option is what makes the uaEFI and Proteus case above work, and the TLE8888 option is the microRusEFI case. Boards using an H-bridge that inverts its inputs need stepperDcInvertedPins - "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)".

Wiring these up is covered on the Idle Control page under Stepper idle valve wiring. Unipolar valves are not supported.

Motor settings

  • stepperNumMicroSteps selects Full-Step (the default), Half-Step, 1/4 Micro-Step or 1/8 Micro-Step. The firmware notes: "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough".
  • stepperMinDutyCycle - "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)".
  • stepperMaxDutyCycle - "Use to limit the max.current through the stepper motor (100% = no limit)".

Travel and parking

At startup a stepper valve is retracted fully to reach a known position before moving to the commanded one - see Valve Initialization. Four settings shape that movement. The firmware ships no descriptions for these, so only their names, units and accepted ranges are given here; no values are prescribed:

Setting Unit Range
idleStepperTotalSteps count 5 - 3000
idleStepperReactionTime ms 1 - 300
stepperParkingExtraSteps % 0 - 3000
stepperForceParkingEveryRestart on/off -

Set these in TunerStudio and confirm the behaviour on a log; the "Stepper Idle Control" debug mode exists for exactly this.

Related pages

Technical sources

  • firmware/integration/rusefi_config.txt - useStepperIdle, stepperStepPin, stepperDirectionPin, useHbridgesToDriveIdleStepper, useRawOutputToDriveIdleStepper, useTLE8888_stepper, stepperDcInvertedPins, stepperNumMicroSteps, stepperMinDutyCycle, stepperMaxDutyCycle, idleStepperTotalSteps, idleStepperReactionTime, stepperParkingExtraSteps, stepperForceParkingEveryRestart.

Clone this wiki locally