Many data centers and critical facilities still rely on older PDI M4 series Power Distribution Units. While these units are built like tanks, integrating them into today’s monitoring systems often requires some reverse-engineering because detailed public Modbus register documentation is scarce.
We recently mapped the Modbus communications on several legacy PDI M4 units. The integration went smoothly, and we’re sharing the key findings + our compiled register map to help the community.
Why It Matters
Proper Modbus integration gives you real-time visibility into voltages, currents, power, energy, harmonics, and more — all without ripping out working equipment. This data feeds nicely into VYKON by Tridium, BMS platforms, EPMS, DCiM or custom monitoring solutions.
PDI M4 Modbus Register Highlights
Here’s a snapshot of the most useful registers we identified:
Function NameModbus RegisterScaleFormatUnit
| InputVoltageAB | 40001 | 1 | INT16 | Volts |
| InputVoltageBC | 40002 | 1 | INT16 | Volts |
| InputVoltageCA | 40003 | 1 | INT16 | Volts |
| OutputVoltagePhaseAB | 40004 | 1 | INT16 | Volts |
| OutputVoltagePhaseBC | 40005 | 1 | INT16 | Volts |
| OutputVoltagePhaseCA | 40006 | 1 | INT16 | Volts |
| OutputVoltagePhaseAN | 40007 | 1 | INT16 | Volts |
| OutputVoltagePhaseBN | 40008 | 1 | INT16 | Volts |
| OutputVoltagePhaseCN | 40009 | 1 | INT16 | Volts |
| CurrentPhaseA | 40010 | 1 | INT16 | Amps |
| CurrentPhaseB | 40011 | 1 | INT16 | Amps |
| CurrentPhaseC | 40012 | 1 | INT16 | Amps |
| CurrentNeutral | 40013 | 1 | INT16 | Amps |
| CurrentGround | 40014 | 1 | INT16 | Amps |
| N/A | 40015 | N/A | N/A | N/A |
| N/A | 40016 | N/A | N/A | N/A |
| kWPhaseA | 40017 | 1 | INT16 | kW |
| PowerFactorPhaseA | 40018 | 0.01 | INT16 | pf |
| kWPhaseB | 40019 | 1 | INT16 | kW |
| PowerFactorPhaseB | 40020 | 0.01 | INT16 | pf |
| kWPhaseC | 40021 | 1 | INT16 | kW |
| PowerFactorPhaseC | 40022 | 0.01 | INT16 | pf |
| kVAPhaseA | 40023 | 1 | INT16 | kVA |
| TotalHarmonicDistortionA | 40024 | 1 | INT16 | % |
| kVAPhaseB | 40025 | 1 | INT16 | kVA |
| TotalHarmonicDistortionB | 40026 | 1 | INT16 | % |
| kVAPhaseC | 40027 | 1 | INT16 | kVA |
| TotalHarmonicDistortionC | 40028 | 1 | INT16 | % |
| ApparentPowerkVA | 40029 | 1 | INT16 | kVA |
| Frequency | 40030 | 0.1 | INT16 | Hz |
| N/A | 40031 | N/A | N/A | N/A |
| N/A | 40032 | N/A | N/A | N/A |
| PercentkVAPhaseA | 40033 | 1 | INT16 | % |
| PercentkVAPhaseB | 40034 | 1 | INT16 | % |
| PercentkVAPhaseC | 40035 | 1 | INT16 | % |
| KWHLO | 40036 | 1 | LONG (32BIT) | kW-Hr |
| KWHHIGH | 40037 | 1 | LONG (32BIT) | kW-Hr |
| RealPowerKW | Calculated | 1 | INT16 | kW |
| PowerFactorTotal | Calculated | 1 | INT16 | pf |
Full Register Map (with notes, scaling, 5/6-digit addressing, and testing observations) is available for download below.
Download
PDI M4 PDU Modbus Register Map – PDI-M4-PDU-LegacyRegisters
PDI M4 PDU Contractor Card Wiring – M4comm
How to connect to the M4 Modbus Communciations
Practical Integration Tips
- Use holding registers (Function 03) for most values.
- Pay attention to scaling (some values are multiplied by 0.1 or 0.01).
- LONG (32-bit) values like kWH require combining two registers.
- Start with conservative polling (5–10 seconds) to avoid communication issues.
- Test Phase A/B/C consistency and neutral/ground readings carefully.
If you’re struggling with legacy PDI equipment or other older PDUs, we specialize in these types of integrations and can build custom monitoring panels or help with full system deployment.
Have you worked with PDI M4 or similar legacy PDUs? What Modbus challenges have you encountered? Share in the comments!