Python C++ SMT CMake JavaScript Makefile Other
Switch branches/tags
Nothing to show
Clone or download
brghena Script to download Voltage and Current samples
Super manual at this point, with calibration parameters hardcoded in the
`collect_samples.js` file.
Latest commit a418afe Jul 28, 2018
Failed to load latest commit information.
data_collection Script to download Voltage and Current samples Jul 28, 2018
docs added status model Mar 27, 2017
eagle updated gerbers Jul 18, 2016
other cleaned up powerblade repo Apr 18, 2016
sql final edits in big push to finish dissertation and defend Jun 22, 2017
.gitmodules nrf51 app for powerblade using sdk10 Dec 4, 2015 markdown is hard Nov 17, 2016


PowerBlade is a miniature plug load power meter - it is small enough to fit between the plug and the outlet while performing its metering operation. Achieving this form factor requires targeting every aspect of traditional power meters, including contact method, power supply, voltage and current sensing, and data communication (Bluetooth Low Energy, in this case).

There have been multiple iterations of PowerBlade, starting with a backscatter- based variant and eventually transitioning to the BLE version. Along the way there have been several iterations of the contact method, starting with flexible PCB layers to touch the prongs and ending with spring-loaded pins which make contact more reliably and repeatably.

Future work on this system will include improvements to the accuracy of the unit (PowerBlade readings currently have 5% to 10% error but we believe this can be significantly lower), as well as safety.

How Do I View My PowerBlade's Data?

  • Option 1: Install Summon [Android, iOS].

  • Option 2: Run a node.js script to view packets on your computer.

    cd data_collection/advertisements/
    npm install
    sudo node powerblade_adv.js

    This requires that you have support for running as a BLE master on your machine. To get setup, see the instructions below.

BLE and node.js Setup

  1. Install Node.js for your platform. Node.js provides a JavaScript runtime to execute the data collection script in.

  2. Install BLE dependencies for your platform.