I’m a fan of Pine64’s products. I own a PinePhone, have tried out the multi-distro demo image, and have even bought a keyboard (which is, unfortunately, not terribly great - it has mushy keys and is unresponsive) for it. I haven’t been able to replace my Android phone just yet, but when the PineTime was announced, I told myself I’d wait a bit for the platform to mature, then give it a shot.
In the meantime, I bought a FitBit Charge 4 (this was 2021-ish) which I used for about a year until now. The main features I liked from that watch were, in no particular order:
- Sleep cycle tracking
- automatic sleep tracking, just keep it on your wrist and go to sleep. It sometimes detected me as sleeping while watching a movie, but other than that, very solid detection.
- Heart rate and calorie tracking in the app
- Small footprint, comfortable to wear
- Notification support (very hit or miss imo)
- It’s a watch and tells the time, of course
So, a bit ago I decided to give the PineTime a good solid test. At currently $27 plus shipping (!!) for a sealed watch, it was a clear next step, especially since supporting FOSS and data privacy are top-of-mind for me these days.
I’ve been using it for a week now - here’s my impressions.
First Impressions
The PineTime is a really solid piece of hardware as soon as you take it out of the box. In my opinion, it doesn’t feel cheap. The band fits snugly enough, and it has a bigger footprint than the FitBit. Despite that, I don’t notice it that much more while wearing it, even while sleeping with it.
I’m impressed by the screen clarity and responsiveness. Apparently the vertical scrolling is smooth because it’s hardware-accelerated, and the horizontal screen transitions are sriped to make up for this fact. They still feel relatively responsive.
The UI isn’t bad, and the watch faces as of firmware 1.9.0 include a “terminal” face, which is neat, but a bit impractical as the time display is small. I’m using the default digital watch face, currently.
There are most apps you might need on a watch - timer, stopwatch, step tracking, music controls, flashlight - and more that you wouldn’t think of, like a drawing app, a BPM app that vibrates on the beat, several games, and even navigation directions. It can vibrate when you recieve notifications and you can view them.
It comes with a charging cradle that’s magnetic, and the magnet is actually decently strong - I read about some folks having issues getting the pins to contact, but with the magnet there’s no issues I’ve run into. I bought an extra that I keep by my bedside, just in case (they’re $5).
It’s overall a very appealing package for the price, and while the UI is simple and gimmick-free, it’s also clean and uncluttered.
Updating to the latest InfiniTime Firmware
This is where the PineTime really surprised me. The firmware that the watch comes with by default is called InfiniTime, and it’s pretty nice. You can pair the watch with your Android phone using Gadgetbridge, which apparently supports many other smartwatches. It’s written in C/C++ and there’s even a simulator for development without hardware. You love to see it.
You pair the PineTime by enabling BLE and then searching for it. I had to manually grant Gadgetbridge the most granular location permission (“on-all-the-time-forever”, which seems a bit odd, but it seems to have something to do with BLE discovery on Android), in App Info, but once I did it detected the PineTime immediately and paired.
To update the firmware, all you have to do is download the .bin
and open it in your file manager of choice, and you’ll be prompted to open it with Gadgetbridge. Once you do, that’s it. OTA firmware updates. Incredibly easy!
Gadgetbridge
As mentioned, Gadgetbridge is fairly nice and offers a lot of granular options for notification filtering as well as selecting the default media app. It tracks watch battery life and can send debug notifications if needed. I’m happy that it’s open source and it seems fairly well built for now.
It does pop a persistent notification for the watch, though, which I don’t mind, as I can silence it and hide it in the notification drawer. It displays the current battery life.
Screen wake/sleep
Screen wakeup is pretty configurable. I got used to the “raise hand to turn on” mode of the FitBit, and the PineTime has that too, but it’s way too sensitive. It turns on often when I just move my arm. Luckily, there’s a “shake to wake” option that has configurable accelerometer sensitivity (!), so I’ve switched to that and it seems to turn on less frequently.
Sleep tracking & FitBit feature parity
There’s no sleep tracking. Well, none built-in to InfiniTime.
There are two options that I’m aware of:
- The Beta release of Sleep as Android supports PineTime data gathering (as of, like yesterday). It was an app that was recommended by a friend, and after testing it out without PineTime integration, I think I might install the beta to test it out. The author mentions they are talking with PineTime devs about accessing heart rate info as well. This is probably the best bet, if it works well.
- There is a fork of wasp-os and an app called SleepTk that does tracking, but I believe you may have to enable it manually when you go to sleep, which is a non-starter. I dislike having to enable tracking manually at bedtime.
It’s also worth mentioning that Gadgetbridge seems to support sleep tracking, just not InfiniTime. By its nature as a generic app for plenty of other watches, it makes it seem like the PineTime supports sleep tracking, because the “Sleep” info tabs are enabled by default when you view the device. You can disable them, though, if your device doesn’t support it.
There are a few other things missing, like a more fully featured app that includes fitness options and calorie/workout tracking, but it’s not essential for me like sleep tracking is.
Notifications
Viewing notifications is fine in general, but with one big caveat - you can’t dismiss them. This means I can always swipe up and see the last 5 notifications that came through, but something in me craves a way to clear them.
Luckily, there’s a pull request for exactly this feature!
Heart rate sensor
I was happy that initially it ticked the heart rate sensor box, but I have a few complaints about the sensor.
I went for a walk, and noticed that afterward it wasn’t tracking my heart rate well and estimates were all over the place.
Additionally, even if you have heart rate measuring on all the time, it won’t keep polling for it. There’s a pull request to make it poll every 60s.
Battery life
With everything on (BLE, heart rate), I estimated battery life at about ~2-4 days, depending on how heavily I used it. I could comfortably follow the same routine that I did with my FitBit, that is, take it off every morning and charge it while I shower.
Everything was fine until I noticed that one morning, it was just dead.
I’m still not sure why this happened - perhaps the screen stuck on, or the button was depressed constantly and it bootlooped? Either way, it dropped pretty quicky to zero overnight and I couldn’t wake it.
I placed it on the charging cradle and it booted up just fine - to an older firmware with my settings gone! 1.6.0 was the firmware it came with. It turns out, when you flash a new firmware, the PineTime keeps the older version to roll back to unless you “Validate” it. After learning why it happens, I actually think it’s a pretty cool feature now. It might save you when flashing a new, unstable firmware. There aren’t to many settings to lose, anyway.
Conclusions
Overall I’m impressed. Here’s a summarized list of features I’d like to see implemented at some point that would make the PineTime an instant recommendation from me:
- Automatic (set-and-forget) sleep detection and tracking in Gadgetbridge or a third-party app
- Heart rate sensor polls periodically
- Dismiss notifications
- Fitness data tracking
I haven’t tried wasp-os, the other popular firmware, yet. It’s based on micropython, so I could probably hack on it easier, but InfiniTime feels more full-featured at the moment. There’s also a rust firmware, and the creator has made a ton of articles about its development.
If you’re interested in the PineTime even a little bit, the price is low enough that you can give it a shot without too much remorse. Check out the Gadgetbridge wiki page and the InfiniTime GitHub as well, so you know what you’re getting into. Check it out, and see if it’s for you. If you’re willing to make some concessions with your current smartwatch features, you can support a great open source project and stay in control of your data.