Precision shooting training gun

Duck hunt on steroids

Similar projects worth following
This gun uses a camera to look at the target and see where you're pointing it. When you squeeze the trigger it tells you where on the target you shot and provides sound and haptic feedback.
The target frame has 3 IR LEDs that the gun uses for pinpointing the target location. Thus anything can be used as a target, but all testing has been done with an ISSF 10m pistol target.

- Analog trigger that simulates trigger take-up, wall and creep
- Aim tracking. When you start squeezing the trigger it starts recording the path of your aiming on the target and you can review this data after each shot
- Perfectly safe and (optionally) quiet. No pellets, no lasers
- Reload button to simulate going through all the motions of firing an air pistol
- Vibration feedback to indicate that a shot has been fired
- Audio feedback

I recently took up 10m air pistol shooting and wanted a means of practicing at home. Local regulations make it really hard to own an air pistol, so dry-fire practice at home is out of the question. In the image below you can see that I can use all the training I can get.

As long as I was designing something from scratch, I decided on the following wishlist:

 - Similar weight & balance

 - Good sights

 - Analog trigger that simulates trigger take-up, wall and creep

 - The ability to actually practice shooting and see where I hit the target

 - Haptic feedback for the shot

 - Pre-shot aim tracking, to see if my aim is steady on the target just before the shot

The current implementation is in the picture below. The target is fixed on a holder that has 4 IR LEDs that the 920g (2 pound) gun uses to track where it's pointing.

Left: Current shot with aim path before the shot (top) and trigger pressure as a function of time (bottom); Right: All shots fired in the current session

The system consists of a Raspberry Pi and an HD camera (IR filter removed) that tracks the target position. An Arduino inside the grip reads the trigger and controls the vibration motor. A USB power bank is attached to both supply power and increase the weight to something more realistic.


Trigger control is very important for precision shooting and I wanted to make something that would emulate a real trigger as closely as possible. I've had some success with the following design. The Take-up spring is very light, and gives ~1mm of travel. Then the heavier wall&creep spring is engaged. The trigger block is printed in black PLA and it moves in between an LED and an LDR. The Arduino reads the voltage on the LDR and thus knows the position of the trigger. This allows software control of the trigger break point. Feedback for each shot is provided by the small vibration motor.


I plan on buying some real sights eventually, but for now the 3D printed ones have to do.


The target is fixed on a holder that has 4 IR LEDs in the corners. The camera uses OpenCV to track the positions of these LEDs and determines the position of the target center based on these points.

  • Filtering out unwanted light

    mihai.cuciuc12/25/2021 at 20:35 0 comments

    Silicon sensors are sensitive up to more than 1100nm so in order to limit the effect IR light has on photos cameras have an IR filter that cuts off around 650nm. Since I'm using IR LEDs in the target this was a problem so I removed that filter from the camera. This worked fine but too much visible light could confuse the camera. I found on Aliexpress IR bandpass filters for 940nm, just right for the LEDs I'm using.

    Superglued the filter on the Raspberry Pi camera lens holder and done! Luckily it's thin enough (0.55mm) to not interfere with the 6mm lens.

  • Calibration

    mihai.cuciuc12/05/2021 at 20:57 0 comments

    Calibrating the gun requires a means of fixing it in place and aiming it perfectly at the target, ideally from the same distance that you will be shooting from. I used a vise to hold the gun in place and kept nudging it very gently to align the sights with the target.

    Once this setup is completed I could find where in the picture the target center is with respect to the 4 IR LEDs and apply any necessary offsets in order to obtain a perfect shot.

View all 2 project logs

Enjoy this project?



UnnecessaryComplification wrote 01/02/2023 at 14:52 point

Awesome project! After getting #See Through The Eyes of a Champion further along my next project will be to use a RasPi, camera and spotting scope to record and automate scoring in High Power Rifle competition. I may reach out to you for some SW help as I have always been a HW guy. My SW skills are not real strong and I've hardly done any graphical work.

  Are you sure? yes | no

mihai.cuciuc wrote 01/02/2023 at 17:35 point

Great, let me know! I've been looking for a good reason to revive this project anyway.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

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