Sunday, January 4, 2009

Chrono Timer "Reverse Engineering"

My friend Baldo ask me to check his chrono, so I took the time to perform some reverse engineering. Let's see what a chrono is: "digital chronometer which can determine lap times using a infrared transponder". Seems to be asy, but how it works?!? You must know that it is composed of two parts: the chrono has to be mounted on the bike and the transponder has to be placed in the pit-lane. A coded infrared beam start and stop the chrono at every bike laps. Typically, the infrared transponder has the selection of transmission channel (i.e. channel 0, 1, ... , 9) so to be immune to signals arriving from other transmitters or sun rays.
But how it works really?
The chrono is composed of two parts: the IR receiver and the chrono main unit. I have disassembled the IR receiver, and I have discovered that it contains a quite common components: TSOP1736
The TSOP17xx – series are miniaturized receivers for infrared remote control systems. PIN diode and preamplifier are assembled on lead frame, the epoxy package is designed as IR filter. The demodulated output signal can directly be decoded by a microprocessor. TSOP17.. is the standard IR remote control receiver series, supporting all major transmission codes.
In order to discover how it works, I have soldered a cable on the output pin (#3) and I have connected to an oscilloscope, the following video could explain the experiment set-up:


(I admit that the video is not so clear, I have to improve...)
Anyhow, the stuff is that the transponder has 10 selectable channels (from 0 to 9), using the oscilloscope is possible to determine the bit-stream and try to understand it. Here what I found:
- each bit-stream is 10.3 msec long
- each bit-stream starts with a start sequence Low High Low (Low takes 400usec, High takes 600usec, Low takes 400usec)
- each bit-stream codes the selected channel

Channel 0:

Channel 0 (code 0) is the simpler transmission, where there is no other transition then the start sequence:


Channel 2:


Channel 4:


Channel 6:
Channel #6 is coded as 4 + 2:

as shown:


Channel 7:



Channel 8:



Channel 9:



At the end is nothing really "so difficult", therefore if you would like to build up your own IR transmitter / chrono timer, you have now the basis on how to do it...

No comments: