PoE Control
5 minute read
The Interceptor PoE Board is managed through the /proc/pse interface, which provides
control over individual PoE ports.
The /proc/pse interface requires Exaviz OS image dated:
- 2025-05-01 or newer for Raspberry Pi CM4/CM5
- 2025-04-30 or newer for Banana Pi CM4
The /proc/pse Interface
The PoE ports are controlled via a simple text-based interface at /proc/pse.
Checking Port Status
cat /proc/pse
The /proc/pse interface is a streaming interface. Reading it with cat will
continuously output status updates. Use Ctrl+C to stop, or capture a single snapshot
with head:
head -20 /proc/pse
Example output:
Axzez Interceptor PoE driver version 2.0
0-0: power-on 0 15.50 47.8750 0.05250/0.80000 34.0625/150.0000
0-1: backoff ? 0.00 47.8750 0.00000/0.80000 35.5625/150.0000
0-2: detecting ? 0.00 47.8750 0.00000/0.80000 36.4375/150.0000
0-3: backoff ? 0.00 47.8750 0.00000/0.80000 34.3750/150.0000
...
0: 47.8750/40.0000-60.0000 0.05250/2.50000 15.50/120
1-0: backoff ? 0.00 48.0625 0.00000/0.80000 29.6250/150.0000
...
Output format:
<board>-<port>: <status> <class> <power> <voltage> <current>/<max_current> <temp>/<max_temp>
board-port: Board number (0 or 1) and port number (0-7)status: Port state (power-on, backoff, detecting, disabled)class: PoE class (0-4 for powered devices, ? for unpowered)power: Current power draw in wattsvoltage: Bus voltage (should be ~48V)current: Current draw and limit in ampstemp: Temperature readings
Port Status Values
| Status | Meaning |
|---|---|
power-on | Device detected and receiving power |
detecting | Port enabled, detecting PoE device |
backoff | Temporary backoff after detection failure (no device connected) |
disabled | Port administratively disabled |
fault | Error condition (overcurrent, short, etc.) |
Controlling Ports
Enable a Port
echo "enable-port <board> <port>" > /proc/pse
Examples:
# Enable port 0 on board 0
echo "enable-port 0 0" > /proc/pse
# Enable port 5 on board 0
echo "enable-port 0 5" > /proc/pse
# Enable port 2 on board 1 (second PoE board)
echo "enable-port 1 2" > /proc/pse
Disable a Port
echo "disable-port <board> <port>" > /proc/pse
Examples:
# Disable port 3 on board 0
echo "disable-port 0 3" > /proc/pse
# Disable port 7 on board 1
echo "disable-port 1 7" > /proc/pse
Reset a Port
Power-cycle a port (disable then re-enable):
echo "reset-port <board> <port>" > /proc/pse
Example:
# Reset port 2 on board 0
echo "reset-port 0 2" > /proc/pse
Set PoE Mode (AF vs AT)
By default, ports are configured for 802.3at (PoE+, 30W). To limit a port to 802.3af (15W), use:
echo "set-af-mode <board> <port>" > /proc/pse
Example:
# Set port 2 on board 0 to AF mode (15W max)
echo "set-af-mode 0 2" > /proc/pse
| Mode | Standard | Max Power |
|---|---|---|
| AT (default) | 802.3at (PoE+) | 30W |
| AF | 802.3af (PoE) | 15W |
Board and Port Numbering
Single PoE Board Configuration
| Carrier Connector | Board Number | Ports |
|---|---|---|
| J9 | 0 | 0-7 |
Dual PoE Board Configuration
| Carrier Connector | Board Number | Ports |
|---|---|---|
| J9 | 0 | 0-7 |
| J10 | 1 | 0-7 |
Port numbers are 0-7 for each board. With dual boards, board 0 ports are sometimes referred to as “ports 0-7” and board 1 ports as “ports 8-15” in user interfaces.
Common Operations
Enable All Ports on Board 0
for port in 0 1 2 3 4 5 6 7; do
echo "enable-port 0 $port" > /proc/pse
done
Disable All Ports on Board 0
for port in 0 1 2 3 4 5 6 7; do
echo "disable-port 0 $port" > /proc/pse
done
Check Active Ports
head -20 /proc/pse | grep "power-on"
Monitor Status in Real-Time
The /proc/pse interface streams continuously, so you can monitor it directly:
cat /proc/pse
# Press Ctrl+C to stop
Important Notes
ip link vs /proc/pse
The ip link set command controls the network interface, not the PoE power.
# This controls the network link, NOT the PoE power
ip link set poe0 up # ❌ Does not enable PoE power
ip link set poe0 down # ❌ Does not disable PoE power
# Use /proc/pse to control PoE power
echo "enable-port 0 0" > /proc/pse # ✅ Enables PoE power
echo "disable-port 0 0" > /proc/pse # ✅ Disables PoE power
Power Budget Management
The system does not automatically manage power budget. If you enable more ports than your PSU can handle, you may experience:
- Voltage drops
- Port resets
- System instability
Calculate your power budget before enabling ports:
| Devices | Typical Power | Max Power |
|---|---|---|
| IP Camera (basic) | 5-8W | 12W |
| IP Camera (PTZ) | 15-25W | 30W |
| WiFi AP | 8-12W | 15W |
| VoIP Phone | 3-6W | 10W |
Fault Recovery
If a port enters fault status:
- Check for short circuits or damaged cables
- Verify the connected device is PoE-compatible
- Reset the port:
echo "reset-port 0 <port>" > /proc/pse
Scripting Examples
Startup Script to Enable Specific Ports
Create /usr/local/bin/poe-init.sh:
#!/bin/bash
# Enable PoE ports on boot
# Ports to enable on board 0
ENABLED_PORTS="0 1 2 5"
for port in $ENABLED_PORTS; do
echo "enable-port 0 $port" > /proc/pse
sleep 0.5
done
echo "PoE ports initialized"
Make executable and add to startup:
chmod +x /usr/local/bin/poe-init.sh
# Add to /etc/rc.local or create a systemd service
Port Status Check Script
#!/bin/bash
# Check PoE port status (snapshot)
echo "=== PoE Port Status ==="
head -20 /proc/pse
echo ""
echo "=== Active Ports ==="
head -20 /proc/pse | grep "power-on" | wc -l
echo "ports delivering power"
Troubleshooting
“Permission denied” Error
You need root privileges to write to /proc/pse:
sudo echo "enable-port 0 0" > /proc/pse # ❌ Won't work
# Use this instead:
echo "enable-port 0 0" | sudo tee /proc/pse
# Or run as root:
sudo -i
echo "enable-port 0 0" > /proc/pse
Port Won’t Enable
- Check if
/proc/pseexists (OS version requirement) - Verify board is connected (FFC cable)
- Check 48V power is connected
- Look for error messages in
dmesg:dmesg | grep -i poe
Device Not Receiving Power
- Verify port shows
power-onin/proc/pse - Check device is PoE-capable
- Try a different cable
- Try a different port
- Check total power budget
API Reference
Commands
| Command | Syntax | Description |
|---|---|---|
| Enable | enable-port <board> <port> | Enable PoE on specified port |
| Disable | disable-port <board> <port> | Disable PoE on specified port |
| Reset | reset-port <board> <port> | Power-cycle specified port |
| Set AF Mode | set-af-mode <board> <port> | Limit port to 15W (802.3af) |
Parameters
| Parameter | Range | Description |
|---|---|---|
<board> | 0-1 | PoE board number |
<port> | 0-7 | Port number on board |
Last modified February 25, 2026