This project was inspired by an off-the-cuff comment during Maker Faire UK in March 2011. Over the weekend I was hanging out with members from a number of UK hackerspaces. One day a small group went off to play a game of Laser Tag. The paraphrased comment that suck in my mind after that was “wouldn’t it be cool to have our own Laser Tag system”.
Laser Tag is a multi player shooting game like paint ball. But instead of paint, pulses of infrared light are used to hit opponents. Commercial Laser Tag game systems are commonly known as Quasar in the UK/Ireland or Q-Zar worldwide. These systems can be found installed in bowling alleys or amusement arcades. DIY Laser Tag game systems also exist like the popular MilesTag system.
So when I heard that a hackable event badge called the r0ket was being developed for Chaos Camp 2011 by CCC Munich. I felt it would be a interesting platform to try and develop a DIY Laser Tag system with.
During camp I documented my progress on the camps wiki. Over the days and nights at camp I produced three prototype m0duls using strip board and a selection of components I brought with me. I wrote basic software to allow the r0ket and m0dul to be able to shot and be hit. The hardware selection was inspired by the MilesTag system and software should be compatible with the MilesTag II Data Protocol.
Directly after camp I didn’t make time to work on this project. But when I heard that a new batch of r0ket’s would be available at 28th Chaos Communication Congress (28c3) I started working on the project again.
For the next step in the this project I did some quick research on the capabilities of the micro controller on the r0ket. The MCU is a LPC1343 32-bit ARM Cortex-M3 with 32k of Flash and 8k of RAM from NXP. I was particularly interested in it’s pulse width modulation (PWM) support which could be used to modulate the IR pulses. In the camp version of the m0dule I used delay loops which was far from optimal. PWM on the LPC13xx chips is implemented using timers and match registers which can directly toggle the GPIO pins when the timer’s registers match programmable values.
Unfortunately none of the select pins on the m0dulebus of the r0ket connected to these PWM pins on the LPC1343, so I needed to come up with an alternative solution. My proposed solution was to use an external oscillator to generate the 56kHz carrier signal and have the r0ket just turn it on and off as needed to fire the pulses. After a bit of research I settled on using a 555 timer IC in astable mode.
Logically the improved Laser Tag m0dul v0.8 Prototype consists of three separate boards. A control board connecting directly to the m0dulbus, an IR transmitter board housed inside the gun barrel, and one or more IR detector boards placed on the players body.
On the control board I used a TS555CN, a low power 555 CMOS timer from ST Microelectronics which would work with the 3.3 volts provided by the r0ket. A quad NAND gate is used to turn on and off the 555 and to modulate the signal from the active low outputs of the m0dulebus select pins. Sound output on the control board was to be provided by an ISD1740 voice recorder and playback chip from Nuvoton. The ISD1700 range of chips are inflexible for this project and hard to program, so I will replace it in a future revision (I will document my findings on the ISD1700 for the record in a future blog post). A speaker, trigger button and connection headers are also provided on the control board.
The transmitter board has an IR LED, a TSAL6100 High Power IR Emitter from Vishay Semiconductors. To greatly improve the range of the IR LED over 500 milliamperes is past through it and controlled a TN0106 MOSFET from Supertex Inc. Two additional LED mounting spaces are provided these can be used to provide a muzzle flash effect and are also switched by the MOSFET. A separate set of four AA batteries in series are used to power the IR transmitter board.
The detector board has space for two TSOP34856 IR Receiver Module’s from Vishay Semiconductors to detect shot pulses. The TSOP34856 receiver has a pin diode and pre amplifier which can filter and demodulate 56kHz modulated signals. With an active low output, multiple TSOP348 receivers can be connected one MCU pin. A MCU controlled LED is also provided to allow a visual indication of a successful hit.
The physical arrangement of a tagger has the IR LED placed at the focal-point of a lens, Leif Bennett has a good page on choosing a Lens. I went with an acrylic plano-convex lens with a 40mm diameter and a 180mm focal length, a OPL8A from GreenWeld. This mounts nicely on a regular 40mm diameter white plastic waste pipe available here in Ireland. By cutting suitable slots in the waste pipe and shaping the PCB I was able to slot them together forming a rigid connection and at the same time mount the LED at the focal-point of the lens. I left extra board in the PCB layout which could be used to form a basic handle after shaping.
In order to have boards available for congress I had to get the boards fabricated in mid December before I had fully tested the design. In the mean time I etched a couple of boards myself, these boards proved the schematic and layout worked. But I did make some minor changes to make self etched boards easier to work with particularly because of the lack of through plated holes/vias.
At the last minute while testing the prototype with an oscilloscope and frequency counter I noticed that the frequency of the 555 didn’t match with what I had calculated, about 42kHz instead of 56kHz. I had to search through my selection of resistors to find a suitable combinations of values which would generate the correct frequency.
During congress I assembled a second prototype and updated the firmware to work with the hardware changes. In tests inside the Berliner Congress Center (BCC) we found that the hits could be registered over about 30 meters, in a test we tried outside the hits worked over 100 meters. On reflection these long range tests worked too well and probably show that the optical arrangement needs to be tuned so the beam spot is much smaller.
A pdf of the schematic can be downloaded here:
Laser Tag r0ket m0dul v0.8 Schematic
The TODO list includes documenting the board assembly; and releasing the schematic, layout and source code.