Device Monitors Head Angles Linked with BPPV

I will build a device that detects angles related to Benign Paroxysmal Positional Vertigo (BPPV) and alerts users.
Tirth Shah
Fairview School
Grade 9

Problem

Benign Paroxysmal Positional Vertigo (BPPV) originates inside the inner ear when otoconia, tiny calcium carbonate crystals become dislodged and interfere with the ear’s function of detecting head movement, causing incorrect signals to be sent. Certain head positions can cause vertigo-related symptoms, especially in older adults or people with previous BPPV experience.

Problem: Can real-time feedback from an accelerometer detect head-tilt angles related to BPPV?

Method

Background Research:

Vertigo is a symptom that creates a false sensation that you or your surroundings are constantly spinning or in motion. It occurs when there is a mismatch between signals from various components of the vestibular system, leading the brain to misinterpret body positioning and movement.

Common symptoms include:

  • Dizziness/spinning sensation
  • Issues regarding balance
  • Nausea and vomiting
  • Motion sickness
  • Headaches
  • Hearing loss

The vestibular system is located in the inner ear and brain of the ear and brain, and is one of three main systems that help maintain your orientation, which also include the visual system (eyes) and the somatosensory system (muscles and joints). The ear detects head movement and sends signals to the brain to interpret them. The vestibular system is split into two main functions, which are the peripheral and central systems:

The peripheral vestibular system is located in the inner ear, in the vestibular apparatus. It consists of five main organs.

  • Semicircular canals: The semicircular canals are made of three tubes, which detect head movements. They are the superior (up and down), horizontal (left to right), and posterior (side to side/angled) canals.
  • Otolith organs: The other two organs are the otolith organs. They detect linear movement, which are affected by forces such as gravity and velocity. The utricle detects motion occurring when the body is moved horizontally (back and forward) while the saccule acts during vertical movement.

Head movements trigger the movement of endolymph, a fluid found throughout the semicircular canals and otolith organs. As the head changes position, the fluid shifts, bending microscopic hairs on hair cells.

In the semicircular canals, the movement of endolymph will detect head movement, while in the otolith organs, tiny calcium carbonate crystals called the otoconia bend the hairs due to a shift in gravity or acceleration. This helps the utricle and saccule detect the body’s linear movement. When the hairs are bent, the hair cells will open ion channels to regulate the cell’s electrical signal, sending electrical signals to the brain through the vestibular nerve in return. The brain deciphers these signals to determine the body’s position and orientation.

The vestibular nerve connects the inner ear to the central vestibular system, which consists of the brain and associated nerves. The brain interprets signals sent from the inner ear through the vestibular nerve about head position and linear movement. Using this information, the brain sends signals to the eyes and spinal cord to maintain balance and posture.

Benign Paroxysmal Positional Vertigo (BPPV) originates inside the inner ear. It occurs when otoconia, the tiny calcium carbonate crystals normally located in the utricle and saccule, become dislodged and move freely within the inner ear. When the otoconia crystals enter parts of the semicircular canal (most commonly the posterior canal), they interfere with the ear’s function of detecting head movement, causing incorrect signals to be sent, resulting in vertigo-like symptoms.

BPPV is highly treatable, especially due to the Epley maneuver. This treatment is conducted by a healthcare professional, who guides a patient through specific head angles and positions. These movements allow gravity to shift the crystals back into their original position, relieving the symptoms associated with BPPV. However, although BPPV is considered less harmful and responds to treatment, it is also the most common form of vertigo, over other types of vertigo that start in the inner ear (such as Meniere’s disease, vestibular neuritis). It occurs prominently in older adults, especially those over the age of 50, and often recurs in individuals who have previously experienced it. Certain head positions can cause the loosened otoconia to shift, leaving the utricle once again.

Device Design and Construction:

Materials:

  • MPU 6050
  • LCD 16x2 monitor
  • Active buzzer
  • Arduino Nano
  • Breadboard
  • Wires (male and female)
  • Battery pack
  • USB C cable
  • LEGO bricks

The device uses a MPU 6050, an accelerometer that measures angles. An LCD 16x2 display shows the angle value in degrees, and an active buzzer acts as an alarm when the angle is less than or equal to -20 degrees or greater than or equal to 70 degrees. These angles represent a person's ability to look straight up or down. The values are not -90 and 90 degrees as people rarely maintain exact right angles (the head is usually slightly tilted).

