DDM parameters & units
Digital diagnostics are five numbers a module measures about itself. Each is stored as a 16-bit value in module memory with a fixed unit, and the host converts it to °C, volts, milliamps or dBm. Knowing the raw encoding lets you read a dump by hand — and spot a module that reports nonsense.
The five monitors
| Parameter | What it measures | Unit of the raw 16-bit value | Range |
|---|---|---|---|
| Temperature | module internal temperature | signed, 1/256 °C (high byte = whole degrees) | −128 … +128 °C |
| Supply voltage (Vcc) | 3.3 V rail inside the module | unsigned, 100 µV | 0 … 6.55 V |
| Tx bias current | laser drive current | unsigned, 2 µA | 0 … 131 mA |
| Tx optical power | transmitted light power | unsigned, 0.1 µW | 0 … 6.5535 mW |
| Rx optical power | received light power | unsigned, 0.1 µW | 0 … 6.5535 mW |
Optional extra monitors (laser temperature, TEC current) exist on some cooled/tunable modules.
Where they live — SFF-8472 (SFP class)
Real-time values are in the A2h block, bytes 96–105, two bytes each, MSB first:
| Bytes | Monitor |
|---|---|
| 96–97 | Temperature |
| 98–99 | Vcc |
| 100–101 | Tx bias |
| 102–103 | Tx power |
| 104–105 | Rx power |
| 106–109 | optional (laser temp / TEC) |
Whether DDM exists at all, and how it is calibrated, is declared in A0h byte 92 (Diagnostic Monitoring Type): bit 6 = DDM implemented, bit 5 = internally calibrated, bit 4 = externally calibrated, bit 3 = Rx power reported as average (1) or OMA (0). See Calibration.
For QSFP and CMIS modules the same units apply per lane — see Per-lane diagnostics.
Converting raw values
Temperature °C = signed16 / 256 0x1E80 = 7808 → 30.50 °C
Vcc V = uint16 × 0.0001 33000 → 3.300 V
Tx bias mA = uint16 × 0.002 3000 → 6.00 mA
Power mW = uint16 × 0.0001 8000 → 0.800 mW
Power dBm = 10 · log10(mW) 0.800 mW → −0.97 dBm
Handy anchors for optical power:
| dBm | mW / µW | Raw (0.1 µW) |
|---|---|---|
| +3 | 2.0 mW | 20 000 |
| 0 | 1.0 mW | 10 000 |
| −3 | 0.5 mW | 5 000 |
| −10 | 100 µW | 1 000 |
| −20 | 10 µW | 100 |
| −30 | 1 µW | 10 |
| −40 | 0.1 µW | 1 (resolution floor) |
Because the raw unit is 0.1 µW, DDM cannot resolve anything below −40 dBm; a reading of exactly −40 dBm (raw 0 or 1) means "no light", not a precise measurement. More dB arithmetic and rate/baud tables: Units & conversions.
What each parameter tells you
- Temperature — rises with ambient and with port density; a module running hot ages its laser faster. Typical operating range 0…70 °C (commercial) or −40…85 °C (industrial).
- Vcc — should sit near 3.3 V; a low or noisy reading points to the host slot, not the module.
- Tx bias — the single best ageing indicator: the module raises bias to keep Tx power constant as the laser wears. Trend it (Failures).
- Tx power — useful when measured; on inexpensive modules it may be a constant written to memory (DDM levels).
- Rx power — the health of the far end and the fibre: compare against the receiver's sensitivity and against the installation baseline.
In CodingBox
The DDM screen performs these conversions live and plots the values with the module's own thresholds; the EEPROM editor shows the raw bytes 96–105 and byte 92 for verification.