« 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

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

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