Layout:

The MPU 6050 and LCD are connected to the Arduino Nano as shown below. The buzzer is connected to the Arduino through D12 on the long leg of the component and GND through the short leg.

This code will run the program needed for the device to function (read comments on program for explanation).

#include <Adafruit_Sensor.h>
#include <Wire.h>
#include <MPU6050_light.h>
#include <LiquidCrystal_I2C.h>

#define buzzerPin 12
const int triggerAngle1 = 70;
const int triggerAngle2 = -20;
bool buzzerOn = false;

MPU6050 mpu(Wire);
LiquidCrystal_I2C lcd(0x27,16, 2); // defining lcd object - 0x27 = address, 16 = columns in lcd, 2 = rows in lcd
unsigned long timer = 0;

void setup() {

Serial.begin(115200);
Wire.begin(); // initalize connection between microcontroller and sensor
mpu.begin(); // initialize mpu (sensor)
mpu.calcOffsets(); // define original positon - will remember this as 0 degrees for code
lcd.init();
lcd.backlight();
pinMode (buzzerPin, OUTPUT);

}


void loop() {

  mpu.update();
  float angle[3] = {mpu.getAngleX(),    // sends angle to the accelerometer 
                    mpu.getAngleY(),
                    mpu.getAngleZ()};

  Serial.print("["); // shows angle on serial monitor
// Serial.print("] X: ");
// Serial.print(angle[0]);
  Serial.print(", Y: ");
  Serial.print(angle[1]);
  Serial.print(", Z: ");
  Serial.print(angle[2]);
  Serial.print("\n"); // creates new line on serial monitor
//delay(100);


if ((millis() - timer) > 1000) {
timer = millis();


lcd.setCursor(3,0); // first is column, second is row - this is for displaying the angle on the LCD monitor
lcd.print("Angle: ");
lcd.setCursor(3,1);
lcd.print("       "); // made the section "blank" to display values on top
lcd.setCursor(3,1);
lcd.print (int(angle[1])); // makes angle whole number - remove "int" for decimals on lcd


bool notDanger = (angle[1] > triggerAngle2) && (angle[1] < triggerAngle1); 

// these "if statements" make the buzzer only activate between the given angles, which are less than or equal to -20 degrees and greater than or equal to 70 degrees
// these angles represent an estimation for a person's head looking straight up and down, they are not 90 degrees as people do not often look up or down at a right angle

if (notDanger && buzzerOn){
  digitalWrite (buzzerPin, LOW);
  buzzerOn = false;
}

if(!notDanger && !buzzerOn){
  digitalWrite (buzzerPin, HIGH);
  buzzerOn = true;
} 
}


}

Experiment 1:

Hypothesis:

If a head-position device is used to detect head-tilt angles associated with BPPV, then it will accurately detect the angles during participant movements, because its sensors track tilt continuously, identifying positions that could trigger vertigo.

Materials:

  • MPU 6050
  • LCD 16x2 monitor
  • Arduino Nano
  • Breadboard
  • Wires (male and female)
  • Battery pack
  • USB C cable
  • LEGO bricks

Variables:

Independent: Angle of tilt. Dependent: Angle detected by the device (degrees). Controlled:

  • Tested on the same surface
  • Same duration holding each angle
  • Same reference tool for reference angles

Procedure:

  1. Set the device at 0 degrees on a flat surface.
  2. Move the device slowly, checking the angle at -90, -60, -30, 0, 30, 60, and 90 degrees.
  3. Hold the device position for 5 seconds.
  4. Record the angle measured by the device on a datasheet.
  5. Measure the device’s angle with a leveller on a phone.
  6. Return the device to 0 degrees and reset it for accuracy.
  7. Repeat steps 4-7 two additional times for the same angles (3 trials in total).
  8. Repeat steps 3-8 for the remaining angles.

Data:

Phone leveller (degrees) Trial 1 (degrees) Trial 2 (degrees) Trial 3 (degrees)
-90 -88 -87 -87
-60 -59 -60 -58
-30 -29 -30 -30
0 0 0 0
30 32 30 29
60 61 59 60
90 88 87 88
  • Device readings were only off by a maximum of 3 degrees
  • 90 degrees had the largest difference, the device read 87 degrees
  • No changes at 0 degrees

