Transform a piece of plumbing pipe into a rugged laser tag gun.

Similar projects worth following
Pi - Raspberry
Tag - Laser
Err - Prone
Us - We

Laser tag and paintball are both great activities for fun, sport, and exercise but they're expensive. This project aimed to tackle the problem of expensive laser taggers by making open-source and cheap parts. There are two custom circuit boards and Gerber files are available as well as a link to EasyEDA where they can be edited for free or purchased.

Modularity was important. All the I/O is handled by an Arduino Micro Pro since they are easy to source, inexpensive and familiar to many people. The Arduino talks to any device capable of communicating over serial through USB. A small set of commands is all that is necessary to handle a game. A demo game has been written for Raspberry Pi but any modern Android, Linux or Windows box could also run a game. One tagger-mounted computer is necessary for each player. The example program was written for and on a Raspberry Pi 0 due to their cost and availability.

All the details, I mean ALLLLLL of them, can be found at my blog, 24 Hour Engineer. I recently removed ads from the site so please enjoy the clean browsing experience.

You can skip right to the first PiTagErrUs post.

This project started because I love laser tag. My friends and I would play every week and we knew the course like the back of our hands. Of course, it was expensive to pay every week and we had to play at the same arena.

I knew I could produce a decent laser tagger in my garage but I was less confident I could produce ten. With 3D printing and inexpensive PCB makers it was time to rekindle the dream of a laser tag system of my own. One I could play anywhere, anytime with anyone.

There is no complex soldering, every component in my prototypes was large enough to solder by hand.

There are no huge model, each component should fit on a small printer. Many don't even need supports to print properly.

There are no peculiar components, everything can be easily sourced from regular suppliers. That's the beauty of using things like Arduino, anyone can buy and reprogram them with relative ease.

There are no closed-source parts, all 3D printed parts were designed by me and the OpenSCAD source is included with the STL models. The PCBs are also free to download and edit. If you're tricky, you could even solder parts to a protoboard and skip the PCB or you can print your own at home.

This project is modular. Inside the Arduino is only the most basic automation. Its primary purpose is to receive serial data from a game controller like a Pi, Android or even a Windows machine. A demo program was written in Python to get started with an inexpensive Raspberry Pi but if you want to write your own games, maybe with wireless connectivity or sounds effects, you are free to do so. It's simply a matter of observing my code and using those serial commands however you like. The tagger doesn't try to tell you how to play, it just makes the gun act like a peripheral to your Pi or smartphone.

  • 1 × 2" ABS pipe PVC can be used but it is easy to attach printed ABS parts to ABS pipe with ABS cement.
  • 1 × Arduino Micro Pro Sparkfun makes these but China makes them by the thousand.
  • 2 × Sensor PCBs
  • 2 × 10µf, 1206 footprint Surface mount capacitor that should be easy enough to solder by hand. Used for each infrared sensor board.
  • 2 × 100Ω resistor, 1206 footprint Surface mount resistor that should be easy enough to solder by hand. Used for each infrared sensor board.

