Skip to content

Open source

Build it yourself

X-Tag compatible Arduino projects, plus 3D printable spare parts and other useful parts.

XOpen is our open source project: a target, an alignment cross and a support remote, all built around an Arduino Nano. The target and the cross read X-Tag shots with an infrared receiver; the remote sends support commands with an infrared LED. Code and wiring diagrams are on GitHub; assembly calls for basic electronics skills and tools.

Cults3D has the 3D printable files instead: spare parts for X-Tag devices and other useful parts.

Code and wiring diagrams on GitHub

The xopen repository contains the sketches (the Arduino programs), the wiring diagrams and the XOpenIR library. Choose a project and follow the instructions to assemble it and upload the code.

Open xopen on GitHub →
X-Tag

3D models on Cults3D

Find X-Tag files to 3D print on Cults3D: spare parts and other useful parts.

Visit the Cults3D page →

The three projects

Target

Register hits and trigger a signal

Difficulty
Easy
Time
One hour
Cost
About €10

The TSOP4840 receiver detects shots from the replica, and an LED signals each hit. Three digital outputs can control external indicators or mechanisms through suitable driver circuits. The serial monitor shows one line per hit.

  • Counts hits and measures the replica's actual rate of fire
  • Three digital outputs for indicator or actuator circuits
  • Pins and pulse length in the first lines of the sketch

What you need

QtyPart
1Arduino Nano (ATmega328P)
1TSOP4840 infrared receiverthe 40 kHz version
1100 Ω resistor + 4.7 µF capacitor
15 mm red LED + 330 Ω resistor
1Normally open push button

Wiring

PinSignal
D2TSOP4840 output
D5Hit LED
D6, D7, D8Outputs pulse on each hit; duration is set in the sketch
D4Reset button

Sketch →Wiring →

Calibration cross

See where the beam lands

Difficulty
Medium
Time
An evening
Cost
About €25

Five receivers in a cross, each with its own LED, show where the beam lands. You can see how it spreads and adjust the replica’s zeroing, without a computer.

  • Five independent channels, each with its own LED
  • Summary of the percentage of hits registered by each sensor
  • Set sensor spacing using the guidance in the wiring notes

What you need

QtyPart
1Arduino Nano (ATmega328P)
5TSOP4840 infrared receiver
5100 Ω resistor + 4.7 µF capacitorone per sensor, not one for the whole cross
55 mm LED + 330 Ω resistorgreen in the centre, red on the arms
1Normally open push button
1Perfboard or a 3D-printed mount

Wiring

PinSignal
A0 … A4The five TSOPs: centre, up, down, left, right
D8 … D12The five LEDs, in the same order
D2Summary button

Sketch →Wiring and distances →

Remote

Respawn, ammunition and healing on three buttons

Difficulty
Easy
Time
An afternoon
Cost
About €10

Aim the infrared emitter at the headset and press the button for the command you want to send. Use the project as the basis for a respawn point, ammunition crate or medical station in your games.

  • Respawn, full ammo, configurable heal
  • Support commands only: it does not shoot and does not take health away
  • Range of a few metres in the basic configuration

What you need

QtyPart
1Arduino Nano (ATmega328P)
1940 nm infrared LEDTSAL6200, TSAL6400 or SFH4545
1390 Ω resistorLimits LED current; follow the project wiring diagram
3Normally open push buttons
14×AA battery holder or USB power bank

Wiring

PinSignal
D3Infrared LED with its 390 Ω resistor
D4, D5, D6Respawn, ammo and heal buttons

Sketch →Wiring →

Getting started

  1. 01

    Parts

    Get the components listed in the wiring diagram. Use the 40 kHz TSOP4840 receiver: the more common TSOP4838 is a 38 kHz part and is not an equivalent replacement.

  2. 02

    Library

    Copy the XOpenIR folder from the repository into the libraries folder of your Arduino sketchbook.

  3. 03

    Upload

    In the Arduino IDE, select the Nano board and the correct processor, then upload the sketch. Some clones need “ATmega328P (Old Bootloader)”. Set the serial monitor to 115200 baud.

Using the devices in games

Before using a DIY device in a game, check with the organisers. A headset locked with a password ignores respawn, ammunition and healing commands from unauthorised devices. The lock covers these commands, not targets.

Before you build

These are hobby projects to assemble and check yourself, without a warranty or individual assembly support. Follow the wiring diagrams and component limits. The remote’s infrared LED is not the certified X-Fire emitter: keep to the specified setup and do not aim it at anyone’s eyes.

Frequently asked questions

Do I need to know how to program?

No, to start you just upload the sketches as they are. To change pins, values or functions you need some Arduino experience; the settings you can change are near the top of the code.

Can I use a TSOP4838 instead of the 4840?

Better not. The TSOP4838 is tuned to 38 kHz, while X-Tag transmits at 40 kHz, so it would pick up hits less reliably.

Will it run on an ESP32 or a Raspberry Pi Pico?

The sketches are written for the ATmega328P in the Arduino Nano. Running them on an ESP32 or Raspberry Pi Pico requires adapting the code to that platform.

How far apart should the arms of the cross be?

Spacing depends on the beam width and test distance. Use the guidance and table in the cross’s wiring notes when building the mount.

Can I use the remote during a game?

Only if the game rules allow it, because it sends support commands. A locked headset ignores them.

Are more projects coming?

The repository contains these three projects. If you build one and want to share an improvement, you can submit a pull request on GitHub, that is a proposed change.