10

I am looking to reduce the power consumption to a minimum on my RPi 3.

For my project, the Raspberry Pi Zero is not an option.

for now, I disabled Bluetooth and WiFi and made sure to kill some process when the PI is running on battery until the power comes back. however, I am having issue disabling USB port individually as I need to keep one running do you guys have an idea how I can do that?

I am also looking to throttle the CPU as the PI, will be just checking sensors and sending payloads to DB. what is a reasonable arm_freq?

I would appreciate any tips on how I can reduce my consumption. and how I disable HDMI, Audio and USB from config.txt instead of using a command like /usr/bin/tvservice -o

Senseh B
  • 203
  • 1
  • 2
  • 5
  • 1
    Even if you could disable ports individually it would not matter to power consumption, in the same way that disconnecting an unused outlet in your house would not make any difference. – goldilocks Jul 12 '19 at 17:46

3 Answers3

7

As far as I know, you can not disable only one USB. When you turn USBs power off, also the Ethernet port turned off. I don't know if there is a way to disable USB/Ethernet in config.txt, but in cmd line you can do it with:

echo '1-1' |sudo tee /sys/bus/usb/drivers/usb/unbind

To enable the ports use:

echo '1-1' | sudo tee /sys/bus/usb/drivers/usb/bind

What device do you use connected to the usb port? Maybe it could be possible to use GPIO to communicate with it (Serial, SPI, I2C).

--

About the config.txt, you can disable HDMI adding:

hdmi_blanking=2

I think that you can save a little bit of power disabling the LEDs on board (PWR and ACT). Add the following lines to config.txt:

dtparam=act_led_trigger=none
dtparam=act_led_activelow=off
dtparam=pwr_led_trigger=none
dtparam=pwr_led_activelow=off

About disabling audio, I'm not sure if it will help with power consumption, but you can try. I think that the line in config.txt is:

dtparam=audio=off
aitechone
  • 151
  • 3
4

This is an exercise in futility!

Disabling devices will make very little difference in power usage, which is mainly determined by processor load.

About the ONLY device which will have any affect is WiFi.

You should consider a Pi3A+ which has lower consumption and no USB hub or Ethernet.

Milliways
  • 59,890
  • 31
  • 101
  • 209
  • 1
    About processor load: would the consumption be noticeably lower on lower clock speed, or generally lower at idle times, regardless of clock speed. – Marcel Jul 12 '19 at 06:44
  • Modifying the clock speed is unlikely to make much difference. Raspbian by default runs the ondemand governor, which reduces the clock when there is a light load, and increases it when needed. There are powersave and conservative governors which may make a marginal difference, but I have never had the need to explore these. – Milliways Jul 12 '19 at 11:32
  • The 3A+ has USB. I think the power reduction is mostly about 1/2 the RAM. – goldilocks Jul 12 '19 at 17:44
  • @goldilocks The 3A+ has an OTG USB port on the SoC, like other A models, but does not have a HUB. – Milliways Jul 13 '19 at 00:16
  • Nope, see here (search down for 'OTG'). It's a standard USB 2.0 port and can't be used as a slave. But I am obfuscating the fact that it is not the same as the models which use the SMSC USB/ethernet driver, which is what's relevant to power consumption. I mentioned it initially because the OP does refer to needing one USB port, and one USB port and less power consumption it can provide. – goldilocks Jul 13 '19 at 11:01
3

It's absolutely about peripherals. The lowest hanging fruit for Pi 2/3b is the gpu if you are not using a display, then the usb/ethernet. The combined USB/ethernet chip consumes a couple of watts even when idle, and cannot be turned off reliably when the USB is on (I believe this may have changed with the 3b+). I believe there is a way to reduce this slightly by changing settings on some models, but can't recall the details.

With these peripherals off, then underclocking the cpu and ram helps a little, but I was unable to get much improvement over just running powertop --auto-tune (and with some workloads underclocking increases power).

Finally turning the LEDs off (echo gpio | tee /sys/class/leds/led0/trigger echo 0 | tee /sys/class/leds/led1/brightness) may save you 2-4mA, which can be over 10% if you've done absolutely everything else.

With all of these steps you can get consumption on a 2b well under a watt, but keeping it below 300mW is very difficult.

Matthew W
  • 31
  • 1