« Gathering the XBox DVD Remote Codes: Method | Main | Hello, world! »

WWASD?

I've got the data from hundreds of remote-control transmissions in a handy file format. What would a statistician do? Analyze it, of course!

Remember that the XBox remote transmits in the RCA protocol; that protocol allows for 5 different sorts of pulses:

  • mark_4ms: nominal 4 ms "mark" (active IR transmission)
  • space_4ms: nominal 4ms "space" (no IR transmission)
  • mark_500us: nominal 500μs mark
  • space_1ms: nominal 1ms space (logic 0)
  • space_2ms: nominal 2ms space (logic 1)

The real world is usually a bit messy - in this particular case, the data I measured coming out of the IR receiver module diverges from those nice values. So, by trial and error, I determined an upper and lower bound for each pulse type. I bin the data into the 5 types according to these thresholds (a value falls in a bin if it is in the range (min-bin-value, max-bin-value), where the parens represent noninclusive boundaries):

bin min-bin-value max-bin-value
mark_4ms 4.01 4.07
space_4ms 3.9 4.0
mark_500us 0.5 0.56
space_1ms 0.9 1.0
space_2ms 1.94 2.0

Notice that the "mark" bins have larger than nominal values, while the "space" bins have smaller than nominal values. (By the way, by design, every duration value I collected falls into one of the 5 bins.)

Here are some statistics on the collected data, grouped by bin:

bin average value min value max value deviation from nominal (%) number of samples
mark_4ms 4.046216011 4.02744 4.06724 +1.155% 1514
space_4ms 3.979702576 3.96054 3.99844 -0.507% 1514
mark_500us 0.539785722 0.51732 0.55442 +7.957% 37850
space_1ms 0.95811015 0.94466 0.98132 -4.189% 18168
space_2ms 1.965947435 1.94998 1.98714 -1.703% 18168

Average, min and max are useful, and reveal basic facts, but also hide other things. For a full picture, there's nothing like... a picture. I discovered something interesting when I plotted each bin's data as a histogram. Click on a chart thumbnail to see the full-size version:

IR Receiver Output

Bin Histogram
mark_4ms
space_4ms
mark_500us
space_1ms
space_2ms

Isn't that peculiar? The data for each bin is clustered into groups rather than being a nice normal distribution.

Well. The measurement is made on the output of the IR receiver; could that receiver be distorting my nice clean data? Moving upstream a bit, I took apart the Xbox remote control, and found a very simple circuit driving the IR LED. (The box labled "micro" is an integrated circuit whose markings were pretty much indecipherable - presumably some simple microcontroller.)

measurement3.jpg

I've taken a new set of measurements between the cathode of the IR LED and ground.

Internal-toXBox-Remote, IR cathode-to-ground

Bin Histogram
mark_4ms
space_4ms
mark_500us
space_1ms
space_2ms

These histograms show that the XBox remote itself is emitting pulse durations which tend to cluster into sub-bins separated by about 20μs. The histograms have higher peaks than those measured at the IR output - perhaps the IR receiver circuit has a "smearing" effect (I can imagine that the automatic gain-control part of the receiver would have this effect).

Move forward!

This measurement and analysis is fun laboratory work, but I'm anxious to get started on some firmware. Were I to continue in this vein, I'd work on some of these tasks:

  • Investigate the effect of transmitter-to-receiver distance on pulse durations
  • Get at least one more Xbox remote, and compare pulse duration statistics
  • Try to find a datasheet for the alleged microcontroller in the Xbox remote
  • Probe more pins on the alleged microcontroller - try to correlate pulse duration with power supply, incoming clock frequency, ...

But instead, now it's time to get back to my long-neglected f2013. As a preliminary step, I plan to learn about the f2013's clock source options think about the problem of debugging visibility in embedded systems.

Oh, right. Here are the up-to-date tb_6 (IR receiver measurement) and tb_7 (IR LED cathode measurement) files.

TrackBack

TrackBack URL for this entry:
http://www.antfarm.org/cgi-bin/blog/mt-tb.cgi/37

About

This page contains a single entry from the blog posted on August 26, 2007 10:14 AM.

The previous post in this blog was Gathering the XBox DVD Remote Codes: Method.

The next post in this blog is Hello, world!.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.31