View all 29 components

  • 2017-07-19 (W) Pi0 Laser Tag PiTagErrUs

    Brian McEvoy13 hours ago 0 comments

    All the names being tossed around for the parts of the tagger were finally committed to an image which explicitly named each piece. This was important for the instructions so anyone following them knows which part is being referred.

     Labeled tagger parts

    A similar diagram was made for the lens focusing parts inside the forward array. These parts were too small to name on the large diagram and they were hidden inside the other parts.

  • 2017-07-17 (M) Pi0 Laser Tag PiTagErrUs

    Brian McEvoya day ago 0 comments

    Three pipes were cut to different lengths at the hack space. The shortest length had been cut a long time ago but it may make a suitable pistol-style tagger. The middle length was cut to the prescribed lenth of the previously assembled tagger. The longest length was simply a matter of leaving one pipe extra long because cutting away the top would have created a wasteful piece.

    Masking tape was applied to each side and the center lines were drawn. All the holes were marked at the same time and pilot holes were drilled at the same time. The large holes were drilled with a step drill bit. Marking and drilling multiple taggers only took a few additional minutes compared to the setup, execution and clean-up of a single tagger.

    Cut and drilled pipes

    Some of the holes were misplaced on the previous diagram. A new diagram was sketched and appears below. The old diagram put the PCB holder too close to the accessory rail riser. It should also be noted that drilling through masing tape can leave residue on the drill bit but the tape should be left on the bottom of the tagger so the handle and foregrip can be aligned properly. I failed to keep the tape on and it will make attaching these parts more difficult later.

    Updated measurements for pipe

  • 2017-07-11 (Tu) Pi0 Laser Tag PiTagErrUs

    Brian McEvoya day ago 0 comments

    Everything was released for the printed circuit boards. Technically, everything was available for the PCBs but this post brings it all into a convenient-to-access location. On, it is possible to generate a public project page for each circuit board. From the project page, people can branch off to make their own modifications to the board, download their own set of Gerber files, or simply order copies of the boards. There is no fee for downloading

     Screenshot of public project page for the controller board

    Links for the Gerber files and project pages have been added to the Downloads section below. In order to get the project pages ready, some unnecessary files were deleted to avoid confusion. Two versions of the controller board were released but the homemade version should only be used if people wanted to make the board at home with basic supplies since it used thicker traces but the components were harder to insert and the silk screen may not be accurate.

    Screenshot of public project page for the sensor board

  • 2017-07-10 (M) Pi0 Laser Tag PiTagErrUs

    Brian McEvoya day ago 0 comments

    New PCBs for the infrared sensors arrived as well as infrared sensors. These sensors were significantly less expensive but the quality may be less. Hopefully, using four together will make up for the difference in quality with a difference in quantity. Two of the boards were populated and their assembly was easier than the previous PCB revision but no less functional.

    Two Rev2 boards populated and two bare PCBs

    Once the boards were assembled, each board took less than ten minutes, they were plugged into the LED string for power and the signal wire was run to the controller PCB. Each board tested well and reliable data was received from an infrared remote which was sent over the USB.

    Sensor board inline with LEDs

    All the assembled boards were chained together, including the single sensor at the front of the tagger. Each signal wire was simply run to the same screw terminal. Somewhere it was suggested that an OR gate should be used to running these signal in parallel but this seemed unncessary.

    Three chained sensor boards

  • 2017-07-09 (Su) Pi0 Laser Tag PiTagErrUs

    Brian McEvoya day ago 0 comments

    Screw holes were countersunk so they would allow the screws to sit flush once installed. The screws were too long in many cases which lead to unwanted screw shafts inside the pipe. From the outside this was not noticeable.

    Countersinking screw holes

    Having the screws sit flush was worth the effort of countersinking the holes. In places like the trigger it was important to have the screws flush because a finger will be moving across that area all the time. In places like the yellow reload button, it will be possible to slap the button without smashing into raised screw heads.

    Trigger assembly with countersunk screws

    All the holes necessary for a complete were drilled. All the glue-ready pieces for a complete tagger were glued. All the screws necessary hold everything in place were installed. The electronics were still missing from this tagger but it was assembled and it could be handled.

    This was the first hands-on test of the handle and foregrip which had been glued yesterday. They felt sturdy and reliable. Attaching the trigger switch felt unreliable though. Momentary paddle switches have been purchased from automotive part stores and some of them are low quality or the plastic nuts are very poor. In either case, it may be necessary to redesign the trigger adapter so the switch can be glued in place. Currently, there is not enough clearance for the switch to be glued in place and still be removed. This will also call for a larger hole to be drilled.

    Tagger with external parts attached

  • 2017-07-08 (Sa) Pi0 Laser Tag PiTagErrUs

    Brian McEvoya day ago 0 comments

    A few changes to the models were made. Some of them were overdue while some were a matter of preference that were in the back of my mind and were finally modified today.

    The handle felt bulky rather than sleek. The first handle to be attached was 36mm wide so that will be shrunk to 30mm. Keeping the wider handle will provide a unique tagger comfortable for someone with long fingers or large hands.

    Changing the model for a narrower handle

    The triple spacer used to hold the infrared LED away from the lens had an issue fitting into the forward array because of one side of the circle surrounding the whole thing. Both of the other sides were necessary to keep wires from blocking the infrared emitter so only one was removed.

    Removing a side-guard of the triple spacer

    The forward array, easily the most complex part, was modified to simply have a larger hole where the laser emitter was supposed to be mounted. This was designed before a laser was measured so a small hole was used with the intention of drilling it out to fit the laser. This worked but now the holes should be modeled correctly.

    Forward array with laser module hole expanded

  • 2017-07-06 (Th) Pi0 Laser Tag PiTagErrUs

    Brian McEvoya day ago 0 comments

    I have done chemical welding with PVC before and this seemed similar. There were two options, a yellow all-in-one glue and a black two-step procedure. In order to match the color of the pipe Medium Black ABS Cement was selected as well as some Clear Cleaner. The cleaner seemed to be diluted acetone. Since I didn't know how long it would take to set up the adhesive, rubber bands were brought with with the assumption that the parts would need to be held in place for more than a couple minutes.

    ABS cement and cleaner

    Materials were gathered for adhering the foregrip and handle to the ABS pipe. At first, the intention was to use high quality glue to attach the parts but some research was done and ABS cement was selected as the preferred method.

    Gathered supplies for ABS cementing

    Clear Cleaner was applied to the pipe and foregrip. This cleaner with a built-in brush could probably have been used to remove scratches from the pipe like after it had been sanded to remove the lettering.

    Foregrip cemented in place

    ABS cement set up so quickly that there was no need to clamp or band the parts in place. The black color of the cement, it was like tar, matched the pipe so at a distance there is no transition between the two pieces of plastic. For appearances sake, this seems like a very solution for the taggers when it comes to attaching plastic pieces together.

    Handle cemented to pipe

    Within a couple minutes, both of the grips were steady enough that they could be held by the pipe without support. The tar-thick cement did a good job of getting into the strands of the printed parts and should provide a solid bond.

    Pipe and handles cemented together

