Climbing Sensors
Skills Involved
![](https://calebwaldman.site/wp-content/uploads/2024/12/Screenshot-2024-12-24-at-8.43.23-PM.png)
Hardware Development
Define required functions, source components, soldering, hardware assembly, device testing
![](https://calebwaldman.site/wp-content/uploads/2024/12/Screenshot-2024-12-30-at-7.19.02-PM.png)
Firmware and Software
Write firmware for microcontroller based devices including BLE protocols, write software for a phone based app, write python software for data processing
![](https://calebwaldman.site/wp-content/uploads/2024/12/Screenshot-2024-12-30-at-7.18.15-PM.png)
Data Processing and Analysis
Data parsing, motion fusion for IMU data, gravity isolation, data visualization, peak detection… more to come
Why Collect Climbing Data
Why collect climbing data?
In a past internship I saw the power of data as a tool to inform training and drive improvement in sport performance. As a relatively new and rapidly growing sport, climbing does not currently options for wearables that capture data on an individual’s climbing performance.
Why take on this project?
Across my various internships, university projects and personal projects I have focused on mechanical and electrical projects with some firmware and software work. My main goal with this project was gaining experience with data analysis, as it is an area I am new to but can be powerful tool in any engineers toolbox.
![](https://calebwaldman.site/wp-content/uploads/2025/01/Screenshot-2025-01-26-at-12.42.33-PM-1.png)
How to Build A Climbing sensor
![](https://calebwaldman.site/wp-content/uploads/2025/01/IMG_1928-scaled.jpg)
Set Requirements and Constraints
There are two standard approaches to collecting sports movement data, cameras and IMU’s (Inertial Measurement Unit). Camera systems require the subject to be in frame and free of occlusions during the motion of interest then use computer vision to analyse the movement of the athlete. IMU’s record the accelerations and rotations of a device attached to the athlete then use algorithms to infer what the athlete was doing from those accelerations and rotations. Due to the difficulty of filming while climbing I chose to go with the IMU approach.
Requirements
- Can measure accelerations and rotations at 20 hz
- Does not interfere with climbing
- Consider size, weight, wires etc
- Can withstand climbing activity and falls
- Can attach to each limb (at the wrists and ankles)
- Does not move relative to body when athlete is climbing
Constraints
- Cost ~ $100 for the full system (student budget again)
System Architecture
The climbing sensors are comprised of three main sub systems: Hardware, firmware, and software.
Hardware
The sensor is built around a Seediono Xiao BLE Sense microcontroller. This thumb-nail sized microcontroller incorporates a bluetooth module, an integrated 6 axis IMU, and a battery management/charging circuit making it perfect for my application. A 3.7V 150mAh LIPO battery powers each micro controller for over 4h of continuous usage. The battery and micro controller are attached to wrist / ankle bands lots of electrical tape. While it looks “quick-and-dirty” the tape provides a secure connection and protects the micro controller while keeping a very low profile and allowing for easy access in case of repairs.
![](https://calebwaldman.site/wp-content/uploads/2025/01/IMG_2573-scaled.jpg)
![](https://calebwaldman.site/wp-content/uploads/2025/01/Screenshot-2025-01-26-at-2.37.57-PM.png)
Firmware
On board the micro controller custom firmware caries out three primary functions:
1) Collect sensor data (3 axis accelerations, 3 axis rotations)
2) Perform sensor fusion (using a Mahony filter)
3) Bluetooth communications (at 20 hz)
When the device is powered on, it begins broadcasting a bluetooth signal. Once it detects a bluetooth connection it begins data collection. For best accuracy the sensors cycle between collecting sensor values from the IMU, and updating its orientation using a sensor fusion algorithm, as fast as it can. Using interrupts, timing cycles were added into the code to ensure data is transmitted from the sensors to the connected phone over bluetooth every 50 milliseconds to achieve 20hz data.
Software
To make collecting data easier I decide to stream the data from the sensors directly to a custom iphone app. This was achieved using swift in xcode. Having no experience using swift or xcode this was truly a group effort between myself and 2023 chatGPT. When opened, the app first looks for bluetooth connections matching the signature of the climbing sensors. Once all four (one for each limb) of the sensors are connected the option to record data becomes available. After climbing, the data can then be saved to a CSV file in the phone’s file system for later analysis. Eventually I would like the analysis take place on the phone for ease of use.
Analyzing Climbing Data
Data Analysis Goals
The primary goal of this project, on the data analysis side, is to learn more! However, there are a handful of useful metrics I believe can be found through the data collected by my sensor modules.
- Hand / Foot ratio
- For efficiency it is best to use your legs more than your arms. The ratio of movement between the hands and feet will show how much they favor one over the other.
- Number of Climbs
- For training purposes its useful to know the number or climbs, and number of moves attempted during a climbing session.
- Move Cadence
- As you get tired, or are struggling, the timing between movements increases. Measuring this could help detect fatigue.
- Move Smoothness
- When movements are harder, they are often not as well executed leading to jerky movements.
![](https://calebwaldman.site/wp-content/uploads/2025/01/IMG_2588-scaled.jpg)
![](https://calebwaldman.site/wp-content/uploads/2025/01/Screenshot-2025-01-26-at-1.58.09-PM.png)
Cleaning IMU Data
IMU data is notoriously noisy. In order to work with it I employed two filters, one in the firmware on board the sensor modules, and a second during the data processing. In firmware a sensor fusion algorithm called a Mahony filter is used to update the sensors orientation. Mahony filters use an error reduction scheme and quaternion rotations to produce stable and accurate position estimates. A secondary filtering occurs in software. Here a Savitzky-Golay filter removes high frequency noise from the data while preserving its original shape.
Gravity Isolation
It is impossible to distinguish being stationary in earth’s gravity from accelerating at 9.8m/s² outside of earth’s gravity. This causes there to be artifact in our accelerometer data that suggest acceleration even when stationary. Since we know we are on earth, we can account for this to make out data easier to analyse in future steps. From the Mahony filter we know which direction gravity is acting in, we can use this to remove the respective gravity induced component of acceleration from each axes of our sensors.
Data Analysis
Currently I’m exploring peak detection methods to isolate movements. Feature extraction can then be performed to classify these movements. Alternatively, using the IMU data, movement could be reconstructed in 3D for small time steps to classify movements. Stay tuned for updates!
![](https://calebwaldman.site/wp-content/uploads/2024/12/Screenshot-2024-12-30-at-10.52.47-PM.png)
![](https://calebwaldman.site/wp-content/uploads/2024/12/Screenshot-2024-12-24-at-8.15.49-PM.png)