Read Internal Temperature Sensors on the USRP X440

Updated Apr 29, 2026

The USRP X440 provides access to several internal temperature measurements, including the RFSoC FPGA temperature, power rail temperatures reported over PMBus, and internal system control unit (SCU) temperatures. These measurements are useful for monitoring system health, validating operating conditions, and debugging thermal‑related issues.

This article explains how to programmatically access all available internal temperature sensors on the USRP X440 using the UHD Python API.

Follow these steps to read the internal temperature sensors from a USRP X440:

1. Import the UHD Python API

Ensure that UHD is installed and accessible from your Python environment, then import the uhd module.

import uhd

2. Create a USRP Object

Instantiate a MultiUSRP object using the IP address of your USRP X440.

usrp = uhd.usrp.MultiUSRP("addr=<USRP IP-ADDRESS>")
Replace the USRP IP ADDRESS with the address assigned to your device.

3. Query Available Motherboard Sensors

Retrieve the list of all motherboard sensor names exposed by the device.

sensor_names = usrp.get_mboard_sensor_names(0)

These sensors can include temperature readings such as RFSoC FPGA temperature, PMBus power temperature, and internal SCU temperature.

4. Read and Display Sensor Values

Iterate through the available sensors and read their current values.

for name in sensor_names:
    try:
        sensor = usrp.get_mboard_sensor(name, 0)
        print(f"{name}: {sensor.value} ({sensor.unit})")
    except Exception as e:
        print(f"{name}: Error reading sensor - {e}
The output shows the sensor name, current value, and unit. Any sensors that cannot be read will report an error.