Target Impact Indicator
Background
Over the past few years I have been participating in Sherwood Park Fish and Game Rimfire Silhouette shoots on Monday evenings. This involved knocking over small metal targets at ranges up to 100m with a .22 rifle. In order to add some variety to the shooting and to have the ability of using the targets with center fire rifles at longer distances, a set of targets were manufactured with heavy steel capable of withstanding center fire impact. A problem came apparent that when these targets were used with .22 rifles, impact was barely discernable on the larger targets. A method of indicating when the target was struck was required.
Devices were available such as the Magnetospeed T1000 (https://magnetospeed.com/products/t1000-target-hit-indicator) at $210 or the Huckleberry Impact Sensor (https://rimfireprecision.ca/huckleberry-impact-sensor-tabletop-review/) rumored to cost approximately $100. Both of these items are production grade and are well worth the cost, but being a do it yourselfer with a background in electronics I was curious about the possibility of putting together a unit from scratch that may suit the purpose.
I first did some quick internet searches and found this project ( https://www.instructables.com/Arduino-Steel-Targe... ) based on a microcontroller called Arduino. This device is software programmable and has extensive built-in capabilities, and most importantly- dirt cheap. The unit I wound up using (Arduino Nano) cost approximately $5 each and requires very little in external hardware and components. The programmability gives it flexibility so that changes can be made easily within software rather than having to change hardware components. The Arduino has developed a cult following with hobbyists building everything from robots to Covid respirators.
Using the above project as a guide, I modified it to suit our particular requirements. This has included using higher powered LED’s with associated driver circuit and an internal battery check function.
At this juncture I have built two units that work very well with .22 rimfire and should be usable with centerfire rifles with a bit of adjustment.
The project itself would be a great parent- child experience giving exposure to the world of electronics while producing a “cool” end product at a cost of less than $50.
To this end I have attempted within this document to describe how I built my units to allow anyone else who is interested to construct their own.
Supplies
Links to suppliers are below and approximate costs. Some items come in multi-packs where only a single item is required- example the box enclosure (comes in a package of 5) so you may wind up with some left over bits and pieces. To build a single unit should cost approximately $45.00, but due to quantity prices, 5 units may cost around $20 each.
Arduino Nano 1 required from Universal Solder $8.90 each
Resistors (Assortment) from Universal Solder $6.60 for 600
or:
Resistor 22 ohm 1/4 watt 1 required (10 Pack) from pcboard.ca ) $0.63
Resistor 1K ohm 1/4 watt 1 required (10 Pack) from pcboard.ca $0.63
Resistor 100K ohm 1/4 watt 1 required (10 Pack) from pcboard.ca $0.63
LED (2 required) cool white 1 watt 50 pack from amazon.ca $11.29
or
purchase individually from pcboard.ca (2 required) $1.69 x 2= $3.28
Transistor 2N2222 NPN (or equiv) 1 required from pcboard.ca $1.69 each
Perfboard 1 required (5 pack) from Universal Solder $3.50
9 volt battery clip 1 required from Universal Solder $0.42
Slide switch 1 required (or 2 if optional sensitivity switch is installed) from pcboard.ca
Box 1 required (5 pack) from Amazon.ca $9.99
Magnets 1 - (2 pack) required from Princess Auto $3.99
Piezo 1 required (5 pack) from Amazon.ca $9.99 (could be pulled from old smoke detector)
Also- likely available from home workshop or local hardware store:
22-24 gauge wire (preferable stranded, but could be solid). 4 different colors, a foot each. I used white, blue, green and black as described in the schematic. I pulled wire from an old S-video cable or USB cable.
18 inches of ½ inch Velcro – will have some left over.
2 x 6 inch piece of corrugated plastic or cardboard.
2 x 4 inch piece of Aluminum tape.
6 inches 2 way carpet tape
A piece of 2 x 1 inch magnetic tape
Black Electrical tape
Hot melt glue gun and approximately 3 sticks of glue
30 watt or less soldering pencil- NOT a soldering gun!
Rosin core solder (approx. a foot)- NOT acid core plumbing solder.
A piece of closed cell foam 2” x 1” x 3/8”. (Packing foam or piece of pool noodle)
Box Preparation
Open box and remove the four board supports from the inside bottom of the plastic box. Diagonal cutters work well. Scrape any remaining ridges from supports so the bottom of the box is smooth.
Circuit Board Preparation
Cut 2 pieces of perforated circuit board- 1 piece 2 inches x 5/8 inch (LED and transistor board) and 1 inch by 5/8 inch (switch board). The easiest way to cut the board is to score both sides with a razor knife, making sure the copper pads are cut through then snapping the board like a piece of drywall. On the 5/8 inch width of the boards, 5 complete hole rows should be intact with the cuts running along the center of the holes of the adjacent rows. Check to ensure the boards fit in the box allowing the lid to close, trim the boards with a razor knife if required. See also https://makezine.com/2015/10/15/how-and-when-to-use-protoboard/
Mounting LED's
Solder the LED’s on the copper pad side of the circuit board according to the schematic. Note the polarity of the LED pins- there is a tiny + and – on the pins. The – of LED will be connected to the + of the second LED
Mounting Remaining Components
Mount the resistors and transistor (see transistor drawing) on the circuit board according to the schematic. Mount these components from the non-copper side of the board so leads can be soldered on the copper side. Also mount 8 inch length of wires as follows:
White- 9 volt power from switch feeding positive side of 22 ohm resistor
Black- ground
Blue- positive side of 100K ohm Resistor to feed positive side of Piezo sensor and input of analog input of Arduino controller.
Green- 1K ohm resistor connected to base of transistor. Open end of wire will connect to digital output of Arduino controller.
Cutting Box Holes
Cut holes in the box for the LED's, power switch, and sensor. ¼ inch holes work great for the LED’s, but placement must be carefully measured as there is variation when the LED’s are mounted on the circuit board. Cut holes accordingly. The switch should be a square slot to allow the body of the switch to extend through the box. This slot can be approximately 1 inch from the box end and midway along the side. Two 3/16 inch holes drilled side by side and filed into a rectangle will work for the switch. Finally a 1/8 inch hole drilled from the inside of the box, 1 ½ inch from the LED end of the box and midway from the sides will work to accommodate the wires for the piezo sensor.
Wipe the inside and outside of the box with alcohol to aid gluing of components.
Prepare Piezo Sensor
Cut a piece of closed cell foam 2” x 1” x 3/8”.
Cover the front and back of foam with 2 way carpet tape, leaving the protective film on the nonattached side.
Cut a slit on one edge of the foam to allow the piezo wires to pass through.
Remove the protective layer form one side of the foam tape and mount the piezo with brass side against the tape, passing the wires through the slot in the foam.
Cut the magnetic tape to fit the foam, remove the protective layer of the tape.
Cover the sensor (white disc side) with magnetic tape- sticky side of the tape against the sensor and exposed tape on the foam.
Remove the final piece of protective film from the tape on the back of the foam. Pass the sensor wires from the outside to the inside of the box through the 1/8 inch hole. Position the foam midway along the box, approximately 1 ¼ inch from each end of the box and press in place.
Program the Arduino
Program the Arduino Nano with the Target Indicator Software if this has not been completed.
First off- read through the following links to understand the background of the Arduino Microcontroller. You will need to use a computer to load the software on to the Arduino controller. This can be done by using the online tool described in the guide, or installing software directly to your computer. The Arduino is programmed via the USB port on your computer.
Arduino Background:
https://www.arduino.cc/en/Guide
Installing Desktop software:
https://www.arduino.cc/en/Guide/Windows
https://www.arduino.cc/en/Guide/Environment
How to program the Arduino Nano controller:
https://www.arduino.cc/en/Guide/ArduinoNano
To program old boards, you need to choose Tools > Processor > ATmega328P (Old Bootloader). The boards I used were “old”.
Arduino Code:
This is the code I used for the unit- cut and paste this into the Arduino environment:
Downloads
Solder the Wires to Arduino
Cut a 4 inch length of black wire and solder one end to a gnd connection on the Arduino board (there are two gnd connections on the board, it doesn’t matter which one).
Solder the free end of this black wire to the end of the black wire from the LED board, the black wire from the piezo sensor, and the black wire from the 9 volt battery clip. Wrap this connection in black tape or heat shrink.
Cut a 4 inch length of blue wire and solder this to the A0 connection on the Arduino board.
Solder the free end of this blue wire to the blue wire from the LED board, and also the red wire from the piezo sensor. Wrap this connection in black tape or heat shrink.
Solder the green wire from the LED board to the D12 connection on the Arduino board.
Solder the loose end of the white wire from the switch to the Vin connection on the Arduino board.
Double check all connections, especially the ones on the Arduino board. Ensure the switch in the off position (slider towards the two joined pins, then connect a 9 volt battery to the clip.
Turn the switch on- a green power led on the Arduino board should come on. Then the LEDs on the LED board will come on for one second, signaling a good battery (if battery is low, it the LEDs will flash 3 times). Tap the Piezo sensor and the LEDS will flash quickly for 3 seconds. This confirms the operation of the circuits and all connections. If this does not occur as described then there is an error in wiring, or placement/connection of components on the boards.
Mount Boards in Box and Secure Wiring
Using hot melt glue mount the LED board, placing glue between the circuit board and the box. Be careful not to get glue on the LED’s. Mount the switch with hot melt glue in the same manner.
Position the Arduino, and battery with clip roughly in position. Gather the wires and position them to keep them as orderly as possible. Wrap the wires in electrical tape to keep them together. Once organized, use hot melt glue to hold the wiring in place and to fill the hole for the piezo wires. Try to cover all loose wires with hot melt glue. The goal is to prevent wire movement as the box will be subjected to high impact forces, and wire movement may result in broken connections on the circuit boards.
Secure Battery and Arduino
Cut approximately 4 inches of 2 sided Velcro tape (hook on one side, loop on the other). Hot melt this strip to the inside of the box to secure the battery.
Take a 1 inch set of Velcro (hooks and loops). Hot glue one side to the bottom of the Arduino, and the complementary piece to the bottom of the box to secure the Arduino. This allows the Arduino to be slightly removable to allow for software changed through the on board USB.
Attach Magnets
Step 14: Attach Magnets- Obtain 2 – 1 7/8 x 7/8 x 3/8 inch magnets and hot glue to the outside bottom of the box (same side as the sensor). The goal is to have the sensor magnet extend approximately 1/16 inch beyond the mounting magnets so the foam compresses a bit to ensure good contact with the target plate when mounted.
Secure Lid on Box
Cut 2 – ½ inch hook Velcro pieces and attach to side of box. Cut 2 x 1 inch loop Velcro pieces and attach to box lid so the lid can be secured to box bottom. Also cut a 3 inch length of Velcro hook and attach to the lid of the box to accommodate reflector.
Make Reflector
Cut a 1 ¾ x 6 inch piece of corrugated plastic or corrugated cardboard (corrugation running lengthwise). Score one side widthwise 1 ¾ inch from an end with a razor knife and bend at a 45 degree angle. Line the inside of the fold with aluminum foil tape to create and reflective surface extending the foil 1 inch down from the fold. A few layers of foil along with some duct tape on the rear of the coroplastic/cardboard can be used to maintain the 45 degree angle. Finally apply a 2 inch piece of loop Velcro to the coroplastic/cardboard for attaching to the box lid.
Operation
Operation and Use:
The target indicator is turned on with the side switch. The indicator will then go through a startup routine and a battery test. If the battery is above approximately 6 volts, the LEDS will flash once. Once the battery drops below 6 volts, the LEDS will flash 3 times signaling the batteries are about to fail. The LEDS may start to dim before this, and if visibility is impaired the battery may require replacing earlier.
Ensure the target is made of a metal thick and strong enough to prevent bullet passing through and destroying the indicator. Mount the indicator to the rear of the target with the magnets, ensuring the indicator box if fully protected. Position the reflector so it is “peeking” over/around the target at an angle that the LEDS are reflected back towards the shooter. The reflector itself is sacrificial and will need to be replaced over time as it gets shredded by bullets.
The indicator will flash the LED’s when a bullet strike on the target is detected. The length of time the LED’s will flash is set within the program by the variable “notifInterval” currently set at 3000 milliseconds (3 seconds) and can be adjusted as required. If a bullet strike occurs while the LED’s are flashing, the flash interval will be extended by an additional 3 seconds. This behavior is governed by the variable “resetTarget” and is currently set at “1”. If you would prefer to have bullet strikes ignored while the LED’s are flashing, set this variable to “0”.
The sensitivity is set within the program by the variable “threshold” currently set at 500. This is a mid-range value that works well with 22 long rifle ammunition on steel plates at 100 meters. If false hit indications are triggered from the sound of a bullet missing the target or dirt splashes, increase this variable value to a maximum of 1023. This is very likely with centerfire rounds. If value is too high, legitimate impacts may not be detected. If false hit indications are still a problem, a second switch applying a 1K resistor across the existing 100K will further reduce the sensitivity (see schematic).
If used with centerfire rounds, it is recommended to secure the indicator to the target with bungee, strap, or duct tape in addition to the magnets as the impact energy may cause the indicator to fly off the back of the target.
Videos of the indicator in action on double scale metal silhouette are shown here Ram at 100m 22LR and here Turkey at 77m 22LR