Improving algorithms for motion and activity on a Golf smart watch
The client, a golf smartwatch producer company, had an existing Golf smartwatch product that was originally developed and manufactured in China.
The performance of the product was poor due too bad hardware design, including poor Bluetooth radio performance, but also very inaccurate motion sensor algorithms and firmware with lot of stability issues.
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 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.
Beside firmware improvements, our team did the hardware design review and proposed improvements on Bill of Materials and PCB design.