wiki:RobitronicSerial

Robitronic Overview

The Robitronic lap counter is an IR based lap counter that communicates using a serial protocol.

Connection Information

To connect to the Robitronic lap counter you must open the COM port with the following settings:

  • 38400 Baud
  • 1 Stop Bit
  • Parity None
  • Length 8 bits

Initialization

After you have connected to the Robitronic lap counter you must initialize it for communications. This is done with a simple command.

03 B9 01

After this has been sent the lap counter will respond with a 00 and then beginning transmitting lap information. There are two know packet types that the lap counter will return, a packet when a car is detected and a periodic time packet.

There appears to be no delimiter character, packets begin with a byte representing the length of the packet.

Car Detected Packet

If a car is detected the lap counter will return a packet like the following:

0D BD 84 1E 08 00 00 E7 36 00 00 55 F9 

The breakdown of this packet is the following:

Byte 1 is the length of the packet including this byte 0D for car detected packets
Byte 2 is the checksum
Byte 3 is the type of packet, 84 if this has car information
Byte 4-5 represent the UID of the car in reverse byte order
Byte 6-7 unknown, 00 in examples given
Byte 8-11 are the seconds in thousandths of a second in reverse byte order
Byte 12 is the number of hits the lap counter detected
Byte 13 is the signal strength

There is no specific character used to represent the beginning or end of a packet, instead the protocol has the first byte of the packet set to the length of the packet including that byte.

Time stamp packet

Approximately every second the lap counter will send a packet with just the time stamp. This pack can look like this:

0B 5C 83 9B 3A 00 00 14 D0 01 02 

The breakdown of this packet is the following:

Byte 1 is the length of the packet 0B in the case of just a time stamp
Byte 2 is a checksum
Byte 3 is the packet type, 83 in the case of time stamp only
Byte 4-7 is the seconds in reverse byte order in thousandths of a second
Bytes 8-11 are unknown but in example were always 14 D0 01 02