Project

General

Profile

Actions

PWM Output » History » Revision 1

Revision 1/2 | Next »
Adam Klama, 06/21/2026 03:26 PM


PWM Output

Overview

A PWM Output drives a hardware pin with a pulse-width-modulated signal. It is
the most common output type, used to control solenoids, proportional valves,
lamps/LEDs, fans, and other actuators where the average power is set by the duty
cycle.

It runs in one of two modes:

  • PWM mode — you command a duty cycle; the pin switches at the configured
    frequency.
  • Current mode — the output regulates to a commanded current (closed-loop),
    which is what most proportional solenoids need for repeatable behaviour.

Prerequisites & hardware

  • Wire the actuator between the output pin and its return per the controller pinout;
    observe the channel's current rating.
  • Fit a flyback/freewheel path for inductive loads (solenoids, relays) if the
    channel does not provide one.
  • For current-controlled solenoids, use Current mode and set the
    current limit to the actuator's rating.

Add it in the app

  1. Add a new output and choose PWM Output as the type.
  2. Select the pin and give it an alias (e.g. Line Pressure Solenoid).
  3. Choose Mode, set the frequency, and configure peak & hold if the
    actuator needs it.
  4. Drive the output from a map/driver that supplies the duty or current command.

Settings reference

Schema: config/PwmConfiguration.proto.

Setting Meaning Unit Range / values Notes
Mode Control strategy PWM, Current PWM = command duty cycle; Current = closed-loop current regulation.
Frequency PWM switching frequency Hz 100 – 4000 Higher = quieter/smoother; match the actuator's recommended frequency.
Invert Inverts the output polarity / duty on / off Use when the load is wired active-low or logic is reversed.
Current limit Maximum output current mA uint32 Protects the actuator and driver; used as the regulation target ceiling in Current mode.
Peak & hold Enables a peak-then-hold drive profile on / off Pull a solenoid in at high current, then hold it with less — saves power/heat.
Peak value Current/duty during the peak phase mA or % sint32 Applied for the peak time at engage.
Peak time Duration of the peak phase ms sint32 How long the peak value is applied before dropping to hold.
Hold value Current/duty during the hold phase mA or % sint32 Steady-state level once engaged.
Proportional hold Scales the hold level proportionally on / off Hold tracks the command rather than a fixed level.

Common settings

PWM Output also uses the shared settings — alias and pin. See Common IO Settings.

Example — peak-and-hold shift solenoid

  1. Type PWM Output, alias Shift Solenoid A, on the solenoid's pin.
  2. Mode = Current, Current limit = solenoid rating.
  3. Peak & hold on: Peak value = high pull-in current, Peak time ≈ 30–60 ms,
    Hold value = lower steady current.
  4. Frequency per the solenoid data sheet (commonly 1–2 kHz).
  5. Command it from the shift logic/map.

Troubleshooting

  • Actuator buzzes / audible whine: raise the frequency above the audible
    range or to the actuator's recommended value.
  • Solenoid won't pull in but holds weakly / vice-versa: revisit peak value
    and peak time.
  • Output runs backwards / always on: check Invert.
  • Overheats or trips: check the current limit and that hold current isn't
    set too high.

Related

Updated by Adam Klama 1 day ago · 2 revisions