View all 7 project logs

  • 1
    Prologue or "How I came to Love the Pipe"

    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'

  • 2
    Control board

    The first control board for this project was a simple protoboard with components soldered to the face which followed a circuit schematic. This could have been repeated for every tagger but the process would have been laborious, especially when making numerous boards, one for each of my friends. If only two boards were being produced, this would have been the obvious choice. Instead, a custom board was designed with EasyEDA, which received a positive review on Hack a Day. EasyEDA also allows anyone to freely view this PCB, branch their own copy for changes and order copies. Here is a link to the project page for the control board. This does not include the sensor boards which will be linked in a different step.

    It is possible to make a protoboard version with only the above schematics and the necessary components. No one is required to order the boards from EasyEDA and I don't get any of that money so I don't mind whichever way people choose. On the project page, there is also a layout called "PiTagErrUs_MCU_Single-Layer_Homemade" which was made for people who want to make their own PCBs at home. I used this when making toner-transfer boards. The traces are thicker and have more clearance but the footprint for the transistors may be messed up. I recommend ordering the version called "PiTagErrUs_MCU_Single-Layer" which is what is pictured in the rest of the steps. Here is a picture of one of my toner-transfer boards, left, next to the board printed by EasyEDA.

    A quick reference guide was included below which shows the exact connections for each component. The idea was that all the amplification would be done on this central board which has a socket for the Arduino Micro Pro. Wires would be run to the control board and tightened under screw terminals. With the screw terminals and Arduino attached, the board fits nicely inside the pipe.

    The component sizes are shown on the bill of materials (BOM) below which was taken from the the project page.

  • 3
    Sensor boards

    Sensor board project page on EasyEDA. When I ordered these boards I ordered 100pcs at a time. They are very versatile in where they can be placed. They were designed to be put inline with individually addressable LED strips. These strips carry 5V power and designate team color so any place where lights can be seen can be made into a target for opponents. These sensors can be used right on the tagger or placed on a hat or vest. The lights aren't necessary, they just need power from the controller board and the signal wire from the sensor board needs to go back to the control board.

    Up to four infrared sensors can be installed on each board and only one is necessary.

    These boards are single-sided so it's another easy one to make at home but there are 1206 (small surface mount) components but I've already soldered these by hands without trouble or even a magnifying glass. I have good eyes though.

    The original design had an addressable LED right on the board but that added unnecessary complexity if lights are nearby anyway. These boards can be placed at the beginning or end of and LED strip or even inline since they have pass-through traces. In fact, since most flexible light strips have adhesive on the back so an inline sensor can be mounted without any additional work but they have four screw holes if they need to be secured.

View all 7 instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates