2025-Group 15

Group 15

Haptic Compund Bow
Haptic Compound Bow
Project team member(s): Alvin So, Enzo Andreacchio, Nachiketh Karthik, Timothy Lee
The goal of this project was to build and demonstrate a bow-and-arrow haptic system and accompanying 2D graphics simulation using low-cost hardware and materials. The bow-and-arrow manufactured added additional features to previously done work and primarily focused on the integration of an IMU to provide orientation data and tunable bowstring tensions along with detection of when a shot was fired. The main challenges when implementing and testing the bow-and-arrow were caused due to the bowstring wire derailing from the pulleys on either end of the bow. A design modification which uses a torsion spring was able to mitigate the issue. Most users were able to hit the target with some degree of accuracy and seemed to enjoy the interactive nature of the bow-and-arrow.
On this page... (hide)
Introduction
Archery is an activity that requires high skill where it combines precise motor control, spatial awareness, and an understanding of physics principles such as tension, force, and projectile motion. In both recreational and professional settings, individuals learning archery often vary widely in their upper body strength, coordination, and physical capabilities. These differences can make it difficult to standardize training or provide consistent feedback, especially for beginners or individuals with physical limitations.
This project introduces a haptic archery simulation that addresses these challenges by providing a customizable and responsive training device. By simulating the physical resistance of drawing a bowstring through haptic feedback, a variable system can be set to adapt to the user's strength level, enabling a more inclusive and supportive learning environment. Users can experience a range of pull forces that mimic different bow strengths, making it possible to tailor the training experience to their physical capabilities and progression over time.
This haptic device captures both the force exerted and the orientation of the bow, allowing for a realistic and interactive archery experience. This not only enhances user engagement but also provides a safe and repeatable way to build strength, refine technique, and develop consistency—regardless of the user’s initial physical ability.
Background
Haptic technology has increasingly been integrated into virtual reality (VR) systems to enhance realism and user engagement—especially in physically expressive activities like archery. Prior research demonstrates the potential of haptic feedback to simulate nuanced physical interactions, such as bowstring resistance, draw dynamics, and arrow release, in immersive environments. This project builds on this foundation by combining haptic actuation with real-time sensor feedback for a customizable, physically accurate archery simulation.
A notable example of haptic archery simulation is presented by Thiele et al. (2013), who introduced the “Virtual Arrow” system, which enhanced a physical bow with haptic and sensor capabilities to simulate traditional archery actions within a virtual space. Their work emphasized the importance of tangible interaction, noting that real-time feedback improves body-eye coordination and overall user performance. The incorporation of infrared sensors for draw detection aligns with the use of magnetoresistive sensors for bow orientation tracking. This system reinforces the value of real-time feedback and physical interaction for skill acquisition and training adaptability—key goals shared by our device.
Furthermore, Butnariu et al. (2018) developed a motor-driven pulley system coupled with a rotary encoder to emulate the force-draw profiles of traditional bows. By empirically characterizing bows like the English longbow and mapping their non-linear resistance curves into the haptic system, the authors created an immersive archery experience within a Unity-based VR environment. User evaluations confirmed the effectiveness of high-fidelity force rendering in replicating the feel of real archery. Their approach directly informs system design of a haptic bow, particularly in the use of nonlinear tension modeling and the importance of encoder integration for stable feedback loops. Unlike their pulley-based mechanism, this project aims to deliver similar realism through a capstan-based actuation system, which may reduce size and improve responsiveness.
Purnomo et al. (2022) further support the need for realistic feedback in their VIRA training simulator. While their system successfully used VR to teach stance, draw, and release techniques, participants reported that the lack of string tension feedback detracted from the realism of the experience. Their findings highlight that even visually rich simulations are incomplete without corresponding haptic sensations. The authors recommend incorporating draw force feedback to enhance user immersion and training outcomes. This gap directly motivates a system that focuses on rendering variable tension and dynamic release forces in real time.
Together, these studies demonstrate that high-fidelity haptic rendering is essential to replicating archery mechanics in virtual settings. This project builds upon their foundational work by targeting a more compact form factor, integrating sensor-based orientation tracking, and enabling user-specific tuning of bow strength to support a wider range of physical capabilities.
Methods
- Duron
- AS5600 Magnetic Encoders
- Capstan and Bowstring Pulley (Custom)
- Pulley shaft (custom)
- Magnets from Hapkit
- Torsion springs
- Derail Gurads (custom)
- Nylon fishing wire
- Arduino Nano
- Flexible electrical wire
- Metric screws, spacers and nuts
- Super Glue
Hardware Design and Implementation
The bowstring mechanism uses a capstan drive and pulley mechanism to extend and retract the bowstring with the mechanism located at the top and bottom of the bow. The encoder counts from both the motors were converted into x and y positions of the arrow and used for rendering. The first derivative of the x position of the arrow was threshold-ed to determine if a shot was fired.
The bow was laser cut from 1/4" Duron board with two layers connected by spacers along the upper and lower limbs of the bow for added stiffness. The handle was constructed out of 3 layers of board sandwiched together. The bow body is attached to the bowstring mechanism using spacers and screws.
To recreate the haptic bow and arrow, laser cut the duron according to the dxf files, and 3D print all custom parts (see files section). Then using screws and nuts join all plates forming the top middle and bottom section of the bow together. Place the AS5600 encoders into the slots and route the cables from either end of the bow towards the middle section.
Attach the Hapkit motors to the top and bottom section of the bow, with the screws and washers.
Attach the Hapkit Neoprene tube to the magnet holder and push the holder onto the motor shafts on either end (similar assembly as the Hapkit). Glue the magnets into the magnet holder. Add the pulleys to either end of the bow. Wind the nylon fishing wire around the neoprene tubes creating a capstan drive and secure them to the pulleys using set screws.
Attach the E box to the middle section of the bow and add the electrical components including the breadboard, switches and barrel jack. Wire up the components togather and close the E box.

Finally attach the torsion spring derail guards to either end of the bow.
System Analysis and Control
First of all, here is the final electrical schematic of our bow:

This electronics schematic represents a dual-motor haptic feedback system controlled by an Arduino Nano 33 BLE Sense Rev2. The system is powered by a 120V AC wall source, which is converted to 12V DC using a wall transformer. A power switch allows the user to control the main power line, and a 0.5 A fuse protects the circuit from overcurrent. The 12V DC supply powers two DC motors via an L298N H-Bridge motor driver, which allows the Arduino to control the motors' direction and speed through digital and PWM signals. The motors are used to render force feedback, simulating the tension of a bowstring. Each motor shaft is equipped with a magnetoresistive angle sensor (AS5600), which uses a magnet to detect precise angular position and sends this information to the Arduino. These sensors, along with the Arduino, are powered at 3.3V. A push button is connected to the Arduino with a 10kΩ pull-down resistor, serving as a user input for variable of bowstring force. The Arduino communicates wirelessly over Bluetooth with a computer running a Processing-based interface, which is responsible for visualization and additional simulation logic. This setup enables a closed-loop system for real-time interaction and feedback.
In real life, this circuit looks like this:

In order to contain these electronics on the bow while keeping everything embedded and lightweight, we designed a housing where every component had to fit perfectly. This process has been achieved after six design iterations.

Here is an overview of the CAD of the housing:

Moreover, when we get the two rotation angles (counts) from both sensors, we determine the x,y position of the arrow:



Knowing those three values, we can send them to Processing via Bluetooth and update the rendering at each time step.
Demonstration / Application
Due to Processing's limited Bluetooth capabilities, the data collected in the Arduino Nano 33 BLE Rev 2 is sent through BLE to a Python Server using VS Code. From this code, the data can then be sent to Processing via a socket. In Processing, the relative x and y position of the arrow is continuously received as well as the IMU data. In addition, the stiffness level of the bowstring and whether the arrow is fired or not fired is received.

Based on all the variables stated above, full motion of the arrow, bow, and trajectory are rendered with a target. When the user pulls the bowstring back and orientate the bow and arrow differently, the rendering shows this motion. When the arrow is fired, the arrow replaces the trajectory to determine if the user has hit or missed the target. When the arrow is shot, the arrow is automatically reset after five seconds. Throughout the whole activity, the bow orientation shows in real-time, even after the arrow is reset.


Results
During demonstration day and the open house, our team asked users to fill out a brief google form after using our haptic device. The results from the form are shown below.

