Problem
I have a need for a small device that can track my various recreational activities. I mainly track what I am doing with Strava using my phone, which works well when biking or hiking, but not so much if I go surfing or swimming. First, my phone is not completely waterproof and second, my phone is far too big where it couldn’t fit into a phone pocket or on a swim cap. The off the shelf solution is to buy a smart watch, but they are quite expensive with watches costing 200 USD or more. Additionally, when surfing I have a fear of loosing my standard analog watch in the ocean that I have a cheaper timex ironman that I wear instead of my Seiko, just in case. I don’t really care about any other “fitness tracking” such as heart rate and such, only distance and duration. What I want is a device small enough that would fit into a wetsuit key pocket that can track distance travels and duration. Detailed list of requirements is below:
Requirement |
Motivation |
3.5 hours battery life |
Most days my activities are ~2 hours + get ready (~0.5 hour) + buffer time (1 hour) |
Waterproof |
Use device with water based activities. Additionally, rain. |
3cm x 8 cm |
Small enough to fit into a wetsuit key pocket. |
Wireless |
Sync activities with phone. |
GPS |
Track distance traveled. |
50 USD |
About the cost of the timex watch I already have. |
Solution
Since as far as I could tell there are no off the shelf solutions that meet my requirements, and I apparently have an ECE degree, I am planning on building a custom device. I plan on building the device around the esp32 microcontroller which (1) I am familiar with allowing for quick development and (2) has both BLE and WiFi support allowing for wireless connectivity with my phone. A GPS module and possibly IMU will be needed to track location. Some sort of non-volatile store is required, with my preference being FRAM as it is lower power consumption and only slightly higher power consumption. I believe there is also a SPIFS library that can be used to easily create a filesystem to store GPS measurements. Pretty much whatever the cheapest with 1 Mbit flash should be sufficient. Battery support will be more difficult as the size of battery is determined by the underlying battery consumption. It’s likely that I could fit at least a 2200 mAh battery in the required form factor which seems like a good approximation. Waterproofing can be solved with a clamshell type 3D printed enclosure that can be coated with something waterproof (flexseal?) with an rubber gasket. In the future, enclosures can be injection molded to improve the waterproofing. Waterproofing becomes difficult with charging with the pros and cons listed below.
Solution |
Pros |
Cons |
Waterproof USB-C connector |
Off the shelf implementation, USB charging commonplace |
Difficulty to waterproof |
Wireless charging |
Fairly common |
Difficult to implement |
Solar |
Easy to implement |
Cannot charge unless there is sunlight, locking into wireless communication |

Plan
- Location tracking using development boards: Build out the functionality to record GPS signals. No need to worry about any battery management or integration with phone.
- Battery management: With some evaluation to benchmark power consumption, an appropriate battery size can be selected and the charging circuit can be built.
- Enclosure design: Waterproof enclosure so the device can be used in water activities.
- Phone App: Design a cross-platform phone app that can pull activities from the device.
- Integration with Strava: I mainly use Strava so this would be the first service that I look at. They looks like they provide an api that can be used.
Next Steps
Part |
Link |
Notes |
ESP32-C3 |
https://www.espressif.com/en/products/socs/esp32-c3 |
Should have one lying around |
IMU |
https://www.adafruit.com/product/2472 |
Should have one lying around, or they sell them at BELS |
FRAM |
https://www.digikey.com/en/products/detail/infineon-technologies/FM24CL64B-GTR/3788937 |
I believe I also have one of these leftover from another project |
GPS |
- |
TBD, likely the ublox module because of the power consumption |
GPS Modules
Part |
Current |
Price |
Notes |
MAX-M8C-0 |
9.7 mA |
21 USD |
Power consumption is from 1 Hz low power mode |
5186 |
29 mA |
19.95 USD |
Power consumption is from 1 Hz tracking mode |
TESEO-LIV3FL |
29 mA |
16.37 USD |
Power consumption is GPS mode 3.3V @ 1 Hz |