System Monitoring
Track your AI HAT system performance with real-time NPU metrics, including utilization, temperature, and memory usage. Professional edge AI monitoring ensures your Raspberry Pi 5 deployment remains efficient and ready for stable edge AI operation.
Monitor the AI HAT+ on Raspberry Pi 5
From real-time NPU utilisation down to kernel-level driver diagnostics — the canonical reference for every monitoring command on Sixfab AI HAT+. Use it as a field reference while running inference or troubleshooting.
Sixfab AI HAT+ exposes monitoring at four stack layers.
Use dxtop for live NPU utilisation, dxrt-cli -s for a full hardware snapshot,
lspci to confirm PCIe enumeration, and journalctl -xeu dxrt.service for runtime logs.
Each command targets one layer of the DEEPX software stack on Raspberry Pi 5.
Software stack overview
AI HAT+ on Raspberry Pi 5 runs as a four-layer stack. Each layer below has its own monitoring command. When something goes wrong, this map tells you which layer to inspect first.
Quick reference
Every command in this table maps to one layer of the stack above. The "Layer" column tells you which part of the system you're inspecting.
| Command | Layer | What it shows | When to use |
|---|---|---|---|
dxtop |
3 · Runtime | Real-time NPU utilisation, temperature, voltage, clock per core | During active inference to watch performance |
dxrt-cli -s |
3 · Runtime | Full hardware status: device, versions, firmware, memory, PCIe link | After installation or to verify the full stack is healthy |
lspci |
1 · Hardware | PCIe device enumeration, confirms NPU is detected | First check if something isn't working |
lsmod | grep -i dx |
2 · Kernel | Whether the DEEPX kernel module is loaded | If dxrt-cli fails to find a device |
dmesg | grep -i dx |
2 · Kernel | Kernel messages from the DEEPX driver during init | Diagnosing driver init errors or PCIe link failures |
journalctl -xeu dxrt.service |
4 · Application | Full systemd service log for the runtime daemon | When the runtime starts but inference fails |
Installed CLI tools
The sixfab-dx package installs three command-line tools alongside
the kernel driver and DEEPX runtime. Each one targets a different monitoring
or diagnostic job.
Hardware status, firmware version, and firmware update. First command to run when diagnosing any issue.
Real-time NPU monitor — per-core utilisation, temperature, voltage, and clock. Like htop for the NPU.
Headless model runner. Test any compiled .dxnn file without writing application code.
# 1. Full hardware status dxrt-cli -s # 2. Real-time NPU utilisation (q to quit) dxtop # 3. Test a compiled model run_model --model_path <model_path>.dxnn # 4. Update NPU firmware (only when a new fw.bin is released) dxrt-cli -u <firmware_path>.bin
dxtop and dxrt-cli are the only tools that surface NPU-internal telemetry —
per-core utilisation, voltage, clock, and on-die temperature. Standard Linux tools
(top, htop, sensors) cannot see inside the DEEPX silicon.
For NPU-aware monitoring in a production fleet, scrape dxrt-cli -s output
or the dxtop machine-readable feed.
dxtop: real-time NPU monitor
dxtop is a live terminal dashboard for the NPU — like htop but for the
AI accelerator. It shows per-core utilisation, memory, voltage, clock speed,
and temperature, updating continuously.
dxtop
Press q to quit, n / p to page through devices, h for help.
Output at idle
DX-RT: v3.2.0 NPU Device driver: v2.1.0 DX-TOP: v1.0.1 Device :0 Variant: M1 PCIe Bus Number: 01:00:00 Firmware: v2.5.0 NPU Memory: [3.98 MiB / 3.82 GiB (0.05%)] Core :0 Util: 0.0% Temp: 49 °C Voltage: 750 mV Clock: 1000 MHz Core :1 Util: 0.0% Temp: 48 °C Voltage: 750 mV Clock: 1000 MHz Core :2 Util: 0.0% Temp: 49 °C Voltage: 750 mV Clock: 1000 MHz
Output during active inference
Device :0 Variant: M1 PCIe Bus Number: 01:00:00 Firmware: v2.5.0 NPU Memory: [1.20 GiB / 3.82 GiB (31.4%)] Core :0 Util: 87.0% Temp: 52 °C Voltage: 750 mV Clock: 1000 MHz Core :1 Util: 92.0% Temp: 51 °C Voltage: 750 mV Clock: 1000 MHz Core :2 Util: 89.0% Temp: 52 °C Voltage: 750 mV Clock: 1000 MHz
Typical values at a glance
Add a heatsink or connect a 3.3 V micro fan to the AI HAT+ JST fan connector. Without active cooling the chip can reach 85 °C under full load.
dxrt-cli: hardware status & firmware
The dxrt-cli tool is the primary interface for querying hardware state
and managing NPU firmware. Use it any time you need a full snapshot of the stack.
Displays device type, runtime version, driver versions, firmware version, memory spec, board revision, PCIe link speed, and per-core voltage / clock / temperature. Use this as the first diagnostic command after installation or when something behaves unexpectedly.
dxrt-cli -s
DXRT v3.2.0 * Device 0: M1, Accelerator type * RT Driver version : v2.1.0 * PCIe Driver version: v2.0.1 * FW version : v2.5.0 * Memory : LPDDR5x 6000 Mbps, 3.92 GiB * Board : M.2, Rev 1.0 * PCIe : Gen3 X1 [01:00:00] NPU 0: voltage 750 mV, clock 1000 MHz, temperature 46 °C NPU 1: voltage 750 mV, clock 1000 MHz, temperature 46 °C NPU 2: voltage 750 mV, clock 1000 MHz, temperature 46 °C
Flashes a firmware binary to the onboard NPU flash. Download the firmware file from deepx.ai first. Only needed when a standalone firmware update is released outside a full runtime upgrade.
dxrt-cli -u <firmware_path>.bin
System diagnostic commands
These standard Linux utilities complement the DEEPX-specific tools. Use them to verify hardware detection and kernel-level driver state when something higher up the stack isn't responding.
Confirms the Raspberry Pi 5 has enumerated the AI HAT+ NPU over PCIe. If this line is missing from the output, the hardware connection has a problem — check FFC cable latches and confirm the HAT+ is seated correctly.
0001:01:00.0 Processing accelerators: DEEPX Co., Ltd. DX_M1A
If lspci shows no DEEPX device, check the 16-pin FFC cable connections on both the AI HAT+ and Raspberry Pi 5 ends. A loose latch is the most common cause.
The DEEPX kernel module must be loaded for the runtime to communicate with the NPU. Empty output means the module is not loaded — reboot or reinstall sixfab-dx.
lsmod | grep -i dx
Shows kernel ring buffer messages from driver initialisation. Look for PCIe link errors, firmware load failures, or device enumeration issues here. Use sudo dmesg if output is empty without elevated permissions.
dmesg | grep -i dx
Full systemd log for the DEEPX runtime daemon. Use when the runtime starts but inference jobs fail or behave unexpectedly. Add -f to follow the log live, or --since "10 minutes ago" to limit output.
journalctl -xeu dxrt.service # Follow live journalctl -xeuf dxrt.service # Only last 10 minutes journalctl -xeu dxrt.service --since "10 minutes ago"
Some dmesg and journalctl commands may require sudo on restricted systems. If you see empty output or a permission error, prefix the command with sudo.
