2026-Group 14


Caption:
Put a representative image
of your project here.

Vibrotactile Haptic Belt for Covert Communication of UAS Direction

Project team member(s): Joseph Heimerl, Andrew Pasco, Ashlynn Sweet, Brody Todd

Give a one-paragraph description/summary of the project, which includes information like the motivation for the project, the goals of the project, and the resulting implementation and success of the project.

Introduction

Explain the motivation for your project in terms of the educational objectives and why your haptic device is an appropriate approach.

Background

Explain the relevant prior work in the field of haptics and provide references. These will likely be different from the references in your project proposal. Make sure to do a thorough literature search on relevant haptic devices/application.

Methods

Provide a detailed description of your project, such that another student from the class could generally re-create your project/experiment from the report if necessary. (You don't need to document every screw, but the design should be clear.) Add images and videos as needed to support the description. You can refer to downloadable drawings and code in the "Files" section (later). You should divide this section into subsections, which can vary depending on your particular project. Here is an example set of subsections:

Hardware Design and Implementation

System Analysis and Control

Demonstration / Application

Results

Describe the results, which may include qualitative responses from users at the open house.

Future Work

Describe how your system could be tested (e.g., through experiments if you have not already done so), how it can be improved, and how it might be applied.

Acknowledgments

Here you can list any individuals or groups who helped you with your project. (e.g., another student in the class, a course assistant, or an especially helpful PRL TA). Optional, so delete this section if you aren't using it.

Files

Code and drawings should be linked here. You should be able to upload these using the Attach command. If you aren't willing to share these data on a public site, please discuss with the instructor. Also, in this section include a link to a file with a list of major components and their approximate costs.

References

List the referenced literature, websites, etc. here.


Appendix: Project Checkpoints

Checkpoint 1

Checkpoint 1

In Checkpoint 1, we successfully established a prototype virtual environment with an associated GUI to set threat positions relative to the user, the hardware communication backbone, and the core state estimation logic. On the software side, this included a modular control framework abstracting the IMU, BLE, and haptic drivers; a global-to-body frame mapping implementation using a zeroed local calibration scheme; and a simulation environment representing multiple simultaneous drone threats across eight discrete radial sectors. On the hardware side, the team selected the BNO085 IMU with UART-RVC protocol to resolve I2C clock-stretching issues on the nRF52840, finalized PWM pin assignments for all eight ERM motors on the Particle Argon, completed electrical schematics for all subsystems, and implemented the BLE communication structure for bidirectional exchange of IMU heading and threat position data between host and agent.

Goals Met:

  • IMU Integration: Identified the BNO08x as the optimal sensor and selected the UART-RVC protocol to ensure robust 100Hz orientation data without the I2C "clock stretching" issues common to the ESP32/nRF52840 families.
  • Software Architecture: Designed a modular controller that abstracts the IMU, BLE, and Haptic drivers, allowing for parallel development.
  • State Estimation & Mapping: Implemented the core logic to normalize absolute IMU yaw into a relative reference frame and map threat azimuths to the 8-motor array.
  • Hardware Mapping: Finalized the pin assignments for the Particle Argon, ensuring all 8 motors are on dedicated hardware PWM pins.
  • Virtual Environment GUI: Built a working prototype GUI that simulates the yaw of a person wearing the haptic belt and allows the user to place drones relative to the user. It can place and remove multiple drones and sends information about which motor should activate and at what duty cycle based on the drone’s relative distance from the person.

Challenges: One challenge discovered was an I2C bug present with the nRF52840 (in our selected controller). Fortunately, the selected IMU supports UART-RVC, which actually simplified our code and increased system stability. Another challenge is that in the current virtual environment implementation, there is no communication regarding the number of drones in one of the discrete sectors around the wearer. The vibration is currently set to a duty cycle corresponding to the distance of the nearest threat in that sector, so additional work will be done to experiment with how multiple threats can be conveyed from the virtual environment to the vibration controller.

Updated Plans: We have decided to focus on a combination of global and local calibrated frames (by zeroing the belt) to ensure that the haptic cues are intuitive even if the belt is put on slightly crooked. This will also allow us to send threats from the host in a global frame, then map these to the local frame.

Caption: Diagram of Global vs. Body frame mapping logic. Reference frame will be calibrated to world.

Hardware: The haptic belt will be built on a commercial adjustable triathlon-style belt which is slim, elastic, and has the ability to sit flush against the body for comfort and covertness. The belt sits tight to the body and can be worn covertly under a user's clothing without adding significant bulk.

Motor mounting will be achieved via eight custom 3D-printed clips, modeled after the open belt clips used on military uniforms. Each clip will be designed to slide and lock onto the triathlon belt, allowing repositioning along the belt's length so that the ~45° angular spacing between motors can be maintained regardless of the wearer's waist circumference. A 3D model of the open belt clip is shown below. The interior face of each clip will house one ERM coin motor, covered with a thin lycra or neoprene patch to ensure consistent skin contact and comfort during wear. Clips will be printed in PETG or TPU to provide the necessary durability and slight flex for body-conforming fit.

Attach:web_belt_clip_model

Each motor clip is wired independently back to the central electronics module via a dedicated wire, with small slack loops routed along the belt between clips to accommodate repositioning without wire binding. The central module, which will house the Particle Argon, LiPo battery, and motor driver breakout boards, is contained in a small 3D-printed pouch enclosure velcroed to the belt at the small of the back, keeping the system's mass centered and low-profile.

Electronics

BOM:

1x 200 uF cap 4x 100 uF caps 4x 20 uF caps 1x 10 uF cap 5x 0.1 uF caps

1x 10k resistor

8x ERM

4x Adafruit DRV8833 DC/Stepper Motor Driver Breakout Board

LiPo Battery: 3.7V 2000 mAh

IMU: BNO085

Jst-sh 4-pin wire (For IMU connection)

Particle Argon Controller (already have)

The PRL has an assortment of protoboards and molex connectors that we will use

  • Schematic

Note that this top level schematic uses multiplexed wires, motors aren't actually connected to one wire. View the individual schematics for the breakouts. High Level Schematic:

Controller Protoboard Schematic:

IMU Protoboard Schematic:

Motor Driver Protoboard Schematic:

  • Motor communication protocol / wiring scheme / controllers as needed

Developed schematic to use I2C, but we may be switching to a serial protocol to avoid clock issues

  • Identification of appropriate communication protocol from “host” to “agent”

Bluetooth Low Energy (BLE)

  • IMU identification

Adafruit 9-DOF Orientation IMU Fusion Breakout - BNO085

Code: The prototype virtual environment runs on PyCode and allows a user to easily place and remove multiple drones with a click on the GUI. It is currently simulating the yaw of the person wearing the belt, controlled by keyboard commands for rotation to the left and right. This setup divides the free space around the user into eight equally large discrete radial sectors, each corresponding to one of the eight vibration motors we have proposed on the belt. When a threat is placed using the GUI, the current setup communicates the sector number and a relative intensity recommendation for the duty cycle of the motor that corresponds to that section. To match the hardware board that the team selected, the current virtual environment has code for BLE communication back and forth for IMU heading data and threat number and position data. The hardware/software integration will be attempted by Checkpoint 2.

Prototype GUI Video: https://youtube.com/shorts/4py1CZDAsaI?feature=share

Checkpoint 2

Here you will write a few paragraphs about what you accomplished in the project so far. Include the checkpoint goals and describe which goals were met (and how), which were not (what were the challenges?), and any change of plans for the project based on what you learned. Include images and/or drawings where appropriate.

Example Video: https://www.youtube.com/watch?v=i_aLBql4Ufo