Inspiration

During our research, we determined that cycling incidents very commonly lead to traumatic brain injuries. A lot of these go unnoticed and can lead to complications further on if not treated, or if ignored and another impact happens in a short time frame. These repeated TBIs are heavily related to a higher risk for neurodegenerative disease. For this reason, we wanted to build a device that informed the user with information regarding their impact.

What it does

NeuroHalo is a compact module that attaches to a cyclist's helmet and detects head impacts. It measures acceleration and rotation during a crash and uses the Head Injury Criterion to estimate how severe the impact was. Each impact is sent over Bluetooth to the NeuroHalo app, which flags significant hits, advises the rider to rest or get evaluated, and generates an objective report to share with a doctor. There is also a chatbot that the user can talk with to provide further details about the incident and the app can recommend what to do. Over time, the app builds a history of every impact, turning hits that would otherwise go unrecorded into a long-term record riders can use.

How we built it

We built NeuroHalo around a Seeed Studio Xiao Sense module. Our original plan paired a separate ESP32 with an external sensor, but the Xiao Sense already has a built-in accelerometer, gyroscope, and Bluetooth, so the ESP32 was redundant. Dropping it made the device smaller, lighter, and simpler to wire.

The firmware reads acceleration and rotation continuously. When a reading crosses our impact threshold, it captures the event, calculates a Head Injury Criterion score, and sends the report over Bluetooth to the NeuroHalo app, which logs it to the rider's impact history. We designed the casing in SolidWorks to hold the module securely while staying compact enough to sit on top of a helmet, and we attached it with a Velcro strap. For power, we used a portable charger as the battery, which let us get a working prototype running quickly without designing a custom power circuit.

Challenges we ran into

Over the course of development, we overcame several design, hardware and software challenges. Our first printed prototype had screw holes and nut recesses that were too small, so we enlarged the lid holes with a soldering iron and hot-glued the nuts into the bottom box, which let us fasten the enclosure and secure our components. We also moved from our original setup of an ESP32 with a separate IMU to the Xiao, which has the motion sensor and Bluetooth built in, making our hardware smaller and simpler.

On the software side, our accelerometer and gyroscope sample about 400 times per second, and streaming all of that over Bluetooth would have overloaded the connection and lost data. Instead, we run the detection on the Xiao itself using an RTOS, so only real impact events are sent to the app. Telling real impacts apart from normal riding was another challenge: early versions flagged a crash when the helmet was just sitting still, and bumpy roads caused false alarms. We fixed this with a threshold that adjusts to how rough the road is, and by checking how sharply the impact rises, how fast the head rotates, and whether the rider ends up tilted and still. Bluetooth itself was unreliable at first, with impacts getting lost or arriving late and the connection dropping on battery power. We solved this by having the helmet send an instant alert for each hit, store impacts while disconnected, and resend them until the app confirms it received them.

Accomplishments that we're proud of

One of our biggest accomplishments was successfully developing a functional helmet impact detection system that integrates hardware, software, and real-time data monitoring. Our team established Bluetooth communication between the helmet's microcontroller and our Python server, allowing us to wirelessly transmit, analyze, and store impact data.

A major technical achievement that sets our project apart is our implementation of a Real-Time Operating System (RTOS). This allowed us to prioritize critical operations, collect sensor data at approximately 416 Hz, and manage impact detection alongside Bluetooth communication without relying on a single sequential process.

Overall, we're proud that our team was able to bring together multiple engineering disciplines to create a working prototype that goes beyond simply detecting impacts. Our goal was to make that information meaningful and accessible, giving cyclists a way to review potentially concerning events and promoting greater awareness of rider safety.

What we learned

We learned how to build a full embedded system, from sensor to app. We used an RTOS on the XIAO to sample its built-in motion sensor at high speed and detect impacts on the device itself. We learned how Bluetooth Low Energy carries data from a wearable to a web app, and how to combine acceleration, rotation and tilt to tell real crashes apart from simple bumps. We also learned how to design an app that turns raw sensor data into clear, useful information for athletes.

What's next for NeuroHalo

The next steps for NeuroHalo include having a high-g accelerometer that can record real impact bike crashes that tend to range from 50 Gs to 100 Gs, while our current accelerometer only reaches 16 Gs. Another expansion for NeuroHalo is extending the activities it can be used in, such as football or hockey, other heavy-contact sports. Finally, instead of locally storing our data, we would love to store data in the cloud so users can access their data from any device, anywhere.

Built With

  • ai-agent
  • bluetooth
  • c++
  • claude-api
  • cloudfare
  • grabcad
  • html
  • nrf52840
  • python-server
  • rtos
  • solidworks
  • xiao
Share this project:

Updates

Submission history