Improving algorithms for motion and activity on a Golf smart watch

Project Background

The client, a golf smartwatch producer startup, had an existing Golf smartwatch product that was originally developed and manufactured in China.

The product’s performance was limited by the existing hardware design, particularly Bluetooth radio performance, and further impacted by inaccurate motion sensor algorithms and firmware stability issues.

Our contribution

Since there was no documentation for the firmware, before proceeding any further, our team had to analyze existing source code to get familiar with the implementation and functionality.

After that, our team did the refactoring of the source code, implementing modular structure for easier maintenance and also resolving major critical issues found during code review (buffer overruns, race conditions).

Since algorithms that use motion sensor were not very accurate, and susceptible to false readings, it was required to write new ones.

We implemented the new algorithms for pedometer, daily activity tracking (running, walking, exercising), calories burned.

 

The challenge was that the hardware is based on a low-power Cortex M0 microcontroller, so the math implementation had to be simplified.

During the development stage, data from motion sensors was logged using our hardware platform, then transferred to the PC for further analysis and algorithms development.

Algorithms were developed on PC for easier optimization, plotting and debugging, and once completed, they were transferred to the embedded target (the golf smartwatch).

Also, our team added some new functionality as requested by the client (e.g., music playing and volume control on smartphone via smartwatch). Added new features related to golf playing.

Besides firmware improvements, our team did the hardware design review and proposed improvements on Bill of Materials and PCB design.