|Current Draw from 16-Channel OpenBCI System During Operation (no SD)|
As you can see above, I used my digital multi-meter (DMM) in its "mA" setting to measure the current flow. It doesn't matter where measure the current, you just have to break into the power circuit somewhere and bridge the gap with the DMM. I did it at the battery pack, because you just have to pop out one battery. Easy.
|Touch the Red Lead (Positive) to the Battery|
I measured the current draw of two of the three OpenBCI versions. As shown in the picture at the top, the 32-bit board with daisy module (ie, the 16-channel version of OpenBCI) draws about 62 mA. The picture below shows that the 8-bit board was drawing about 40 mA. In both cases, the boards were actively streaming their EEG data via their RFDuino BT module. Neither was saving data to their SD cards (SD writing can be *very* power hungry).
|Measuring the Current Draw for the 8-Channel 8-Bit OpenBCI Board.|
So, how long might the OpenBCI system run from a set of batteries? Well, that can be a complicated question. I started by looking at the datasheet for Energizer AA batteries (here). The graph below is copied from near the end of the datasheet. It shows how the battery voltage will change as a function of time for two different loads...one called "remote" and one called "radio". Which might be similar to OpenBCI? Well, if the 16-channel board is pulling 62 mA, and the nominal battery voltage is 1.5V, then the effective load is (1.5/0.062) = 24 ohms. Hey, the graph below says that the "remote" is also a load of 24 ohms! So we can read that line directly.
|Discharge Curve for Energizer AA Batteries. The 16-channel OpenBCI board might last 26 hours.|
Looking at the graph, we need to know when the batteries will no longer be able to power the OpenBCI system...when can we call the batteries "dead"? Often, AA cells are considered dead at 1.0 or even 0.8 V. Unfortunately, I think (I'm not sure) that OpenBCI can't run that low. I think that it needs a 5V supply to run (though I could totally be wrong, especially if it uses a buck-boost converter). If we assume that it needs 5V, and if we've got 4 AA cells, then each cell needs to supply at least 1.25V. That's our threshold.
Looking at the graph above, I focus on the blue line labeled "remote" and I see when it crosses our hypothetical 1.25V threshold. It says that it could live for 26 hours. Wow. That's a pretty long time. Cool.
Remember that this lifetime is for a 62 mA current draw (ie, for the 16-channel OpenBCI system). Pulling 62 mA for 26 hours means that we are utlizing 62 mA * 26 hrs = 1612 mA-hours of battery capacity. For the 8-channel board, which only pulls 40 mA, that same battery capacity might allow us to run for 1612 mA-hrs / 40 mA = 40 hours. Not bad at all!
Since the battery life looks pretty good, it means that we should be able to come up with some pretty good mobile EEG hacks. No need to stay indoors, people! Let's get outside and freak some people out with our silly EEG headgear!
UPDATE 2015-07-10: In the comments section, there's been some discussion regarding my "equivalent resistance" approach to estimating battery life. As an alternative, it might be better to assume that OpenBCI board is actually a constant current load, rather than a constant resistance load. So, let's estimate the battery life using that approach. Below is the graph from the datasheet for battery life as a function of constant current draw.
|Another Method of Estimating Battery Life for the 16-Channel OpenBCI Board.|
To use this graph, I start with the knowledge that the OpenBCI board draws 62 mA. This locates me on the x-axis. I then read up to the line corresponding to the battery voltage where my device will die. In this case, I think that OpenBCI will die at 1.25V. There's a curve for 1.2V. Let's use that. From that point, I read off the the service life from the y-axis. Allowing for some uncertainty in reading a value from a logarithmic scale, it looks like the battery life would be about 23 hours. This value agrees decently well with the 26 hour value that I found based on my "equivalent resistance" method. Such agreement is always satisfying. It doesn't always work out that way. :)