The users reported enjoying the haptic feedback and realism from tilting the bow as well as pulling the arrow in different angles. Many users preferred the Normal tension level and liked the tunable tension feature.
Some possible improvements suggested by the users were
- More motor torque for tensioning the cables
- Faster refresh rate for the simulation
- Using an elastic string to maintain constant tension and prevent derailing.
Future Work
The haptic archery system can be tested through a combination of experimental validation and user studies. During the Demo Day, most users had little experience with archery; user testing with both novice and experienced archers can provide insights into the realism and usability of the system. In addition, latency of the rendering can be measured using high-speed cameras or triggered events to quantify delay, and repeated use tests can evaluate mechanical durability, particularly addressing issues such as bowstring derailing. To improve the system, an improved torsion spring system or an elastic material could prevent string derailment. Furthermore stronger motors with higher torque and better resolution would enhance force realism and prevent overheating of motors. Arrow fire detection could be made more accurate by combining velocity data with force spikes, IMU readings, and precise bowstring position sensing. Additionally, integrating 3D or VR rendering through platforms like Unity or Unreal Engine would provide immersive visual feedback and allow for advanced training environments. Overall, this system has promising applications in sports training, physical rehabilitation, and immersive VR gaming experiences where realistic bow interaction significantly enhances user engagement.
Acknowledgments
We would like to thank Professor Allison Okamura and the ME327 teaching assistants, especially Ryan, for all the guidance and assistance throughout this project and term.
Files
Bill of Materials: Attach:BOM.xlsx
Final Cad of Haptic Bow: Attach:FINAL_CAD.zip Δ
Arduino, Python Interface, and Processing Code: Attach:HapticBowCode
Final Bow assembly step file : Attach:bow_assembly.zip
References
Butnariu, S., Duguleană, M., Brondi, R., Gîrbacia, F., Postelnicu, C., & Carrozzino, M. (2018). An Interactive Haptic System for Experiencing Traditional Archery. Acta Polytechnica Hungarica, 15(5), 185–208. doi: 10.12700/APH.15.5.2018.5.11.
S. Thiele, L. Meyer, C. Geiger, D. Drochtert and B. Wöldecke, "Virtual archery with tangible interaction," 2013 IEEE Symposium on 3D User Interfaces (3DUI), Orlando, FL, USA, 2013, pp. 67-70, doi: 10.1109/3DUI.2013.6550199.
F. A. Purnomo, M. Purnawati, E. H. Pratisto and T. N. Hidayat, "Archery Training Simulation based on Virtual Reality," 2022 1st International Conference on Smart Technology, Applied Informatics, and Engineering (APICS), Surakarta, Indonesia, 2022, pp. 195-198, doi: 10.1109/APICS56469.2022.9918716.
Appendix: Project Checkpoints
Checkpoint 1
So far in the project, we have successfully completed both the mechanical and electrical designs according to our initial timeline. For the mechanical design, all major components were finalized in CAD, and tolerances were adjusted based on material availability and 3D printer capabilities. On the electrical side, each module’s schematic was completed, and the necessary components were sourced and verified for compatibility. This allowed us to move into the next phase of development with confidence in the feasibility of the integrated system.
In terms of our checkpoint goals, several were met on schedule. We began 3D printing essential components and initiated laser cutting for the frame, which has helped us test fitment and iterate on physical connections. Additionally, we started assembling and testing the electronics modules individually.
Checkpoint 2
The motor's rotation angles are measured using magneto-sensors, which provide analog input to the Arduino. These readings are stored in two variables, count1 and count2. Using these values, we aim to calculate the user's finger position in the x and y directions. This allows us to determine both the displacement and elevation of the drawn string, and consequently, to estimate the magnitude and direction of the force applied to the arrow upon release.
In the following screenshots of the derivation, count1 and count2 will be replaced by theta1 and theta2, respectively.



The theta defined above will be used in the processing code to determine and display the tilt of the arrow on the bow.
BLE data transfer from the Arduino to Processing completed by using a socket in VS Code as an intermediate step. The visual rendering in Processing currently encapsulates movement of the bow and arrow with key bindings. In addition, IMU movement of the Arduino Nano BLE Rev 2 was also tested and completed in Processing. The next step is to transfer the rest of the Arduino data to Processing to replace the remaining key bindings.
We have successfully completed the fabrication of the haptic bow using a combination of laser-cut components and 3D-printed parts. The full system has been assembled and tested with the integrated motors, allowing us to evaluate its mechanical and functional performance. During testing, we observed that the original thin bow cable was more susceptible to derailing, particularly during rapid movements. To address this, we sourced and implemented a flexible yet thicker cable, which significantly improved stability and reduced the risk of derailment. Additionally, we designed and installed a removable locking mechanism directly onto the pulleys. This lock effectively prevents free rotation when the motors are unpowered, mitigating unintended cable loosening and derailment during idle periods. A major design milestone was the successful routing and embedding of all cables within the frame, which not only protects the wiring but also contributes to a cleaner and more professional appearance. The remaining challenge lies in the occasional derailment of the bow cable when the user releases it at maximum extension. We are currently investigating potential solutions to this issue, such as a damping mechanism, and plan to address it in the next development phase. After everything is tested, we plan to have all the electronics inside a housing attached to the bow.



