Exploring Various Smartwatches

Played through various smartwatches for a project I was doing. See basic comparison below:
Comparison
Watch | OS | Programming Environment | Sensors | Battery | ||
---|---|---|---|---|---|---|
Acc. | Gyr. | Mag. | ||||
Fitbit Versa | Fitbit OS | Javascript through Fitbit studio | ✔ | ✔ | Bad (~1 day) | |
AmazFit GTR | Realtime OS based | Sadly, not programmable | ✔ | ✔ | ✔ | Very good (14 days) |
AmazFit Verge | Android OS 5.1 | Android SDK. Needs hacking to sideload app (i.e., AmazMod) | ✔ | ✔ | ✔ | Good (5 days) |
TicWatch S2 | Wear OS 2 | Android and Wear OS SDK | ✔ | ✔ | Good-ish (~2 days) |
Programming Environment
- Since both Android OS 5.1 and Wear OS are android based, it shouldn't be a surprise that they both actually have a lot in common.
- AmazFit can be programmed through Android Studio right off the bat (not big dramas for me). That being said, if you want to develop your own smartface, you must check out GreatFit app.
- If you are interested on having the smartwatch to only run and show one app, google how to enable Kiosk mode on WearOS. Notable links: link1, link2
Sensor List Output
Below is the output from the code.
mSensorManager = activity.getSystemService(Activity.SENSOR_SERVICE) as SensorManager
Log.v("SensorsHandler", mSensorManager.getSensorList(Sensor.TYPE_ALL).toString())
AmazFit Verge
Note that though AmazFit Verge does have the Rotation vector Sensor, at the time of testing (Sept 2020) I can't really obtain sensible rotation vector (i.e., quaternion) data from it. It does, however, output sensible data from the depracated Orientation Sensor.
[{Sensor name="TAOS Light sensor", vendor="Huami Tech", version=1, type=5, maxRange=10240.0, resolution=1.0, power=0.15, minDelay=0},
{Sensor name="Accelerometer Sensor", vendor="Huami Tech", version=1, type=1, maxRange=39.2266, resolution=1.0E-5, power=0.17, minDelay=2000},
{Sensor name="Magnetic field Sensor", vendor="Huami Tech", version=1, type=2, maxRange=200.0, resolution=0.01, power=5.0, minDelay=10000},
{Sensor name="Gyroscope Sensor", vendor="Huami Tech", version=1, type=4, maxRange=2000.0, resolution=0.01, power=6.1, minDelay=10000},
{Sensor name="Pressure Sensor", vendor="Huami Tech", version=1, type=6, maxRange=2000.0, resolution=1.0, power=0.0027, minDelay=10000},
{Sensor name="Step Counter", vendor="Huami Tech", version=1, type=19, maxRange=200.0, resolution=1.0, power=0.17, minDelay=0},
{Sensor name="Pick-out Sensor", vendor="Huami Tech", version=1, type=65537, maxRange=200.0, resolution=1.0, power=0.17, minDelay=0},
{Sensor name="gesture Sensor", vendor="Huami Tech", version=1, type=23, maxRange=200.0, resolution=1.0, power=0.17, minDelay=0},
{Sensor name="PPG Sensor(auto)", vendor="Huami Tech", version=1, type=65538, maxRange=200.0, resolution=1.0, power=0.17, minDelay=2000},
{Sensor name="PPG Sensor(25mA)", vendor="Huami Tech", version=1, type=65538, maxRange=200.0, resolution=1.0, power=0.17, minDelay=2000},
{Sensor name="PPG Sensor(40mA)", vendor="Huami Tech", version=1, type=65538, maxRange=200.0, resolution=1.0, power=0.17, minDelay=2000},
{Sensor name="PPG Sensor(55mA)", vendor="Huami Tech", version=1, type=65538, maxRange=200.0, resolution=1.0, power=0.17, minDelay=2000},
{Sensor name="infrared Sensor", vendor="Huami Tech", version=1, type=65539, maxRange=200.0, resolution=1.0, power=0.17, minDelay=2000},
{Sensor name="Orientation Sensor", vendor="Huami Tech", version=1, type=3, maxRange=200.0, resolution=1.0, power=0.17, minDelay=2000},
{Sensor name="rotation vector Sensor", vendor="Huami Tech", version=1, type=11, maxRange=200.0, resolution=1.0, power=0.17, minDelay=2000},
{Sensor name="linear acceleration Sensor", vendor="Huami Tech", version=1, type=10, maxRange=200.0, resolution=1.0, power=0.17, minDelay=2000},
{Sensor name="Gravity Sensor", vendor="Huami Tech", version=1, type=9, maxRange=200.0, resolution=1.0, power=0.17, minDelay=2000}]
TicWatch S2
[{Sensor name="LSM6DS3 Accelerometer", vendor="STMicroelectronics", version=1, type=1, maxRange=78.4532, resolution=0.0023956299, power=0.9, minDelay=10000},
{Sensor name="LSM6DS3 Accelerometer Uncalibrated", vendor="STMicroelectronics", version=1, type=35, maxRange=78.4532, resolution=0.0023956299, power=0.9, minDelay=10000},
{Sensor name="LSM6DS3 Gyroscope", vendor="STMicroelectronics", version=1, type=4, maxRange=34.906586, resolution=0.0012207031, power=0.9, minDelay=10000},
{Sensor name="LSM6DS3 Gyroscope Uncalibrated", vendor="STMicroelectronics", version=1, type=16, maxRange=34.906586, resolution=0.0012207031, power=0.9, minDelay=10000},
{Sensor name="LSM6DS3 Accelerometer -Wakeup Secondary", vendor="STMicroelectronics", version=1, type=1, maxRange=78.4532, resolution=0.0023956299, power=0.9, minDelay=10000},
{Sensor name="LSM6DS3 Accelerometer Uncalibrated -Wakeup Secondary", vendor="STMicroelectronics", version=1, type=35, maxRange=78.4532, resolution=0.0023956299, power=0.9, minDelay=10000},
{Sensor name="LSM6DS3 Gyroscope -Wakeup Secondary", vendor="STMicroelectronics", version=1, type=4, maxRange=34.906586, resolution=0.0012207031, power=0.9, minDelay=10000},
{Sensor name="LSM6DS3 Gyroscope Uncalibrated -Wakeup Secondary", vendor="STMicroelectronics", version=1, type=16, maxRange=34.906586, resolution=0.0012207031, power=0.9, minDelay=10000},
{Sensor name="Gravity", vendor="QTI", version=2, type=9, maxRange=78.4532, resolution=0.0023956299, power=1.7999878, minDelay=10000},
{Sensor name="Linear Acceleration", vendor="QTI", version=2, type=10, maxRange=78.4532, resolution=0.0023956299, power=1.7999878, minDelay=10000},
{Sensor name="Step Detector", vendor="QTI", version=2, type=18, maxRange=1.0, resolution=1.0, power=0.8999939, minDelay=0},
{Sensor name="Step Counter", vendor="QTI", version=2, type=19, maxRange=1.0, resolution=1.0, power=0.8999939, minDelay=0},
{Sensor name="Significant Motion Detector", vendor="QTI", version=2, type=17, maxRange=1.0, resolution=1.0, power=0.8999939, minDelay=-1},
{Sensor name="Game Rotation Vector", vendor="QTI", version=2, type=15, maxRange=1.0, resolution=5.9604645E-8, power=1.7999878, minDelay=10000},
{Sensor name="Heart Rate Monitor", vendor="QTI", version=2, type=21, maxRange=250.0, resolution=1.0, power=0.8999939, minDelay=0},
{Sensor name="Wrist Tilt Gesture", vendor="QTI", version=3, type=26, maxRange=1.0, resolution=1.0, power=0.8999939, minDelay=0},
{Sensor name="Gravity -Wakeup Secondary", vendor="QTI", version=2, type=9, maxRange=78.4532, resolution=0.0023956299, power=1.7999878, minDelay=10000},
{Sensor name="Linear Acceleration -Wakeup Secondary", vendor="QTI", version=2, type=10, maxRange=78.4532, resolution=0.0023956299, power=1.7999878, minDelay=10000},
{Sensor name="Step Detector -Wakeup Secondary", vendor="QTI", version=2, type=18, maxRange=1.0, resolution=1.0, power=0.8999939, minDelay=0},
{Sensor name="Step Counter -Wakeup Secondary", vendor="QTI", version=2, type=19, maxRange=1.0, resolution=1.0, power=0.8999939, minDelay=0},
{Sensor name="Game Rotation Vector -Wakeup Secondary", vendor="QTI", version=2, type=15, maxRange=1.0, resolution=5.9604645E-8, power=1.7999878, minDelay=10000},
{Sensor name="Heart Rate Monitor -Wakeup Secondary", vendor="QTI", version=2, type=21, maxRange=250.0, resolution=1.0, power=0.8999939, minDelay=0},
{Sensor name="Gaze Detector -Wakeup", vendor="COMPAL", version=2, type=33171025, maxRange=1.0, resolution=1.0, power=0.8999939, minDelay=0},
{Sensor name="AMD", vendor="QTI", version=2, type=33171006, maxRange=1.0, resolution=1.0, power=0.8999939, minDelay=0},
{Sensor name="RMD", vendor="QTI", version=2, type=33171007, maxRange=1.0, resolution=1.0, power=0.8999939, minDelay=0},
{Sensor name="Pedometer", vendor="QTI", version=2, type=33171009, maxRange=1.0, resolution=1.0, power=0.8999939, minDelay=0},
{Sensor name="Coarse Motion Classifier", vendor="QTI", version=4, type=33171012, maxRange=2.14748365E9, resolution=1.0, power=0.8999939, minDelay=0}, {Sensor name="PAH8011 Touch", vendo
V/SensorsHandler: 1000000 [{Sensor name="LSM6DS3 Accelerometer", vendor="STMicroelectronics", version=1, type=1, maxRange=78.4532, resolution=0.0023956299, power=0.9, minDelay=10000}, null]