Power over Ethernet
The Compute Blade features support for PoE (802.3af
), PoE+(802.3at
), and PoE++(802.3bt
).
Power Consumption
Power consumption will vary based on load, accessories connected, and the power requirements of any devices installed in the M.2 slot. During testing, a Compute Blade with a CM4 overclocked to 2GHz and a consumer NVMe SSD under load consumes ~7W. Normal operation may range from 3W to 17W depending on workload.
PoE+ Indicator
On the Compute Blade, GPIO23
is used to indicate the presence of PoE+ or PoE++. This could be used modify the behavior of the blade depending to the supplied power.
There is an LED on the Blade with a +
label indicating power state.
GPIO23
must be pulled up using the internal pull up.
LED Color | Description | GPIO 23 | Power |
---|---|---|---|
Green | 5 Volt present (PoE or USB) | HIGH | up to 15W |
Orange | PoE+ or PoE++ present | LOW | up to 30W |
Accessing the PoE+ Status in Software
These are example of how to get the GPIO23
state to determine the if PoE+ is present.
- Python
- C
import RPi.GPIO as GPIO
import time
# Define the GPIO pin number for the PoE indicator
POE_INDICATOR_GPIO = 23
# Set the GPIO mode to the BCM pin numbers
GPIO.setmode(GPIO.BCM)
# Set GPIO to an input and pull up the line
GPIO.setup(POE_INDICATOR_GPIO, GPIO.IN, pull_up_down=GPIO.PUD_UP)
try:
# Read the state of the GPIO pin
button_state = GPIO.input(POE_INDICATOR_GPIO)
# Check if the pin is active (assuming active-high logic)
if button_state == True:
print("Powersource: PoE+ or PoE++")
else:
print("Powersource: PoE or USB Type-C")
except:
GPIO.cleanup()
#include <stdio.h>
#include <wiringPi.h>
// Define the GPIO pin number for the PoE indicator
#define POE_INDICATOR_GPIO 23
int main(void) {
// Initialize the wiringPi library
if (wiringPiSetupGpio() == -1) {
printf("wiringPi setup failed\n");
return 1;
}
// Set the GPIO pin mode to input
pinMode(POE_INDICATOR_GPIO, INPUT);
// Read the state of the GPIO pin
int poeIndicatorState = digitalRead(POE_INDICATOR_GPIO);
// Check if the pin is active (assuming active-high logic)
if (poeIndicatorState == HIGH) {
printf("Powersource: PoE or USB Type-C\n");
} else {
printf("Powersource: PoE+ or PoE++\n");
}
return 0;
}
PoE Modules
Different Compute Blade revisions use different PoE modules. See the table below:
Version | PoE Module | Volts | Power Output (Peak) | PoE Compliance | Classification |
---|---|---|---|---|---|
v1.0 | Silvertel Ag5405 | 5V | 25.5W (30W) | IEEE 802.3af , 802.3at , 802.3bt | Type 2, Class 4 |