Battereyes are watching you

19 Dec

Even a battery can be a sensor. I measured the current in a remote control battery while pressing various buttons. The typical remote control dumps a LOT of current through an infrared LED (up to 1A momentarily). The better to reach a TV or DVD player in a far corner of the room. This activity shows up clearly in the battery current.

There are new user activity recognition tools out there that are just a bit bigger than a battery and add an accelerometer. Green Goose (whose sensor kit will be available in January) and Twine (which recently succeeded on Kickstarter–you can back them until January 3) are two. Software and the user interface are going to determine how useful these tools are. Today’s example shows there is plenty of information just from monitoring the battery’s current in an existing gadget.

With the remote, there is always a startup pattern in the battery current that probably is a manufacturer’s code, then a 4ms space, then a bunch of shark-fin shapes that vary depending on what button was pushed. Filter capacitors in nearly all gadgets store some power locally, preventing a blackout when there’s activity elsewhere in the circuit. These capacitors distort the battery signal level a lot–making shark fins from square waves–but they don’t change the timing between signal edges. You can definitely see a distinct timing pattern in the digits “o” through “9.”Tips of the fins are separated by either 1ms or 2ms. Here’s a screenshot of the variable part of the signal from pressing the button “5”

Battery current when remote control button 5 pressed

Battery current when remote control button 5 pressed

Assuming the 2ms corresponds to “1” and the 1ms corresponds to a “o” , there are 20 data bits here. There are 4 bits  that stay constant (1110), then 4 data bits (varies), four constant bits (1111), 4 bits that are the inverse of the data bits, and finally a constant (1111). Here are the data bits I found. Interestingly they don’t correspond to binary values for the button number. Anyone with a relevant datasheet might be able to check on this, it’s a Samsung Blu-ray remote circa 2008.

Button 0    1101
Button 1    0100
Button 2    1100
Button 3    0010
Button 4    1010
Button 5    0110
Button 6    0001
Button 7    1110
Button 8    1001
Button 9    0101

In short, your basic alkaline battery knows exactly what you’re doing, watching, and thinking. You may need to get out more. You can even zoom in see the 38 KHz infrared modulation that’s used to reduce sensitivity to ambient light. Read further for more on what is going on and how to do this on your own remote…

This slideshow requires JavaScript.

Check out Adafruit for great details on infrared encoding and LED experiments, and the tutorials here  for a few examples of different manufacturer encodings.

Here’s the setup. Testing is nondestructive to your remote control. I used an oscilloscope but you might be able to do this (well maybe not see the 38 kHz) with an Arduino at a very fast sampling rate. A simple way to sense the current is to add a small resistor, 1- to 10 ohms, in series with the batteries and monitor its voltage.

Setup to measure current using 10 ohm resistor

Photo of series connection to battery

Photo of series connection to battery


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: