Powering your TinyPilot safely - tiny-pilot/tinypilot GitHub Wiki

TinyPilot presents an interesting power challenge on the Raspberry Pi. TinyPilot requires a connection between the target computer and the Raspberry Pi's USB-C port, but the USB-C port is the Pi 4's only power port.

The risk of external power

If you choose to power your Raspberry Pi from an external power source, it's important to take precautions to ensure that you don't damage your Pi or the target machine's USB port.

A computer's USB port also produces power. The risk arises from the fact that USB ports don't guarantee an exact voltage output. The USB power spec allows a voltage range of 4.4V and 5.25V. If the computer's USB port drops to just 4.9 V while the external power continues delivery 5.0 V, assuming a ~150mΩ resistance on the cable, that creates a 333 mA reverse current into the computer's USB port, potentially causing permanent damage. USB ports can deliver voltages as far as 850 mV apart and still be within spec, so the range of potential reverse current is quite large.

Therefore, we recommend against powering your TinyPilot device from an external source unless you've put protections in place.

Power/Data splitter

TinyPilot offers a custom power protector for the Raspberry Pi. It disconnects the USB-C power line from the USB data cable connected to the target computer. This allows the Pi to maintain a data connection with the target computer while also preventing dangerous power backflow.

TinyPilot Power Connector

Running exclusively on USB power

It's possible to run TinyPilot exclusively on the power from the target computer's USB port. USB 2.0 outputs 0.5 Amps of power, and USB 3.0 outputs 0.9 Amps. Both of these are far short of the 3 Amps that the Raspberry Pi spec calls for, but the spec is meant to cover all possible usage of the Raspberry Pi, including with multiple USB devices attached. A Pi without peripherals generally uses less than 0.9 Amps of power, even under heavy CPU load.

Still, it's preferable to run the Raspberry Pi with a full 3 Amp power source so that it operates as the manufacturer intended.

The other downside of relying on power from the target computer is that some motherboards stop delivering power to USB ports when the machine is powered down. This would cause the Raspberry Pi device to unexpectedly lose power when its target machine shuts off.

Risks with PoE

Users often ask if they can mitigate the risk of reverse current by adding a PoE HAT to their Pi and powering it that way. This unfortunately is not possible.

While earlier iterations of the Pi included ZVDs to prevent reverse current, the Raspberry Pi 4B does not. It is the responsibility of the HAT to provide this protection if the Pi connects to another power source (like a computer, through USB-C), but I have not found any commercially available PoE HAT that includes this protection.

TinyPilot designed and manufactured its own custom PoE HAT that protects against reverse current. PoE is available on the TinyPilot Voyager 2.

If you use an off-the-shelf non-TinyPilot PoE HAT, you should disconnect the power line from the USB cable connecting the Pi to the target computer. You can do this by putting a TinyPilot Power Connector between the Pi and the computer. If you're using PoE, you can skip connecting the Power Connector's Power port.