The Raspberry Pi foundation has launched a good number of boards and accessories, and although some people will question some of the design choices, their boards were fairly bug-free hardware-wise at launch, except for minor issues like the board rebooting while taking a photo with a Xenon flash. Recently they also had performance issues with Gigabit Ethernet in the Raspberry Pi 3 B+ board, but that looks like more of a software issue.
The Raspberry Pi PoE HAT announced with Raspberry Pi 3B+, but launched at the end of August for $20, however suffers from a more serious issue as it somehow limits USB current to 200mA instead of the usual 500mA, meaning that’s fine with USB keyboard and mouse, but as soon as you connect more power hungry peripherals like a USB hard drive, all hell breaks loose.
- 802.3af PoE
- Fully isolated switched-mode power supply
- 37–57V DC, Class 2 device
- 5V/2.5A DC output
- 25mm x 25mm brushless fan for processor cooling
- Fan control
5V/2.5A DC should be plenty enough to power all sort of USB peripheral devices, but once users got their hands on the board, some reported USB ports were not working, and the kernel log showed over-current protection messages.
The Register covered the issues, and got in touch with Eben Upton who explained the problem was due to:
an interaction between the fairly low-frequency switching regulator on the HAT, and one of the two brands of USB current limiting switch that we use on the main board.
Because the regulator operates at a fairly low frequency, each time it switches it moves quite a large chunk of energy into the three USB reservoir caps via the current limiting switch: this large instantaneous current is fooling the switch into thinking that a genuine over-current event is occurring
But why wasn’t it detect during testing? It appears load testing was only done on boards using one brand of the USB current limiting switch, while the other switch was only used for lighter load. The consequence is that some of the Raspberry Pi 3B+ board with the Pi HAT only delivering less than 200mA current to the USB ports.
That’s bad luck, but it’s also dangerous to expect components to be interchangeable without testing, even if apparently identical. Case in point: many years ago, we designed a keypad using ADC pins for one DVD player, and the keys are detected using the voltage levels, so we needed fairly accurate resistor with 1% accuracy. The good people who purchase part and always try to find a better deal from supply found out 5% resistor were a bit cheaper. As one should expect some of the keypad or specific keys would randomly stop working depending on the sample.
The Raspberry Pi foundation will fix the issue in future production runs, but in the meantime, people who own a Pi PoE HAT with the “wrong current limiter” can return it and ask for a refund, or the most adventurous can modify their board by first removing the reservoir caps from the main board, and adding small amount of series impedance in the current path from the HAT. We don;t have the exact details of the hack, but we should certainly expect more details on Raspberry Pi Blog in due time.
[Update: Added EEVBLOG video analyzing the design of Pi PoE HAT and that USB power issue