Troubleshooting
ALPON X5 AI troubleshooting
Diagnostic reference for the ALPON X5 AI edge AI computer. Each issue lists the observable symptom, the probable cause, and the minimal fix. Work through the categories in order: power, then LEDs and boot, then connectivity, then the DEEPX DX-M1 NPU, then the operating system and the ALPON Cloud agent.
Start from the physical layer and move up. Verify power first (15 V / 27 W USB-C PD, DC 12 V to 32 V, or PoE+), confirm the Status LED reports a healthy state, check network links (LTE, Wi-Fi, Ethernet) in that order, verify the DEEPX DX-M1 NPU enumerates at /dev/dxrt0 with dxtop, and finally inspect ALPON X5 AI OS logs with journalctl -xe.
Most "dead on arrival" reports resolve with a 15 V / 27 W USB-C PD adapter or a 12 V to 32 V DC supply on the terminal block. Standard 5 V phone chargers do not negotiate enough voltage to boot the Raspberry Pi CM5 and DEEPX DX-M1 NPU. Start every diagnostic here.
Power and boot
The ALPON X5 AI accepts three independent power inputs: USB-C PD, DC terminal block, and PoE+. The device draws from the highest-voltage source. Under-voltage triggers restricted mode, which disables the NPU, USB ports, and ADDON header while keeping the Raspberry Pi CM5 and Ethernet alive.
The device does not power on (no LEDs)
- Use the 27 W USB-C PD adapter shipped with the device.
- If unavailable, power the DC terminal block from a 12 V to 32 V supply (45 W minimum at full load).
- Confirm wire polarity:
Pin 1 = Chassis Ground,Pin 2 = DC Negative,Pin 3 = DC Positive. - Try a different USB-C cable. Long or low-quality cables often drop PD negotiation.
The device boots but the NPU, NVMe SSD, or USB ports are dead
/dev/dxrt0 is missing, the NVMe SSD does not appear, USB devices are not detected, and the ADDON port is inactive.- Replace the 5 V source with a 15 V USB-C PD adapter or a 12 V to 32 V DC supply on the terminal block.
- For long DC cable runs, prefer a 24 V adapter with thicker conductors to compensate for voltage drop.
- Reboot after restoring nominal voltage so the PCIe bus re-enumerates.
Restricted mode prevents brownouts at low input voltage. The Raspberry Pi CM5 and both Ethernet ports stay alive; USB, PCIe (NVMe + DEEPX DX-M1), ADDON, and camera rails are disabled. AI inference is not available until the device leaves restricted mode.
The device resets or throttles under heavy AI load
- Switch to a 45 W (15 V / 3.0 A) USB-C PD adapter or a DC supply sized for 45 W continuous.
- Mount the device with the cooling surface facing up and leave at least 25 mm clearance in enclosed cabinets.
- Verify with
vcgencmd get_throttledthat the Raspberry Pi CM5 is not hitting the under-voltage bit.
The device boots in a reset loop
- Disconnect all power from the device.
- Move the SW1 switch to OFF to disable the hardware watchdog while you finish bring-up.
- Reapply power and verify the device stays up. Re-enable the watchdog once your application actively pets it.
Always disconnect all power before flipping SW1 (Watchdog) or SW2 (Boot/Burn). Changing SW2 while powered can corrupt the Raspberry Pi CM5 eMMC.
LED states and what they mean
The ALPON X5 AI surfaces device health on the Status LED and the Cellular LED. Reading these two indicators is the fastest first diagnostic when you do not yet have shell access.
What does each LED pattern indicate?
| LED | State | Meaning and next action |
|---|---|---|
| Status | Solid green | Device is online and reachable in Sixfab Connect. No action needed. |
| Status | Blinking green | Boot or provisioning in progress. First boot can take up to 3 minutes while ALPON Cloud is reached and credentials are issued. |
| Status | Solid red | Cannot reach ALPON Cloud. Check LTE antenna torque, move the device for better RF, or connect ETHERNET 0 to an upstream router. |
| Status | Off | No power or the Raspberry Pi CM5 has not completed early boot. Start at Power and boot. |
| Cellular | Solid green | Cellular data session is up and passing traffic. |
| Cellular | Amber | Modem is registered but signal is weak. Reposition or upgrade to a higher-gain LTE antenna. |
| Cellular | Red | No cellular attach. Check eSIM activation, LTE band availability, and antenna connections. |
The Status LED stays red after 3 minutes
- Plug a cable from
ETHERNET 0into an internet-connected router to give the device a known-good path. - Hand-tighten the two LTE antennas on the SMA connectors labeled
L. - Wait two minutes. If still red, open the remote terminal or HDMI shell and run
systemctl status sixfab-connectto inspect the agent.
Connectivity (LTE, Wi-Fi, Ethernet)
The ALPON X5 AI carries LTE Cat 4, dual-band Wi-Fi, and two Gigabit Ethernet ports. When more than one path is available, the Sixfab Connect agent handles failover in priority order. Most connectivity problems reduce to antenna, SIM, or link-order configuration.
The Cellular LED is red or amber
- Hand-tighten both antennas on the SMA connectors labeled
L(LTE Main and LTE Diversity). Never connect the Wi-Fi antenna (RP-SMA male) to an LTE port. - Move the device near a window or use an external high-gain antenna.
- Confirm the modem is attached and check signal quality:
terminal shell
mmcli -L mmcli -m 0 --signal-get
- If the modem reports
registeredbut throughput is low, switch carriers from the ALPON Cloud console.
Wi-Fi does not connect or keeps dropping
- Install the supplied Wi-Fi antenna on the RP-SMA male port labeled
W. - Use WPA2-PSK or WPA3-Personal. Enterprise EAP profiles require extra setup via
nmclior Sixfab Connect. - Connect from Sixfab Connect (Connect to Wi-Fi), or over SSH:
terminal shell
nmcli device wifi list nmcli device wifi connect "YOUR_SSID" password "YOUR_PASS"
ETHERNET 1 does not link up or shows low throughput
ETHERNET 1 is a USB-bridged Gigabit Ethernet port, not a native Raspberry Pi CM5 PHY. It shares the TUSB8020 hub upstream with one of the USB 3.0 ports. Heavy concurrent USB traffic reduces its throughput.- Use
ETHERNET 0for performance-sensitive traffic. It is the native Raspberry Pi CM5 Gigabit Ethernet and the only PoE-capable port. - If you must use
ETHERNET 1, avoid attaching high-bandwidth USB 3.0 devices to the shared hub. - Never connect a PoE source to
ETHERNET 1. It does not accept PoE.
PoE+ does not power the device
ETHERNET 1 instead of ETHERNET 0, or your variant does not include the PoE module.- Use an IEEE 802.3at (PoE+) Class 4 injector or switch that delivers 37 V to 57 V.
- Connect PoE to
ETHERNET 0only.ETHERNET 1cannot accept power. - Check the sticker on the enclosure; the PoE module is a factory option and cannot be field-added.
DEEPX DX-M1 NPU
The ALPON X5 AI is intelligented by DEEPX. The DEEPX DX-M1 delivers 25 TOPS at INT8 precision over PCIe. The kernel driver enumerates it as /dev/dxrt0 on ALPON X5 AI OS. Models reach the NPU through the ONNX → DXNN compiler path on a host PC, and execute on-device through dxrt-runtime (dx_engine for Python, dxrt_api.h for C++).
/dev/dxrt0 is missing or dxtop reports no device
- Verify you are running at 12 V DC or 15 V USB-C PD minimum. See Power and boot.
- Check the driver and PCIe enumeration:
terminal shell
lspci | grep -i deepx lsmod | grep dxrt ls -l /dev/dxrt*
- If PCIe enumerates but the driver is missing, reinstall it:
terminal shell
sudo apt update sudo apt install --reinstall -y libdxrt
- If
lspcidoes not list the DEEPX device, power down, open the enclosure, and reseat the DEEPX DX-M1 M.2 module. Apply ESD precautions.
Python raises ImportError: No module named dx_engine
dx_engine binding lives inside the bundled virtual environment at /usr/lib/libdxrt/dxrt-venv.source /usr/lib/libdxrt/dxrt-venv/bin/activate python -c "import dx_engine; print(dx_engine.__version__)"
For scripts, invoke the venv Python directly: /usr/lib/libdxrt/dxrt-venv/bin/python my_script.py.
Cannot open /dev/dxrt0 inside a Docker container
Start the container with the device and --privileged:
docker run --rm --privileged --device /dev/dxrt0 -v /opt/models:/models alpon-infer:latest
For docker-compose, set privileged: true and devices: ["/dev/dxrt0"].
Model fails to load with an out-of-memory error
.dxnn footprint exceeds the DEEPX DX-M1's 4 GB on-chip memory. The NPU has its own dedicated memory pool, independent of Raspberry Pi CM5 system RAM.- Recompile with a lower input resolution (for example 640×640 instead of 1280×1280).
- Switch to a lighter model variant (
nanoorsmallinstead oflargeorx). - Quantize or prune the model before re-exporting to ONNX, then recompile with
dxcom.
YOLO inference runs at a very low FPS on the ALPON X5 AI
- Recompile the ONNX graph with a config that enables the PPU. Run
dxcomon a host PC:terminal (host PC) shelldxcom -m /path/to/yolov8n.onnx -c yolov8n_config.json -o yolov8n-output
- Use a config with a
ppublock, calibration settings, and the matching preprocessing pipeline:yolov8n_config.json json{ "inputs": { "images": [1, 3, 640, 640] }, "calibration_num": 100, "calibration_method": "ema", "train_batchsize": 32, "num_samples": 1024, "default_loader": { "dataset_path": "./calibration_dataset", "file_extensions": ["jpeg", "jpg", "png", "JPEG"], "preprocessings": [ { "resize": { "mode": "pad", "size": 640, "pad_location": "edge", "pad_value": [114, 114, 114] } }, { "div": { "x": 255 } }, { "convertColor": { "form": "BGR2RGB" } }, { "transpose": { "axis": [2, 0, 1] } }, { "expandDim": { "axis": 0 } } ] }, "ppu": { "type": 1, "conf_thres": 0.25, "num_classes": 80, "layer": [ { "bbox": "Mul_441", "cls_conf": "Sigmoid_442" } ] } } - Redeploy the resulting
.dxnn. PPU-compiled nano-class YOLO models reach roughly 50 FPS at 1280×720 and 20 to 25 FPS at 1920×1080. - Monitor with
dxtopto confirm the NPU is saturated rather than the CPU.
The bbox and cls_conf layer names (Mul_441, Sigmoid_442) come from the YOLOv8 ONNX graph and will differ across exports. Open the model in Netron to confirm the correct node names before compiling.
dxcom reports an unsupported operator
dxrt-runtime targets image-based CNNs; transformers are not yet supported.- Switch to a CNN-based equivalent (YOLOv5/v7/v8, SSD, ResNet, MobileNet, EfficientNet, U-Net).
- If you must keep a transformer head, run it on the Raspberry Pi CM5 CPU and offload only the CNN backbone to the NPU.
- Check the DEEPX release notes for the current supported-operator list before compiling.
ALPON X5 AI OS and SSH
ALPON X5 AI OS is a Sixfab-maintained ARM64 Debian-based Linux distribution for the Raspberry Pi CM5. The default user is alpon with password sixfab. The hostname is derived from the MAC address, so the device is reachable over mDNS as alpon-<MAC>.local.
I cannot SSH into the device
- Connect with the correct user:
ssh alpon@<DEVICE_IP>orssh alpon@alpon-<MAC>.local. - If the local network is unreachable, use the browser-based remote terminal in Sixfab Connect. It works even when only cellular is up.
- As a last resort, attach HDMI and a USB keyboard for local login.
I forgot the password or locked myself out
- Open the Sixfab Connect remote terminal. It authenticates through the cloud agent and does not require your local password.
- From that shell, run
sudo passwd alponto set a new password. - If the remote terminal is unreachable and you have no HDMI access, contact Sixfab support with the device serial number for a recovery procedure. Do not attempt to re-flash the eMMC without guidance.
The alpon account is used internally by Sixfab Connect and other system services. Change the password and, if you need a separate admin identity, create a new user with sudo rights. Deleting alpon breaks core system functions.
apt update or apt upgrade fails
dpkg in an inconsistent state.# Verify connectivity first ping -c 3 deb.debian.org # Repair any half-configured packages sudo dpkg --configure -a sudo apt -f install # Refresh and retry sudo apt update sudo apt upgrade -y
If a repository's GPG key is missing, reinstall it from the Sixfab or DEEPX documentation before running apt update again. Reboot when a kernel or firmware package was upgraded.
Nothing appears on HDMI
- Plug HDMI before powering on. Hot-plug detection is best-effort on the Raspberry Pi CM5.
- Use a certified HDMI cable and a monitor that supports 1080p at 60 Hz.
- If the monitor stays blank, verify over SSH that the device booted, then reboot with HDMI already connected.
ALPON Cloud and provisioning
Every ALPON X5 AI ships with the Sixfab Connect agent. The agent registers the device on first boot and keeps it reachable through ALPON Cloud. Provisioning requires any one upstream path (LTE, Wi-Fi, or Ethernet) and a reachable connect.sixfab.com.
The device appears Offline in Sixfab Connect
- Check the LED legend above. If the Cellular LED is red, fall back to Ethernet by plugging
ETHERNET 0into a wired router. - From a local shell, inspect the agent:
terminal shell
systemctl status sixfab-connect journalctl -u sixfab-connect -n 200
- If the agent is stuck, restart it:
terminal shell
sudo systemctl restart sixfab-connect
The QR code on the label does not scan
- In Sixfab Connect, choose Manual registration.
- Enter the serial number printed next to the QR code.
- Follow the on-screen prompts to bind the device to your organization.
Deployments queued in ALPON Cloud do not reach the device
- Confirm the device is
Onlineand the Sixfab Connect agent is healthy. - Rebuild your image for ARM64:
docker buildx build --platform linux/arm64 -t my-image . - Check available disk with
df -h /. Prune unused images:docker image prune -a.
Before you contact support
Running through these checks covers more than 90% of field issues and gives Sixfab support the context needed for a fast resolution. Run them top to bottom; each step takes under a minute.
Pre-support checklist
Run these seven checks before opening a ticket
Power source
15 V / 27 W USB-C PD or 12 V to 32 V DC. No under-voltage flag.
Switch positions
SW1 (Watchdog) and SW2 (Boot/Burn) both OFF. Toggle only with all power disconnected.
LED state
Note the exact state of Status and Cellular. See the LED reference.
Antennas seated
Four SMA connectors hand-tight. Wi-Fi/Bluetooth = RP-SMA male; LTE Main, LTE Diversity, GNSS/GPS = SMA female.
Network path
At least one of LTE, Wi-Fi, or ETHERNET 0 reaches the internet.
NPU enumeration
dxtop shows /dev/dxrt0 with live utilization and temperature.
Device serial number
Read it from the enclosure label, next to the QR code. Include it in the ticket.
Collecting a support bundle (optional)
If you can run a shell on the device (SSH or HDMI), this single block captures the journal, kernel ring buffer, PCIe topology, and OS release into one archive. Attach it to your ticket if you can; otherwise the items in the checklist above are enough to start.
# Single-shot bundle, run on the device over SSH sudo journalctl -b -n 2000 > ~/alpon-journal.log dmesg > ~/alpon-dmesg.log lspci -vv > ~/alpon-lspci.log cat /etc/os-release > ~/alpon-os.log tar czf ~/alpon-support.tar.gz ~/alpon-*.log # Copy the archive to your computer with scp, WinSCP, or Cyberduck.
Send a plain-text email with the device serial number, the observed LED state, and a one-line description of what you were doing when the issue appeared. Sixfab support can guide you through log collection from there.
Still stuck? Get help from Sixfab
Reach out with your support bundle and the LED state you observed. Typical first response in one business day.
Updated 10 days ago
