Skip to content

1.4.4 PMU Programming

PMU configuration examples, logic sequences, and implementation checklist.

Programming Examples

DRL Auto-Off Logic (Output 14)

IF (Pin7_IgnitionRUN == ON) AND (In7_CT4_Headlights == OFF)
  THEN Out14_DRL = ON
ELSE Out14_DRL = OFF

DRL on with ignition, off when headlights active.

Note: Pin 7 is the dedicated 12V switched input (physical pin), different from In 7 which is a digital input channel. See PMU Inputs for complete pin assignments.

A/C Clutch Logic (Output 17)

IF (In9_AC_Request == ON) AND (BatteryVoltage > 11.5V)
  THEN Out17_AC_Clutch = ON
ELSE Out17_AC_Clutch = OFF

A/C engages when requested and voltage adequate.

Oil Cooler Fan Control (Output 7) - CAN-based

IF (J1939_SPN175_OilTemp > 230°F) THEN Out7_OilFan = ON
ELSEIF (J1939_SPN175_OilTemp < 220°F) THEN Out7_OilFan = OFF

10°F hysteresis prevents rapid cycling. Uses J1939 engine oil temperature from ECM (SPN 175).

PS Cooler Fan Control (Output 8) - CAN-based

IF (J1939_SPN110_CoolantTemp > 220°F) THEN Out8_PSFan = ON
ELSEIF (J1939_SPN110_CoolantTemp < 210°F) THEN Out8_PSFan = OFF

10°F hysteresis prevents rapid cycling. Uses J1939 coolant temperature from ECM (SPN 110) as proxy for PS fluid temp.

Radiator Fan PWM Control (Output 2+3+4) - Variable Speed

// Temperature-based PWM curve for variable speed control
IF (J1939_SPN110_CoolantTemp < 185°F) THEN Out234_RadiatorFan_PWM = 0%      // Fan OFF
ELSEIF (J1939_SPN110_CoolantTemp < 195°F) THEN Out234_RadiatorFan_PWM = 30%  // Low speed
ELSEIF (J1939_SPN110_CoolantTemp < 205°F) THEN Out234_RadiatorFan_PWM = 60%  // Medium speed
ELSEIF (J1939_SPN110_CoolantTemp >= 205°F) THEN Out234_RadiatorFan_PWM = 100% // Full speed

Benefits:

  • Variable speed: 30% = ~16A, 60% = ~32A, 100% = 53A - reduces average electrical load
  • PWM frequency: 100-400 Hz (PMU supports 4-400 Hz on 25A outputs)
  • Temperature source: J1939 SPN 110 (coolant temp) - same as PS fan
  • Quieter operation: Low speed sufficient for highway cruising
  • Thermal management: Progressive cooling matches engine demand

Replaces: Dakota Digital PAC-2800BT controller, BIM-01-2 adapter (for fan), external relay, 100A circuit breaker

Sequential Load Startup

DELAY Out5_HVAC = 0.5s
DELAY Out7_OilFan = 1.0s
DELAY Out8_PSFan = 1.5s

Prevents voltage sag during ignition-on by staggering high-current load activation.

Battery Load Monitoring

Purpose: Monitor battery voltage and current to track actual system load and verify alternator capacity.

Data Logging Configuration:

LOG BatteryVoltage (continuous, 1 Hz)
LOG TotalCurrent_PMU (continuous, 1 Hz)
LOG AlternatorVoltage (if available)
LOG EngineRPM (J1939_SPN190)

Critical Voltage Thresholds:

  • 14.2-14.4V (engine running): Alternator charging normally
  • 13.8-14.1V (engine running, high load): Alternator near capacity
  • 12.6-12.8V (engine off): Fully charged battery at rest
  • <12.5V (engine running): Alternator undersized or failing
  • <11.5V (engine running): Critical - load exceeds alternator output

Monitoring Strategy:

  1. Baseline Testing: Run engine at idle with all loads off - note voltage (should be 14.2-14.4V)
  2. Progressive Load Testing: Add loads incrementally (HVAC → fans → lights) and monitor voltage drop
  3. Peak Load Testing: Run all typical simultaneous loads and verify voltage stays >13.5V
  4. Data Analysis: Export PMU logs to identify which load combinations cause voltage sag

Warning Triggers:

IF (BatteryVoltage < 12.5V) AND (EngineRPM > 1000)
  THEN Trigger_Low_Voltage_Warning = ON

Use Cases:

  • Verify 270A alternator capacity under real-world loads
  • Identify which load combinations exceed alternator output
  • Monitor battery state of charge during off-grid camping
  • Track battery health over time (voltage recovery patterns)

ARB Compressor Load Shedding

Purpose: Automatically shed non-critical loads when ARB compressor runs (90A) to prevent exceeding 270A alternator capacity.

Summary: Detects ARB activation and disables DRL (8A), A/C (5A), and conditionally oil/PS cooler fans (15A each) to reduce total load from 271A to 243A, providing +27A alternator margin during tire inflation.

See: ARB Load Shedding Logic for complete implementation details, load analysis, testing procedures, and operator guidelines.

Configuration Software

Software: ECUMaster PMU Configuration Software

Connection: USB to PMU (PC configuration)

Configuration File: Export and backup PMU configuration file (.pmu format)

Backup Strategy: Store configuration in git repository + printed copy of critical logic (DRL, fan control, starter safety)

Features:

  • Visual output state monitoring
  • Real-time data logging
  • Logic programming interface
  • CAN bus configuration
  • Output combining setup
  • Diagnostic LED configuration

Installation & Testing: See Section 1 Installation Checklist