DEEPX DX-M1 on Raspberry Pi 5: the most common errors and fixes
This thread covers the errors people hit most often with the DEEPX DX-M1 on a Raspberry Pi 5 (Sixfab AI HAT and Edge AI Expansion Board). Each entry has the cause, a command to confirm it, and the fix. Less common errors are listed in the index at the bottom and link to the full guide on docs.sixfab.com.
Tested on: Raspberry Pi 5 (8 GB), Raspberry Pi OS Trixie 64-bit, dx_rt v3.4.2, dxrt-driver-dkms v2.6.0, DX-COM 2.4.1.
Last verified: 2026-10-21
Don’t see your error here or in the docs? Reply below with the full terminal output and we’ll look at it. We add every new error we can reproduce to the docs guide.
Start here: two commands
lspci -d 1ff4:
Expected: one line, e.g. DEEPX Co., Ltd. DX_M1 (rev 01). No output means the card isn’t on the PCIe bus (see error 1).
cd dx_rt_npu_linux_driver
sudo ./sanity_check.sh
Expected last line: ** Sanity check PASSED!. On failure it writes sanity/result/dxrt_issue_bundle_<timestamp>.tar.gz. Keep that file in case you need to reply with it.
1. [ERROR] No supported DEEPX devices found (vendor=1ff4, ...)
The card didn’t enumerate on the PCIe bus. Check the LED first.
- LED off or any other colour: do a full power-cycle.
sudo shutdown -h now, unplug the supply from the wall, wait about 10 seconds, plug it back in.sudo rebootdoesn’t reset the card. - LED light blue or near white: the PCIe link isn’t coming up. Power off, open both FFC connector latches, reinsert the cable fully at both ends, close the latches, power on. Still missing? Try another FFC cable.
Verify: lspci -d 1ff4: lists the card. If it’s still missing with a known-good cable, reply here with the sanity bundle and a photo of the LED, or open a support ticket.
2. Device not found from dxrt-cli -s, but lspci lists the card
PCIe Gen 3 isn’t enabled. The Raspberry Pi 5 defaults to Gen 2, and on some setups the runtime can’t use the card at that speed. The LED is fully off after boot in this state.
Fix: add these lines to the end of /boot/firmware/config.txt and reboot:
dtparam=pciex1
dtparam=pciex1_gen=3
Verify: dxrt-cli -s lists the device with PCIe : Gen3 X1.
3. [ERROR] dxrt_driver module is NOT loaded. after a kernel update
DKMS couldn’t rebuild the driver for the new kernel because the kernel headers are missing.
Check: dkms status -m dxrt-driver-dkms has no installed line for uname -r.
Fix (Raspberry Pi 5):
sudo apt install linux-headers-rpi-2712
sudo dkms autoinstall
sudo modprobe dx_dma
sudo modprobe dxrt_driver
On a Raspberry Pi 4, install linux-headers-rpi-v8 instead.
Verify: sudo ./sanity_check.sh ends with ** Sanity check PASSED!
The same missing headers cause ERROR: Kernel configuration is invalid. when you build the driver by hand.
4. Low FPS, or FPS drops after a few minutes
Two different causes. Tell them apart by when it happens.
Low from the first frame: PCIe Gen 2. Check with:
sudo lspci -vv -d 1ff4: | grep LnkSta:
Speed 5GT/s is Gen 2. Enable Gen 3 as in error 2; the line then reads Speed 8GT/s.
Starts fine, drops under load: thermal throttling. You may not see a Throttling notice line, so watch the clock:
dxrt-cli -m 1
If the temperature climbs and the clock falls below 1000 MHz, the NPU is throttling. In our test, three parallel yolo26-x processes took the NPU from 64 °C to 89 °C in about four minutes and the clock dropped to 800 MHz. Fit a heatsink or fan and improve airflow, then rerun for 10 minutes to confirm the clock holds at 1000 MHz.
5. Please update your device driver / pcie driver / firmware to version X or higher
The runtime, driver and firmware are out of step. dx_rt v3.4.2 needs:
| Component | Minimum | Check with |
|---|---|---|
dxrt_driver |
2.5.0 | modinfo -F version dxrt_driver |
dx_dma |
2.4.0 | modinfo -F version dx_dma |
| NPU firmware | 2.7.0 | dxrt-cli -i |
Fix for the two driver messages (dx_dma ships in the same package):
sudo apt update
sudo apt install --only-upgrade dxrt-driver-dkms
sudo reboot
Firmware needs a separate flash. The steps are in the docs guide.
6. dxrt service is not running (error-code=264)
The dxrt systemd service is stopped or was never enabled. Common after a manual build.
systemctl status dxrt
sudo systemctl enable --now dxrt
If the unit doesn’t exist, rerun dx_rt ./build.sh; it creates dxrt.service. Verify: systemctl is-active dxrt prints active.
7. E: Unable to locate package apt-repo-sixfab
You’re following a deprecated install path. Install the package from the release file. It works on Raspberry Pi OS Bookworm and Trixie:
wget https://github.com/sixfab/sixfab_dx/releases/download/v0.1/apt-repo-sixfab.deb
sudo apt install ./apt-repo-sixfab.deb
sudo apt update
Then continue with the AI HAT setup.
8. Error in PhaseLabels.SURGERY: [UnknownError] when compiling a YOLO model
DX-COM reports a PPU configuration it can’t apply with this one message. Check three things in order:
- Layer node names. The names under
ppu.layermust exist in your ONNX graph. Names copied from DEEPX examples (Mul_441,Sigmoid_442) usually don’t match. Open the model in Netron and trace back from the outputs. ppu.type. Use0for YOLOv3, v4, v5, v7 (anchor-based) and1for YOLOX and YOLOv8 to YOLOv12 (anchor-free).- Does the model need a PPU at all? Classification and segmentation models don’t. Remove the whole
ppublock.
Also export with dynamic=False, batch=1. A dynamic-shape YOLOv8n failed with this same error in our test, even with a fixed shape in the config. Full config examples are in the docs guide.
Everything else: full guide on docs.sixfab.com
These errors are covered step by step (cause, check, fix, verify) in the full troubleshooting guide.
| Error or symptom | Section in the docs guide |
|---|---|
dpkg: dependency problems prevent configuration of dxrt-driver-dkms |
Driver install: APT and DKMS |
ERROR: Manual installation detected in /lib/modules/ |
Driver install: APT and DKMS |
ERROR: Kernel configuration is invalid. |
Driver install: APT and DKMS |
[ERROR] /dev/dxrt0 has incorrect permissions (works only with sudo) |
Driver install: APT and DKMS |
WARNING: Old driver modules are still loaded in memory. |
Driver install: APT and DKMS |
PEP 668 externally-managed-environment error detected! |
dx_rt build |
CMake configuration failed ... shadowing system cmake |
dx_rt build |
The model's compiler version(X.Y.Z) is not compatible in this RT library. |
Runtime and version compatibility |
version 'VERS_1.20.1' not found (required by libdxrt.so) |
Runtime and version compatibility |
Dynamic IPC task init failed / Ran out of NPU memory |
Runtime and version compatibility |
ConfigInputError: input name not found, or Input shape mismatch |
DX-COM model compilation |
Multi-input model: DataLoaderError |
DX-COM model compilation |
DataNotFoundError: no calibration images found |
DX-COM model compilation |
Error in PhaseLabels.QUANTIZATION with enhanced_scheme and --use_q_pro |
DX-COM model compilation |
Deprecation warning for ppu.type = 2 |
DX-COM model compilation |
Low accuracy after compiling, log shows Added nodes: |
DX-COM model compilation |
| Firmware older than 2.7.0, and how to flash it | Runtime and version compatibility |