A Power-over-Ethernet Hat allows a device to be powered remotely using a PoE switch or PoE injector. A couple of the pins are used to carry power.
I am going to put 4 RPi with PoE Hat in a one Rack Unit panel.
Required Parts:
PoE injector or switch that is 802.3af compatible
Raspberry Pi 3B+ running raspbian
Waveshare PoE hat for RPi 3B+
4x M2.5 screws, standoffs and nuts
One PoE Hat included the above, and the other one did not
WARNING: The chip on the Raspberry Pi next to the center USB ports cannot have a (high height) heat sink (see image on left). The round component on the underside of the hat, labeled 10, 100A, L48 (see image on right) prevents the hat from being installed if the RPi chip has a heat sink. The CPU (silver chip) should have a heat sink, as should the chip on the bottom of the RPi.
Step 1. [required to] Use GPIO Pins [otherwise optional]
The PoE Hat uses the 2x2 jumper block and I2C pins
To use other GPIO pins, then two stacking headers are needed:
2 x 20 Pin Stacking Header 2.54mm 11mm (the pins must be square and not flat), Amazon, $5.99 for four
2 x 2 Pin Stacking Header 2.54mm 11mm (the pins must be square and not flat) (I sacrificed one of the 2x20 and cut out the 2x2 using a cutting tool that uses a high-strength razor-blade. Of course, this isn't recommended.)
And some hardware, which are installed on the opposite side of the Raspberry Pi from the GPIO pins
2x Nylon M2.5 15 to 18mm standoffs with 2x screws and 2x nuts, Amazon, $12.99
Push the long header pins through the PoE Hat, and then attach the hat and header assembly to the Raspberry Pi
Step 2. Install M2.5 screws and standoffs on Raspberry Pi (see top image)
Step 3. Install PoE Hat using M2.5 nuts or screws (see top image)
Step 4. Insert microSD Card with raspbian
Step 5. Insert ethernet cable connected to PoE power source (switch or injector)
It takes a minute or two for the light to turn on, and then for the device to boot. I expected this to happen instantly.
Step 6. [optional} Fix for noisy PoE fan
If the fan is noisy
$ sudo nano /boot/config.txt
and add the lines:
# control PoE fan
# temperature in milli degrees Celsius
# The fan turns on at 65C and increases speed at 70C, I C 75 and 80C
# and drops to next lowest level when it drops by 2 or 5C
dtoverlay=rpi-poe
dtparam=poe_fan_temp0=65000,poe_fan_temp0_hyst=2000
dtparam=poe_fan_temp1=70000,poe_fan_temp1_hyst=5000
dtparam=poe_fan_temp2=75000,poe_fan_temp2_hyst=5000
dtparam=poe_fan_temp3=80000,poe_fan_temp3_hyst=5000
and reboot
$ sudo reboot
References:
How to identify Raspberry Pi hardware version number using linux command line
Run command: $ cat /proc/cpuinfo
In the output, look at the lines starting with: "CPU revision : " and "Revision : ". By checking the link above, the "Revision : " # can be translated into the version of Raspberry Pi. For example, a02082 is a 3B and a020d3 is 3B+
The PoE hat only works with Raspberry Pi 4 and 3B+
Troubleshooting:
If the length of the ethernet cable changes, then use a different PoE port on the switch
When doing the Home Security Camera project, I started with short cables and then moved to the longer cables that would be used and added short patch cables. Each time a change was made, I needed to move to a different port. I assume the PoE is negotiating the required voltage and current and when the cable length changes, this negotiation isn't automatic.
Software way to Measure Input Voltage to Raspberry Pi:
This command gives an indication of input voltage to the Raspberry Pi:
$ sudo cat /sys/class/leds/led1/brightness
255 is highest, 0 is lowest
Voltage Meter way to Measure Input Voltage:
Use a volt meter to measure between a 5v pin and a ground pin on the Raspberry Pi
Under Voltage Measurement:
This command shows if the CPU got throttled and several other items, like under voltage:
$ vcgencmd get_throttled
throttled=0x50003
The above is Hex, this is the binary pattern:
0101 0000 0000 0000 0011
Bits are 19 to 0, Left to right:
Bit 0 = Under-voltage detected
Bit 16 = under-voltage occurred