0

I am using a Raspberry PI4 powered by the Raspberry power supply(5.1V,3A) and I have also a Coral TPU and a Telit Lte Modem attached on Raspberry USB 3.0 Ports Hub. According with the Coral Power specifications, the USB TPU consumes about 500mhA. Running lsusb -v seems Coral TPU to consumes 498mhA. The Telit Lte Modem seems to consumes 500mhA and there is a VIA Labs, Inc. that consumes 100mhA

As explained in several articles and posts, Raspberry can support a maximum consumption of 1200mhA on the USB ports(all).

Why I am getting a lot of Under-Voltage Detected! messages running dmesg if power consumed by the usb ports seems less than the maximum available?

Thank you in advace!

1
  • What do you mean by mhA? mAh might be milliamp-hours, but what is mhA? Are your specifications actually quoted this way - or is it mA?
    – Seamus
    Mar 3 at 6:37

2 Answers 2

1

The Telit modem can demand brief current pulses up to 2 amps when transmitting, and the Pi circuitry is reacting to that.

Here is a sample oscilloscope current trace from an earlier Telit modem (GL865); the peak current depends on which band the modem is transmitting in, but I'd guess yours is similar to this. Note the large number of transmit current pulses, and the difference between the average current (45 mA) and the peak values (970 mA). GSM modem current when registering on network

0

I'm not sure I understand the mhA units in your question.

Regardless, your question asks about the source of the low voltage warnings, so we'll focus on that:

The scope traces in the other answer could explain the under-voltage warnings. Here's how that works:

On the RPi 4 (and 3B+) low voltage warnings are triggered by the PMIC (Power Management IC) - p/n MxL7704. An overview of the MxL7704 is available in another answer here if you're interested in those details, but the part relevant to your question is this: The MxL7704 PMIC monitors the input voltage to the RPi, and whenever that voltage falls below 4.63 volts, a Low Voltage Warning is issued to the system.

Why does the voltage fall below 4.63V?

There are two or three possible causes:

  1. The current that flows through your power cord to the RPi creates a voltage drop while passing through the copper conductors. The amount of the voltage drop is given by Ohm's Law: V = I * R. In other words, the more current that flows, the greater the voltage drop. The current spikes shown in the oscilloscope traces also represent an increased voltage drop in the power cord, and therefore a lower voltage is being delivered to the MxL7704 PMIC.

  2. The Raspberry power supply(5.1V,3A) you are using does not regulate the voltage at the input pin of the MxL7704 PMIC. The voltage regulator is housed in the plastic shell of the "wall wart" you plug into your mains outlet. And so, you might imagine that the voltage regulator is saying to the RPi, "Don't tell me the voltage is too low - it was 5.1V when I sent it to you. Take your complaint to the power cord."

  3. It's also true that voltage regulators are not perfect. That is to say that a power supply rated at 5.1V at 3A, will very rarely maintain the exact same voltage across the entire range of its load current capacity. And there will be manufacturing variances, temperature will have an effect, etc, etc. The sharp transients shown in the oscilloscope traces may also be beyond the voltage regulator's transient response capabilities. If the oscilloscope readings in the other answer had measured the input voltage at the RPi, they would be more specific to your question - but they are relevant nevertheless, as they indicate a challenging load that the RPi supply may not be capable of handling very well..

The RPi designers have been walking a tightrope with respect to their power supply design. The input connector they have chosen is the USB-C (for the Pi 4), and the USB-C connector specification imposes physical limits on the wire gauge (diameter) that may be used. Three amps is quite a lot of current for a 22-24 AWG wire, and longer power cords increase the voltage drop.

Available remedies include using the shortest power cord possible, and powering your peripherals through a separate supply. Let us know if you have further questions.

3
  • You're right, my mistake. We are actually talking about mA and not mhA. Thanks for the details, I'll work on it but I think the problem is the SixFab / Telit module consuming too much current at peak times. In fact, if I unplug the module and use only the WiFi (integrated) I have no Under Voltage problems even with the TPU connected and working (498mA). If I plug in the SixFab / Telit module and unplug the TPU I still have Under Voltage Detected events. Mar 3 at 8:30
  • As shown by @jayben the Telit module has peak values up to 970mA. Considering that the raspberry can supply a maximum of 1.2A to the USB ports (all of them), I suppose that the TPU with a regular consumption of 498mA is not a problem while the Telit that sends data (even large ones) could need much more current and raise an Under Voltage event. Does it make sense to you? Mar 3 at 8:30
  • Well, yeah - but you asked about the Low Voltage Warning. AFAIK, there is no Low Voltage Warning for the USB limit. The only event that creates the LVW is Vin < 4.63V. Pls don't forget to vote if you found the answer useful.
    – Seamus
    Mar 3 at 8:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.