Experiment 2:

Hypothesis:

If a buzzer is used as an alarm to alert users when they reach head angles associated with BPPV, then the buzzer will activate at those angles and remain off at non-triggering angles, because it is programmed to respond to specific threshold angles linked to BPPV-related head positions.

Materials:

  • MPU 6050
  • LCD 16x2 monitor
  • Active buzzer
  • Arduino Nano
  • Breadboard
  • Wires (male and female)
  • Battery pack
  • USB C cable
  • LEGO bricks

Variables:

Independent: Angle of tilt. Dependent: Activation of buzzer. Controlled:

  • Tested on the same surface
  • Same position of buzzer on device
  • Same reference tool for reference angles

Procedure:

  1. Set the device at 0 degrees on a flat surface.
  2. Move the device slowly, checking the angle at either -21, -20, -19, 69, 70 or 71 degrees. Use a phone leveller to measure the angle.
  3. Hold the device position for 5 seconds.
  4. Record whether the buzzer was activated on a datasheet.
    1. The buzzer should activate from any angle less than or equal to -20 degrees
    2. The buzzer should not activate from any angle between -20 and 70 degrees
    3. The buzzer should activate from any angle greater than or equal to 70 degrees
  5. Return the device to 0 degrees and reset it for accuracy.
  6. Repeat steps 4-6 two additional times for the same angles (3 trials in total).
  7. Repeat steps 3-7 for the remaining angles.

Data:

Phone leveller (o) Trial 1 Trial 2 Trial 3 Trial 4 Trial 5
-21 ON ON ON ON ON
-20 ON ON ON ON OFF
-19 OFF OFF ON OFF OFF
69 ON OFF OFF ON OFF
70 ON OFF ON ON ON
71 ON ON ON ON ON
  • The buzzer should activate from any angle less than or equal to -20 degrees
  • The buzzer should not activate from any angle between -20 and 70 degrees
  • The buzzer should activate from any angle greater than or equal to 70 degrees
  • 30 total tests
  • 25 accurate buzzer activations

Reliability (%) = 25/30 x 100% = 83% The buzzer is 83% reliable.

Sources of Error:

  • Testing surface may have not been clean, affecting angle and buzzer readings
  • Phone leveller could have been innaccurate
  • Natural shake in hands may have prevented maintaining a constant angle for at least 5 seconds

Limitations:

  • Device will need to be scaled down for real-world use
    • The prototype may be too large and heavy to be used daily
  • Buzzer sound may become irritating for potential users

Analysis

Experiment 1: Accuracy of angle detection by the device
  • Device readings were fairly accurate compared to the phone leveller
    • Most angles were only off by 1-3 degrees
  • No difference at 0 degrees
  • The most inaccurate results were at -90 and 90 degrees
    • Never read the actual angle and was off by 2-3 degrees
  • Errors may be due to the accelerometer not being placed correctly/flat in the box
  • The results may have also been affected by any potential dust on the testing surface
Experiment 2: Accuracy of buzzer on the device
  • The buzzer usually activated at the correct angle
  • The most inaccurate results were at -19 and 69 degrees
    • Would often oscillate between the real angle and the buzzer trigger angle
  • The most accurate results were at -21 and -71 degrees
    • Same buzzer condition regardless of angle error
  • Errors may be due to shaky hands causing the angle to change
  • Some components of the device may have not been placed flat, which could have changed the reading and buzzer activation

Conclusion

The purpose of this experiment was to determine if a device using an accelerometer could accurately detect head angles. The hypothesis was supported as the device successfully measured angles ranging from -90 to 90 degrees with maximum errors of 3 degrees. Additionally, an alert system using a buzzer was incorporated for BPPV-associated angles. These results demonstrate that the second iteration of the device can efficiently track tilt angles and warn potential users with minimal errors. In future iterations, a scaled-down model of the device could be implemented for user comfort.

Citations

Sources:

Agrimis, J. (2021, September 9). The vestibular system and balance. NeuroLab 360. https://www.neurolab360.com/blog/vestibular-system-and-balance

Bahauddin Zakariya university, M. (n.d.). Ion Channels. Slideshare. https://www.slideshare.net/slideshow/ion-channels-242003984/242003984

