DAVE (AI Volleyball Evaluator)
1st Place Overall Winner - BloomKnights Hackathon
Links: GitHub Repository | Devpost Submission
The DAVE dashboard featuring a 3D swing reconstruction
DAVE (Dynamic Acronym Volleyball Evaluator) is a wearable hardware motion tracker designed to act as a volleyball coach to help improve accuracy and form.
System Architecture
Section titled “System Architecture”To get quick feedback of a volleyball swing, we offloaded the kinematic reconstruction and machine learning inference from the wearable to a separate FastAPI server. This architecture blended low-level embedded hardware with a modern AI. We had three distinct parts: physical data capture, backend processing, and frontend visualization.
flowchart LR
A[Two MPU6050 IMUs] --> B[ESP32 firmware]
B -->|POST /api/swing| C[FastAPI bridge]
C --> D[Validation and preprocessing]
D --> E[Random-forest classifier]
E --> F[Website data files]
F --> G[Next.js dashboard]
F --> H[Gemini coaching]
Hardware & Electronics
Section titled “Hardware & Electronics”
The arm sleeve with attached IMU sensors and ESP32 microcontroller
The wearable was driven by an ESP32 Dev Kit. It interfaced with two MPU6050 IMUs positioned on the user’s forearm and bicep. The embedded firmware actively calibrates both IMUs, detects swings through velocity thresholds and records telemetry at 200 samples per second.
Data Pipeline & Machine Learning
Section titled “Data Pipeline & Machine Learning”Once the physical motion is captured, the ESP32 posts a JSON packet to the Python/FastAPI backend. The data is validated and reconstructed into the absolute positions of the shoulder, elbow, and wrist. The data is passed to the trained Random-Forest classifier to evaluate the swing.
The Dashboard & AI Coaching
Section titled “The Dashboard & AI Coaching”The final processed data files are sent to the dashboard. The frontend shows an interactive 3D replay of the user’s swing. In addition, the frame-by-frame processed motion data is sent to the Gemini API for personalized, conversational coaching and feedback.
My Specific Contributions
Section titled “My Specific Contributions”During the hackathon, I primarily focused on the embedded hardware architecture and networking.
- Electronics Integration: Wired the ESP32 microcontroller and MPU6050 sensors into the wearable.
- Network Optimization: Created the HTTP streaming logic and custom two-pass serialization to overcome microcontroller memory constraints.
- Firmware Design: Handled the initial C++ firmware architecture.
The Team - BAAA
Section titled “The Team - BAAA”This 12-hour build was made possible by an incredible team of Computer Science and Mechanical Engineering students:
- Brandon Stile - Frontend & Gemini API Integration
- Alexander Nardi - MLOps, Data Processing & Communication
- Aiden O’Conner - Hardware Design & Sensor Fusion Implementation
- Adam Brandt - Embedded Electronics & Networking