PWM Output

Applies to: Standalone controller only. Written around the standalone controller's twelve 3 A solenoid drivers. IOcan's five outputs are protected 0.9 A low-side switches — the peak-and-hold settings here do not describe them. What this means

Overview

A PWM Output drives a hardware pin with a pulse-width-modulated signal. It is the main output type for solenoids, proportional valves, lamps, fans and anything else set by average power.

You command a duty cycle on the standard 0–1024 scale: 0 is off, 1024 is continuously on, 512 is half. The pin switches at the configured frequency.

⚠️ Three settings in the schema are not implemented on this output type. Mode (PWM / Current), Current limit and Proportional hold are accepted by the configuration and never read. A PWM output is always a duty-cycle driver — it does not regulate to a current, and nothing limits its current in software. They are listed in the table below and marked, rather than omitted, because a field you can set that does nothing is worse than one that is absent.

Closed-loop current control does exist — as a separate output type. The Current Output runs a real current setpoint with a resistance estimator, temperature compensation and dither. If that is what your solenoid needs, that is the output to use, not this one with Mode set to Current. See Configuring outputs.

This output's driver does measure current, and uses it to estimate the load's resistance for diagnostics and adaptation. That is not the same as regulating to a setpoint, and it does not protect the actuator.

Transmission solenoids are the main case. The drivers are on the standalone controller pinout, and the transmission side of the loom is covered by the 8HP and DKG wiring pages.

Prerequisites & hardware

  • Wire the actuator between the output pin and its return per the pinout, inside the channel's current rating.
  • Fit a flyback path for any inductive load — solenoid, relay, valve — unless the channel already provides one.
  • Size the actuator to the channel, not to a current limit you set in software. There isn't one.
  • Have a source — a driver, map or input — to command the duty.

Add it in the app

  1. Add a new output and choose PWM Output as the type.
  2. Select the pin and give it a clear name (e.g. Line Pressure Solenoid).
  3. Set the frequency to the actuator's recommended value.
  4. Set Invert to match the wiring.
  5. Configure peak and hold if the actuator needs a pull-in surge.
  6. Drive it from the strategy or map that supplies the duty.

Settings reference

Setting Meaning Unit Range / values Notes
Frequency Switching frequency Hz 100 – 4000 Zero means 2000 Hz. Values outside the range are clamped to it rather than rejected.
Invert Inverts the output on / off Combined with the channel's own hardware polarity, so the result is the exclusive-or of the two.
Peak & hold Enables the pull-in profile on / off Implemented.
Peak value Duty during the peak phase 0–1024 sint32 Implemented.
Peak time Length of the peak phase ms sint32 Implemented.
Hold value Duty once engaged 0–1024 sint32 Implemented.
Mode Inert. PWM and Current both behave as PWM.
Current limit Inert. Never read; nothing is limited.
Proportional hold Inert. Never read; hold is always the fixed Hold value.

Peak and hold

With peak and hold enabled, a command to engage drives the output at Peak value for Peak time, then drops to Hold value for as long as the command persists. It is how you pull a solenoid in reliably without cooking it holding at pull-in duty.

Both values are duty, not current — see the warning above. Set them from the actuator's data sheet and your supply voltage, then verify the actual current on the bench before running it in the car.

Common settings

PWM Output also uses the shared Name and Pin settings. Two outputs on the same pin raise fault 0x0014; a pin with no power stage raises 0x0081. See Common IO settings.

Example — peak-and-hold shift solenoid

  1. Type PWM Output, name Shift Solenoid A, on the solenoid's pin.
  2. Frequency per the solenoid data sheet — commonly 1000–2000 Hz.
  3. Peak & hold on, Peak value the duty that gives reliable pull-in at your supply voltage, Peak time 30–60 ms, Hold value the lowest duty that holds it in with margin.
  4. Leave Mode, Current limit and Proportional hold alone — they do nothing.
  5. Command it from the shift logic.
  6. Measure the actual current at peak and at hold before running it in the car.

Troubleshooting

  • Audible whine from the actuator: raise the frequency towards the actuator's recommended value, or above the audible range if it tolerates it.
  • Solenoid does not pull in, or pulls in and drops out: the peak duty is too low, or the peak time too short. If it pulls in and then buzzes, the hold duty is marginal.
  • Runs backwards or is always on: check Invert, and remember the channel may already be inverted in hardware.
  • It overheats and nothing limits it: there is no current limit. Reduce the hold duty, or fit an actuator suited to the channel.
  • The frequency is not what you set: it was outside 100–4000 Hz and was clamped, or left at zero and defaulted to 2000 Hz.