This is an introduction that briefly describes the process of bringing laser taggers from the back of my mind to something I can hold in my hand. The long, long LOOOONG version can be found on my blog which details every day of the process which took roughly half of 2017.
3D printing seemed like the perfect venue for building a laser tag gun (tagger) and I had been modeling in OpenSCAD for a couple years so I figured I was ready to tackle the task of making a tagger. This was the first design, it was going to be propped up on a sturdy tape gun handle and all the parts inside would be held together with machine screws and bolts. I was okay with the boxy design for a first pass. Unfortunately, the parts became larger than my print bed, which was medium at 200mm and much too big for some of the small printers. Keeping the parts accessible to lots of people was important and I didn't want to exclude someone with a small printer.
Here's the first model infinitely exploding and rotating.
Every print was flimsy and refused to fit properly. I even tried to add steel keel down the middle which would add some heft and support but it was a losing battle.
This was only first of many road blocks. Remember that tape gun handle I talked about earlier? Well, this wasn't my first attempt at building taggers and one of my earlier attempts involved bolting PVC pipes together in a gun shape. If you have ever worked with round pipes you will know that they do not play nicely with other shapes. This was exactly the reason I abandoned the idea years ago. Nevertheless, I didn't ignore it as a worthy building material. With the failure of the full-printed tagger, it was time to brainstorm for a building material which was rugged, inexpensive, and accessible.
Plumbing pipes! I bet you saw that coming.
A whole new model was started. This time the printed parts would interface between a piece of pipe and the component I wanted to mount. Have you ever seen a switched mounted on an electrical pipe? No. They are always mounted on an electrical box which has flat faces. How many flat faces are on a round pipe? Zero. This wasn't a match made in heaven but modeling 3D parts around the curvature of a pipe would be a plain matter of some basic measurements and math. Now, OpenSCAD was a perfect match.
My first attempt at laser tag was not entirely unsuccessful. I did program an Arduino to act as a laser tag controller with a basic game mode and everything. Since that time I also grew an appreciation for modularity and where to cut costs and where to spend. At first, the whole system was going to reside on a single Raspberry Pi 0. All the LEDs, switches, and sound would come from it. This wasn't the worst idea but it was abandoned in favor or putting all of the tagger's I/O (inputs and outputs) onto a single Arduino. Arduinos are notoriously easy to find and not as intimidating to beginners as many other microcontrollers. They have a huge community of support and documentation plus they're easy to replace if the tagger falls in the water or takes a nasty hit.
For this project, an Arduino Micro Pro was selected because of its easy-to-use serial communication and they connect to many computers without additional downloads. The infrared library by Ken Shirriff has been reliable and used for years by many hackers, myself included. It served as the communication core of the Arduino firmware. The library did need a little tweaking to work with the Micro Pro but I outlined that process here and it's very important.
The firmware programmed into the Arduino was revised for a couple weeks until it withstood the onslaught of commands coming from an Arduino serial terminal running on a Windows machine and a Raspberry Pi running a Python script where the game was being built. The beauty was that there was no game data in the Arduino. You could program it to deliver one point of damage or 65,000 points of damage and it didn't know the difference. It was nothing more than a peripheral to the computer which could be Windows, Linux, Android, another Arduino, ESPxxx or any box capable of performing automation through a serial port. Support on multiple operating systems was another benefit of using an Arduino in the tagger.
It became clear that the Arduino as a firmware-carrying device was the best way to go so a custom printed circuit board (PCB) was designed and ordered. The PCB included a socket for the Arduino rather than integrating the components directly to the board. This was significantly faster to design and it allowed anyone to solder up a control board because it didn't involve any small or fragile components. In fact, the control board uses all insertion mount technology (IMT) components. This is roughly the skill level of a beginner's soldering kit. The PCB is open-source so anyone can make their own edits or order their own batch. There is even a version of the PCB which is easy to print at home if you're inclined to make your own single-side PCB instead of ordering one. It has thicker traces which are easier to transfer which I found to be very important while I screwing up my own homemade boards.
There was a similar process for the sensor boards which receive infrared signals from opponents but these have small (1206) surface mount technology (SMT) components but they are possible to solder by hand. That was intentional. Source material for these boards is also available. They're single-sided so making them at home is inexpensive and simple, as far as homemade PCBs go.
With the electronics and programming sorted out, I started back on the physical tagger. I took some pride in the design and my in models so each dimension has been deeply integrated and tested. This deep integration with OpenSCAD means that a change to one part doesn't screw up everything else. The parametric nature of OpenSCAD actually makes changes like this simple, if done properly. For example, I used 2" ABS pipe, available at my many hardware stores across the USA. I realize that 2" pipes aren't used in most other countries and if someone were to input the inside radius and outside radius of an equivalent metric pipe those changes would ripple through the rest of the models without much fuss. Maybe none, I haven't tried it.
The final version of the tagger is spinning below. This represents over eight hundred lines of code written over months. Each part can be rendered individually with predictable changes to the code and all the code and models are freely downloadable. OpenSCAD is also open-source and small enough to fit on a flash drive from 2012.
I have a donation link on my blog but what I really want is for people to show their gratitude by building these and exercising and taking pictures of how much fun they're having. If people write their own games it would be spectacular if they shared them with the world. I have notion that strapping a cheap Android phone to a tagger would be one of the world's first laser tag gun with a touch screen and Bluetooth sound. Just sayin'