Benign paroxysmal positional vertigo (BPPV) | Johns Hopkins Medicine. (n.d.-a). https://www.hopkinsmedicine.org/health/conditions-and-diseases/benign-paroxysmal-positional-vertigo-bppv Benign paroxysmal positional vertigo (BPPV): Treatment, symptoms & causes. Cleveland Clinic. (2025, September 23). https://my.clevelandclinic.org/health/diseases/11858-benign-paroxysmal-positional-vertigo-bppv

Casale, J. (2023, May 1). Physiology, Vestibular System. StatPearls [Internet]. https://www.ncbi.nlm.nih.gov/books/NBK532978/#:\~:text=Introduction,Go%20to

Hair cell - an overview | sciencedirect topics. (n.d.-b). https://www.sciencedirect.com/topics/immunology-and-microbiology/hair-cell

The Human Balance System. Vestibular Disorders Association. (2021, May 21). https://vestibular.org/article/what-is-vestibular/the-human-balance-system/the-human-balance-system-how-do-we-maintain-our-balance/

Lundberg, Y. W., Xu, Y., Thiessen, K. D., & Kramer, K. L. (2015, March). Mechanisms of Otoconia and otolith development. Developmental dynamics : an official publication of the American Association of Anatomists. https://pmc.ncbi.nlm.nih.gov/articles/PMC4482761/#:\~:text=Abstract,otoconia%20formation%20in%20recent%20years

Mayo Foundation for Medical Education and Research. (2025, December 31). Benign paroxysmal positional vertigo (BPPV). Mayo Clinic. https://www.mayoclinic.org/diseases-conditions/vertigo/symptoms-causes/syc-20370055

professional, C. C. medical. (2025, September 30). Vertigo: Regaining your balance. Cleveland Clinic. https://my.clevelandclinic.org/health/symptoms/21769-vertigo

professional, C. C. medical. (2026, January 16). What is the vestibular system?. Cleveland Clinic. https://my.clevelandclinic.org/health/body/vestibular-system

Todd M Hoagland, P. (2025, November 6). Vestibular System Anatomy. Overview, Membranous Labyrinth, Vestibular Sensory Epithelium. https://emedicine.medscape.com/article/883956-overview

Vertigo causes and treatment. (n.d.-c). https://www.nhsinform.scot/illnesses-and-conditions/ears-nose-and-throat/vertigo/

Wang, D., & Zhou, J. (2026, January 22). The kinocilia of cochlear hair cells: Structures, functions, and diseases. Frontiers. https://www.frontiersin.org/journals/cell-and-developmental-biology/articles/10.3389/fcell.2021.715037/full

Wikimedia Foundation. (2025, November 10). Vertigo. Wikipedia. https://en.wikipedia.org/wiki/Vertigo

Wokwi-LCD1602 reference. Wokwi Docs. (n.d.-a). https://docs.wokwi.com/parts/wokwi-lcd1602

Wokwi-MPU6050 6-axis accel & gyro sensor. Wokwi Docs. (n.d.-b). https://docs.wokwi.com/parts/wokwi-mpu6050

Images (found in presentation):

Hair cell - an overview | sciencedirect topics. (n.d.). https://www.sciencedirect.com/topics/immunology-and-microbiology/hair-cell

NASA courses for Doctors. (n.d.). https://www.nasafordoctors.co.za/articles.php?cid=9&id=39&aid=257

Otoconia - definition. @neurochallenged. (n.d.). https://neuroscientificallychallenged.com/glossary/otoconia

Wang, D., & Zhou, J. (2026, February 12). The kinocilia of cochlear hair cells: Structures, functions, and diseases. Frontiers. https://www.frontiersin.org/journals/cell-and-developmental-biology/articles/10.3389/fcell.2021.715037/full

Acknowledgement

I would like to thank the countless number of people who helped me with this project. These include Pratham Shah, who assisted me with the programming aspect of the device, Robert DeGelder, who not only chose me for the CYSF, but provided materials to create the device, and Adrian Warren and Mrigaj Jadhav, who both gave feedback for the online CAD model. Additionally, I would like to thank Shashi Jadhav, who inspired me to make this project from his recent experience with vertigo, and Shruti and Jignesh Shah, my parents, who gave strong support throughout the duration of this project.