Can you turn the modem off? Or put it to sleep?

I have the Raspberry Pi dev board kit and it’s been working well so far.

I’m currently optimizing for power draw however and changing how often I upload data does not seem to affect the power draw. I tried a 5 minute upload cycle and a 15 minute upload cycle and got the same power draw across an hour of runtime.

I don’t see anything in the docs about turning the modem off or going to sleep. I wonder if there is a way to turn the USB ports on the Pi off with a script, and if that would even drop the power use?

Is there a GPIO pin that could be used to turn the modem off?

I thought about trying a reboot, which would break the internet connection, but still keep the modem on and probably still talking to the towers, but I doubt that would have much affect.

Any ideas on lowering the power draw between times I need it to be active would be appreciated! Thanks in advance!

For context, I’m using this for a Pi-based timelapse camera. Basically, a homemade trailcam that creates timelapses automatically. The Pi and cellular hat are currently drawing about 370mA on average so I’ve only been able to get up to about 40-50 hours of runtime on a very large USB power bank. 50,000mAH power bank I have is of course only actually closer to 30,000 after the 5v conversion and in reality only makes it to about 17-18,000 in testing.

I have a solar panel that I’m experimenting with as well, but that seems to be pretty spotty. Not only is shade an issue, but I’ve tried several panels with minimal success so far. I’m not done with that element, but still want to minimize the power draw as much as possible regardless so I can avoid having to visit the camera and swap batteries as much as possible.

Hi @archaic0

Regarding your question about reducing power consumption on the Raspberry Pi 5G Dev Board Kit:

  • For optimal power and data efficiency , we recommend using the QMI Interface Mode. This mode allows the modem to operate efficiently while minimizing unnecessary power draw.

  • Additionally, you can control the HAT’s power using GPIO16 (PWR_DSBLE_P ) . By pulling this pin HIGH , the HAT will be powered off except for the fan, allowing you to save additional power between uses.

These options should help you implement scripted wake-up and transmit cycles while keeping power consumption low.

Thank you for this.

I did try it, but there doesn’t seem to be any indication on the modem that it is off. The red light stays on and the blue light keep blinking with the network status being ok pattern.

Here is my code and the output:

import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

GPIO.setup(16, GPIO.OUT)

state = GPIO.input(16)
if state:
print(“Pin starts HIGH”)
else:
print(“Pin starts LOW”)

print(“Setting pin 16 HIGH”)
GPIO.output(16, GPIO.HIGH)

state = GPIO.input(16)
if state:
print(“Pin ends HIGH”)
else:
print(“Pin ends LOW”)

$ python modem_off.py
Pin starts LOW
Setting pin 16 HIGH
Pin ends HIGH

$ python modem_off.py
Pin starts HIGH
Setting pin 16 HIGH
Pin ends HIGH

I also don’t have a fan… might you be referring to a different board?

I have the Raspberry Pi 4G/LTE hat and there is no fan.

YUP! Checked the technical page of the docs and found PIN 26 is the right power pin for my board.

Thank you! This will save me a TON of power and extend my runtime by a day or two.

I was previously using a Pi4 and also tried a Pi3, but the power draw was never lower than about 360mA. I’m now using a Pi Zero W and the base power draw is about 100mA. The cellular hat adds about 30-50mA when it’s on so being able to turn it fully off will let me keep the load around 100mA most of the time.

1 Like