Power Management

Before we automate the file transfer process, it might be interesting to have a look at our system's power consumption. A few points must be taken into account here that, in regard to each particular use-case, will help one decide on the most appropriate solution to use.

  1. Does the system require a network (or Internet) connection?
  2. Should the system care about power consumption (running on batteries)?
  3. What is the value of the stored data as it is stored on the system?
  4. How much storage space is available on the embedded system?

No Network (or Internet) Access

If your system doesn't have a network, or Internet, connection at all, the question shouldn't even be asked. You'll have to bring back the beast (or at least it's SD card), and use one of the below mentioned methods to access the stored data.

The main parameter in this scenario will most probably be the available embedded storage space. For example having a 15sec timelapse running at maximum resolution (Pi Camera v1: 2592×1944), will generate a jpg file weighting about 3MB every 15sec. This would saturate a 16GB SD card in about 16h30m… Way before you battery pack goes out!
You could spare some storage space by running a minimal OS on your RasPi, but that's another subject that is covered in this article

Side note: When the SD card gets saturated, and there is really no more space left on it, the OS itself will get inoperable. This is because it requires a minimum amount of storage space to function. For example trying to issue any command on a RasPi's console while running on a saturated SD card will return:

> -bash: cannot create temp file for here-document: No space left on device

At this stage your only option will be to plug the SD card into a reader on another platform and freeing up some space.

"Costly" Internet Access (like GSM 3/4G)

In case you have a “costly” connection, like a GSM stick holding a 3/4G SIM card, you'll probably want to minimize the bandwidth usage.

Covering the subject of optimizing Internet access while using a 3/4G GSM connection is outside the scope of this article but a starting point would be the following Get Cellular (GSM) Internet on your Raspberry Pi in 15 minutes article.

I'll try to give a more in-depth coverage of this point whenever I get the opportunity to access the required hardware.

Available Network Access

When a network access is available, wired or WiFi, one should consider that it utilizes a noticeable amount of power to operate, one should thus optimize its usage. The following paragraphs will try to present a few possible solutions.

Reduce Power Consumption

This article assumes we're working on any Raspberry Pi Model B, fully equipped with network adapter, USB ports and HDMI. Pi Zero and Model A are already built in such ways that their power consumption is much lower than Model Bs.

Also note that most of the following commands should be run as root, so whether login as root on systems that allows it or use su root to operate as root.

Network and USB adapters

The power hungry monsters in the Raspberry Pi are certainly the USB and Network Adapters. They were reported to consume as much as 200mA! Turning them off will enhance the system's autonomy when running off a power bank.

USB (+ Ethernet)

To switch off the USB bus on a RasPi, which will in effect also switch off the Ethernet port that is linked to this same bus, one can use the following commands:

Turn off USB on the Raspberry Pi:

> echo 0x0 > /sys/devices/platform/bcm2708_usb/buspower

When you need to turn it back on:

Turn on USB on the Raspberry Pi:

> echo 0x1 > /sys/devices/platform/bcm2708_usb/buspower

Network Adapter

To switch the network adapter on a RasPi one can use the following commands:

Turn off Network Adapter on the Raspberry Pi:

> /etc/init.d/networking stop

When you need to turn it back on:

Turn on Network Adapter on the Raspberry Pi:

> /etc/init.d/networking start

Of course, turning off the network adapter will prevent you from accessing the RasPi from any remote workstation.
Be aware that turning off both the USB and network adapters might lockout your entire RasPi system!

HDMI

Referring to this article concerning Raspberry's models power consumption, we observe that HDMI and LED usage are using about 30 mA (for a RasPi 3). Another interesting article about RasPi's power consumption states that turning off HDMI in a “headless” configuration saves about 20mA.

To turn off HDMI on the RasPi, simply issue this command:

Turn off HDMI on the RasPi:

> sudo /opt/vc/bin/tvservice -o

Unfortunately this command won't survive a reboot, so if we known the system is going to be headless we should trigger this on each boot.

Create cron job running at startup to turn off HDMI

TO BE COMPLETED

To turn HDMI back on, you'll need to have the kbd package installed to access and use the chvt command:

Turn HDMI back on

> /opt/vc/bin/tvservice -p && chvt 1 && chvt 7

WiFi & Bluetooth