NIVO Hub
A performance monitoring device for horses
Solution
SOFTWARE
C++17
Bluetooth™ LE 5.2 radio stack
boost sml
CMake
python
TEAM
2 x Software Engineers
Problem
We were contacted by Danish startup company Nivo. They were developing a performance monitoring device for horses. Nivo handled hardware development internally, but they needed someone for firmware with experience using a specific BLE SoC.
As we had experience working on the same SoC platform on a BLE product, we were a perfect match for the task.
Solution
Firmware features event-driven design utilizing modern C++. MCU is in low power mode when idle. Low power mode functionality for every external IC is implemented as well. The device is charged wirelessly. Firmware sets up proper settings for battery charging IC. A fuel gauge is used for monitoring battery levels and energy consumption. A sensor fusion algorithm is applied to raw IMU data to get the device orientation in space. IMU data can be streamed over BLE to smartphones or stored locally and transferred to smartphones on demand. Firmware performs calibration for the IMU sensors.
The device implements Firmware over the air update (FUOTA) procedures using a custom bootloader.
We developed a special GUI tool in python for interfacing with devices for development and testing purposes.
Result
Robust and power-optimized firmware. Using FUOTA the device is upgradable by the end-user over her smartphone. The flexible design allows for adding new features easily without breaking the existing functionality.
S