Raspberry Pi Battery Test

The following script was created to test the Raspberry Pi under a moderate system load.  This was done to simulate the process of scanning a network while maintaining a wireless connection with the Raspberry Pi to achieve realistic results of actual battery life with a Limeade 15,600mAh battery.  During this test the following was running simultaneously on the Raspberry Pi:

  • SSH session over an Ad-Hoc network running Arpspoof continuously
  • SSH session over an Ad-Hoc wireless connection running Wireshark in X-forwarding mode sitting idle
  • The following script running continuously that
    • Opened a log file and appended the time every loop
    • Ran tcpdump and captured 300 packets at a time and logged them to a separate file
    • Paused for 30 seconds

The total runtime for the Limeade battery was:  22 Hours and 51 Minutes. 

Please use the following script freely.

Battery Test Script

#!/usr/bin/env python2.7
# Script to run tcpdump and store the output to a log file and pause for 30 seconds
# This will simulate the process of being on network and logging packets
# A time stamp will be recorded to a separate log file to track the length of running time
# By: Brett A. Hansen
# http://bahansen.info

import time
import subprocess
from time import gmtime, strftime

def write_log(logline):
    logfile = open('battery_test.log', 'a')
    logfile.write(logline + '\n')
    logfile.close()

# Start logging to file
item = 'Battery Log: '
logfile = open('battery_test.log', 'w')
logfile.write(item + '\n')
logfile.close()

# Write the Date & Time to the screen and logfile.  
# Log 300 packets with tcpdump & wait for 30 seconds
while True:
    logline = "RPI Still Up At : " + str(strftime("%Y-%m-%d %H:%M:%S", gmtime()))
    print "%s" % logline
    write_log(logline)
    p = subprocess.Popen(["tcpdump", "-wtcpdump.log", "-c300", "-ieth0"], stderr=subprocess.PIPE)
    time.sleep(30)