OpenLaserTag IR protocol
Overview
OpenLaserTag protocol is based on the MilesTag II protocol, extends its capabilities and is backward-compatible with this protocol. Allows up to 32767 unique player ID, 15 bits for player ID. It allows Big Game for many players. The last 1024 IDs reserved and indicate anti-materiel weapons. This fully penetrate armored target.
Protocol specification | |
---|---|
Carrier frequency: | 56kHz |
Recommended carrier duty-cycle: | 1/3 |
Recommended sensors: | TSOP2256, TSOP4856, TSOP34856, TSOP32256 |
Shot Packet bite count | 22 |
Command Packet bite count | 24 |
Modulation
The protocol uses pulse width encoding of the bits. The pulse representing a logical “1” is a 1.2ms long burst of the 56kHz carrier, while the burst width for a logical “0” is 0.6ms long. All bursts are separated by a 0.6ms long space interval. The recommended carrier duty-cycle is 1/3. Receiver
OpenLaserTag Packet
The LaserTag uses two types of packets. The Shot packet is used for shooting. The Command packet is used for game moderation and basic player settings. The Advanced player settings are realized with using other wireless technologies or IR protocol extensions.
The Shot Packet begins with a 2400us header followed by a 600us pause. The data partion for the Shot Packet is 22 bits. The first bit specifies Shot Packet. “0” indicates Shot Packet, “1” indicates Command Packet. Next 7 bits is the first part of the user ID, it can be the club ID for backward compatibility. Next 2 bits is team ID. Next 4 bits damage. Last 8 bits is the second part of the user ID. The most significant 3 bits this second part indicate anti-materiel weapons.
Team | Binary ID |
---|---|
Red | [00] |
Blue | [01] |
Yellow | [10] |
Green | [11] |
Damage | Binary ID |
---|---|
1 | [0000] |
2 | [0001] |
4 | [0010] |
5 | [0011] |
7 | [0100] |
10 | [0101] |
15 | [0110] |
17 | [0111] |
20 | [1000] |
25 | [1001] |
30 | [1010] |
35 | [1011] |
40 | [1100] |
50 | [1101] |
75 | [1110] |
100 | [1111] |
The Command Packet begins with a 2400us header followed by a 600us pause. Next 24 bits that contain a command message. Italic indicates expansion beyond MilesTag II.
Command | First Byte | Second Byte | Third Byte |
---|---|---|---|
Add Healt 1 to 100 | 0x80 | 0x01 to 0x64 | 0xE8 |
Add Rounds 1 to 100 | 0x81 | 0x01 to 0x64 | 0xE8 |
RESERVED | 0x82 | --- | 0xE8 |
Admin Kill | 0x83 | 0x00 | 0xE8 |
Pause/Unpause | 0x83 | 0x01 | 0xE8 |
Start Game | 0x83 | 0x02 | 0xE8 |
Restore Defaults | 0x83 | 0x03 | 0xE8 |
Respawn | 0x83 | 0x04 | 0xE8 |
New Game | 0x83 | 0x05 | 0xE8 |
Full Ammo | 0x83 | 0x06 | 0xE8 |
End Game | 0x83 | 0x07 | 0xE8 |
Reset Clock | 0x83 | 0x08 | 0xE8 |
RESERVED | 0x83 | 0x09 | 0xE8 |
Initialize Player | 0x83 | 0x0A | 0xE8 |
Explode Player | 0x83 | 0x0B | 0xE8 |
New Game (Ready) | 0x83 | 0x0C | 0xE8 |
Full Health | 0x83 | 0x0D | 0xE8 |
RESERVED | 0x83 | 0x0E | 0xE8 |
Full Armor | 0x83 | 0x0F | 0xE8 |
RESERVED | 0x83 | 0x10 | 0xE8 |
RESERVED | 0x83 | 0x11 | 0xE8 |
RESERVED | 0x83 | 0x12 | 0xE8 |
RESERVED | 0x83 | 0x13 | 0xE8 |
Clear Scores | 0x83 | 0x14 | 0xE8 |
Test Sensors | 0x83 | 0x15 | 0xE8 |
Stun Player | 0x83 | 0x16 | 0xE8 |
Disarm Player | 0x83 | 0x17 | 0xE8 |
RESERVED | 0x84 | --- | 0xE8 |
RESERVED | 0x85 | --- | 0xE8 |
RESERVED | 0x86 | --- | 0xE8 |
System Data | 0x87 | [Not Implemented] | 0xE8 |
RESERVED | 0x88 | --- | 0xE8 |
RESERVED | 0x89 | --- | 0xE8 |
Pickup Clips Box, quantity 0 to 15 | 08A | 0x00 to 0x0F | 0xE8 |
Pickup Health Box, quantity 0 to 15 | 0x8B | 0x00 to 0x0F | 0xE8 |
Flag Pickup, Flag ID 0 to 15 | 0x8C | 0x00 to 0x0F | 0xE8 |
Radiation Zone remove Health 1 to 100 | 0xA0 | 0x01 to 0x64 | 0xE8 |
Anomaly Zone Add Health 1 to 100 | 0xA1 | 0x01 to 0x64 | 0xE8 |
Set Game Mode | 0xA8 | 0x00 to 0xFF | 0xE8 |
Set Team ID 0 to 3 | 0xA9 | 0x00 to 0x03 | 0xE8 |
Add or Remove Red member Health -128 to 127 | 0xB0 | 0x00 to 0xFF | 0xE8 |
Add or Remove Blue member Health -128 to 127 | 0xB1 | 0x00 to 0xFF | 0xE8 |
Add or Remove Yellow member Health -128 to 127 | 0xB2 | 0x00 to 0xFF | 0xE8 |
Add or Remove Green member Health -128 to 127 | 0xB3 | 0x00 to 0xFF | 0xE8 |
Respawn Team member ID 0 to 4 | 0хВ4 | 0x00 to 0x03 | 0xE8 |
Kill Team member ID 0 to 4 | 0хВ6 | 0x00 to 0x03 | 0xE8 |
Full Ammo Team member ID 0 to 4 | 0xB7 | 0x00 to 0x03 | 0xE8 |