PineTime: a smartwatch for open-source software
The PineTime is an inexpensive smartwatch developed by PINE64 that is designed to run open-source operating systems. Despite its low cost, however, it has most of the features expected from more expensive, proprietary smartwatches. Because it runs open-source software, though, interested developers can add any other useful features that they dream up.
Users can flash any compatible operating system to the PineTime. Currently, there are two major projects: InfiniTime, which comes preinstalled and is written in C++, and Wasp-os, using MicroPython. InfiniTime is the more popular of the two, perhaps in part because it comes on the watch. But, perhaps surprisingly, the watch ships with an outdated version of InfiniTime; users should upgrade in order to benefit from several improvements, including power optimizations that can double the watch's battery life. There are two other firmware projects that I know of out there: GopherWatch, written in Go and currently in early development, and a seemingly unnamed and currently unmaintained firmware written in Rust. I did not test either of those.
Main features
In addition to the obvious feature of displaying the current time, smartwatches, including the PineTime, implement a variety of features that distinguish them from standard digital watches. Some of these, such as alarm and timer functions, are common on regular watches as well, but others, such as the ability to read notifications from a phone or monitor one's heart rate, are specific to smartwatches. The PineTime has all of these features and more.
Like most smartwatches, the PineTime allows the user to select any of several different watch faces. Both InfiniTime and Wasp-os offer several, including both digital and analog displays, and both allow developers to create new ones.
Both operating systems have alarm, timer, and stopwatch apps. All three work as expected, although the watch's lack of a speaker limits the alarm and timer to vibrating the watch to notify the user. The alarm repeatedly vibrates until it is dismissed in both systems. This is not enough to reliably wake me up, but it may work for lighter sleepers. The timer in InfiniTime simply vibrates once; Wasp-os's timer uses the same vibration sequence as the alarm.
Notifications and calls
The watch pairs to a phone (or computer) using a companion app on the other device. When the user's device receives a notification, it is sent to the watch, which vibrates and displays the message content. Incoming calls can be answered or declined from InfiniTime; this can be used to dismiss unwanted calls with no extra hardware, but a Bluetooth headset or similar device is needed for it to be useful for answering. Wasp-os does not have this feature; there is a pull request to add a phone app, but it has not been updated in over two years, and I did not test it.
I use Gadgetbridge on my Android phone and it works well with InfiniTime. It also works with Wasp-os, but I have had several notifications that did not appear on the watch when running Wasp-os, despite being close to the phone; that has also happened occasionally on InfiniTime, but much less frequently. Although I have only used the watch with my Android phone, the PineTime can also be used with iOS, Windows, or Linux devices — including Linux phones such as the PinePhone, which is also made by PINE64.
In addition to handling notifications, updating the time on the watch, and a few other features, companion apps are used to switch operating systems or install updates by reflashing the watch's firmware. I have flashed firmware using both Gadgetbridge on my phone and siglo, a companion app for Linux, on my laptop; while long-term pairing to a computer is not likely to be practical because the watch and companion device must be kept quite close, it works well for flashing.
Music and fitness tracking
Although the PineTime does not have a speaker and thus cannot play music on its own, it can be used to control music being played on a phone. The watch shows the name and duration of the song being played and allows the user to pause and resume the music and skip tracks. The app is designed similarly on InfiniTime and Wasp-os, but it seems to only work on InfiniTime. Attempting to use the music app on Wasp-os crashes my watch, requiring a reboot. I submitted a GitHub issue to Wasp-os's repository regarding this bug.
The PineTime has a heart-rate monitor built in. It takes around ten seconds to obtain a reading, although sometimes it can take closer to thirty seconds. Because the watch stops monitoring when the screen is off for battery savings, it is not always convenient to check the heart rate. Once it obtains a reading, though, it updates every few seconds. InfiniTime is generally within a few beats per minute of the reading from an over-the-counter pulse oximeter that I compared it with; Wasp-os seems to be less accurate.
The watch tracks footsteps based on its internal accelerometer. It generally seems to be accurate, but, of course, a pedometer carried on the arm cannot be as accurate as one carried on a leg. Despite its limitations, it is likely adequate for most users. The watch screen does not have to be on for it to track steps.
As might be expected, other apps are available, including a few basic single-player games for both operating systems, a metronome and basic drawing app for InfiniTime, and a calculator and bubble level for Wasp-os.
Hardware
The PineTime has a 1.3inch (33mm) square 240x240 pixel capacitive
touchscreen. The watch uses a 64-bit 32-bit Arm Cortex-M4 system-on-chip, the Nordic
Semiconductor nRF52832, clocked
at 64MHz. The watch has 64KB RAM, 512KB flash for the operating system, and
4MB of user data storage. It does not run
Linux due to the limited
amount of RAM; operating systems
for the PineTime either run on the bare metal or on a lightweight platform
designed
for microcontrollers. InfiniTime is based on
FreeRTOS, and Wasp-os, as mentioned
earlier, runs in
MicroPython.
Although the PineTime's resources are quite limited compared to many other smartwatches, this does not keep it from being a fully usable device. Developers do have to be careful with resources, limiting the number of features that can be added, but both operating system projects are careful with flash and memory usage, largely mitigating the effects of these limitations.
The PineTime has one mechanical button which is used for a variety of purposes. When the screen is off, the button wakes it back up. When the screen is on and open to an app, it goes back to the previous page, similar to the back button on an Android smartphone. When the watch face is displayed, the button turns the screen off.
The button is on the left side of the watch in order to prevent accidental button presses by keeping the button away from the hand when worn on the left arm, as is typically done by right-handed people. Even though I am left-handed and wear the watch on my right wrist, though, accidental button presses have not been a problem.
Unlike regular watches, which can often run for years without needing a new battery but are generally not rechargeable, smartwatches have to be recharged relatively frequently because they use much more power. On my watch running Infinitime 1.13, the latest version, the battery lasts almost two weeks with only light intermittent use of the heart-rate monitor. Wasp-os is much less energy-efficient; it lasts less than two days on a charge. It takes about two or three hours to fully recharge the battery.
Development
The operating systems themselves are both open-source projects hosted on GitHub; InfiniTime is released under the GPLv3+ and Wasp-os is released under the LGPLv3+. Both, however, use an SDK published by Nordic Semiconductor under a proprietary license. This appears to be the only non-free code used in either operating system.
The watch does not expose a hardware reset button, or any other way to recover from a frozen operating system. This means that, without protections in place, a frozen watch could not be rebooted, or returned to the bootloader for reflashing, without waiting for the battery to fully drain, which, as mentioned earlier, can take a while.
To avoid effectively bricking the watch for this time, both operating systems' bootloaders set a watchdog timer that is periodically reset by the operating system. If the timer is not reset every few seconds, control is returned to the bootloader, allowing the user to reboot or flash a new operating system. Thus, there is minimal risk of bricking the watch, as long as only stable, well-tested bootloaders are used.
PINE64 does sell a developer kit, which has the same hardware as the PineTime but is not sealed, allowing access to pins for resetting and reflashing the watch. Developers who want to work on the bootloader will probably want a developer kit, but, because of the watchdog, it should not be necessary for other development. The developer kit is currently out of stock, but it appears that this is temporary. It is also possible to break the seal and open the watch, but there is a risk of damaging the hardware.
Building either operating system requires the GCC toolchain for Arm (arm-none-eabi) and the Nordic SDK mentioned earlier. Both InfiniTime and Wasp-os support automatic builds using GitHub Actions. If this is enabled on a user's fork, then every time new code is pushed, a new build will automatically run on GitHub.
Both operating systems provide simulators, which can be used for quick development. Of course, a simulator cannot fully replicate the watch; despite their limitations, though, they can still be quite helpful. Because it is MicroPython-based, Wasp-os does not require a build step to use the simulator after making changes.
I found it quite easy to develop for Wasp-os, but much more difficult for InfiniTime. However, this is likely in large part because I have extensive experience with Python, but little with C++. I also have no experience with LVGL, the graphics library used by InfiniTime; if I were more familiar with C++ and LVGL, it would probably be easier to develop for InfiniTime. For a user with no development experience, learning Python is likely easier than learning C++, making Wasp-os the right choice.
Choosing an operating system
As explained in the InfiniTime project's vision statement, the overall goal is to create an easy-to-use, reliable operating system. It is mostly a user-focused project, intended to create a consumer-ready OS. I believe it has mostly achieved this goal; it took a few hours to become fully comfortable navigating the system, but since then, it has been at least as easy to use as the Wear OS watch that I used previously.
Unlike InfiniTime, the main goal of Wasp-os is to simplify app development. The
Application Writer's
Guide says,
"Wasp-os [...] has one pervasive goal that influences almost everything about
it [...]: make writing applications easy (and fun).
" The choice to use MicroPython
reflects this goal; it makes it easier to learn app development, but leads to a
slower operating system for users. The interface also seems slightly less
polished, but this is, of course, a matter of opinion. Finally, Wasp-os appears
to have more bugs, several of which have already been mentioned.
Overall, both operating systems have distinct strengths and weaknesses. While InfiniTime is probably the best choice for most users, Wasp-os does have several of its own advantages. In addition to the benefits for developers, it does have more apps available, likely because development is easier.
With either operating system, the PineTime is an excellent choice for developers who want to create apps for their own watch. With InfiniTime, most users would probably be able to use it with few or no problems; installing updates seems to be the most complicated part, and that is infrequent and not too difficult. Overall, the PineTime is suitable for a wide range of users; it is easy to use for those who simply want a basic smartwatch, while allowing full control over the hardware for developers who are interested in experimenting with the device.
Index entries for this article | |
---|---|
GuestArticles | Sloniker, Sam |
PineTime: a smartwatch for open-source software
Posted Aug 22, 2023 15:14 UTC (Tue)
by ribbo (subscriber, #2400)
[Link] (5 responses)
Posted Aug 22, 2023 15:14 UTC (Tue) by ribbo (subscriber, #2400) [Link] (5 responses)
PineTime: a smartwatch for open-source software
Posted Aug 22, 2023 15:25 UTC (Tue)
by alpha1 (subscriber, #75156)
[Link] (3 responses)
Posted Aug 22, 2023 15:25 UTC (Tue) by alpha1 (subscriber, #75156) [Link] (3 responses)
PineTime: a smartwatch for open-source software
Posted Aug 22, 2023 16:12 UTC (Tue)
by willy (subscriber, #9762)
[Link]
Posted Aug 22, 2023 16:12 UTC (Tue) by willy (subscriber, #9762) [Link]
https://developer.arm.com/Architectures/M-Profile%20Archi...
PineTime: a smartwatch for open-source software
Posted Aug 22, 2023 16:16 UTC (Tue)
by pizza (subscriber, #46)
[Link] (1 responses)
Posted Aug 22, 2023 16:16 UTC (Tue) by pizza (subscriber, #46) [Link] (1 responses)
The highest-end parts (M7, M55, M85) can be optioned for an FPU that supports double-precision (and those parts also have a 64-bit internal data bus) but otherwise, the cores use 32-bit addressing and 32-bit data widths. Even the optional SIMD engines are limited to at most 32-bit operations despite having 128-bit-wide registers.
PineTime: a smartwatch for open-source software
Posted Aug 23, 2023 5:54 UTC (Wed)
by alpha1 (subscriber, #75156)
[Link]
Posted Aug 23, 2023 5:54 UTC (Wed) by alpha1 (subscriber, #75156) [Link]
PineTime: a smartwatch for open-source software
Posted Aug 22, 2023 16:05 UTC (Tue)
by jake (editor, #205)
[Link]
Posted Aug 22, 2023 16:05 UTC (Tue) by jake (editor, #205) [Link]
Ah, so it is. Our apologies for the mistake, which has been fixed in the article ... thanks!
jake
PineTime: a smartwatch for open-source software
Posted Aug 22, 2023 16:18 UTC (Tue)
by Thalience (subscriber, #4217)
[Link] (9 responses)
The article is missing a mention of the price. Which is shockingly low at under $30 US. This makes the limitations of the device seem very reasonable.
Posted Aug 22, 2023 16:18 UTC (Tue) by Thalience (subscriber, #4217) [Link] (9 responses)
PineTime: a smartwatch for open-source software
Posted Aug 22, 2023 16:49 UTC (Tue)
by dsommers (subscriber, #55274)
[Link]
Posted Aug 22, 2023 16:49 UTC (Tue) by dsommers (subscriber, #55274) [Link]
I got one PineTime to play with as well as bangle.js. The PineTime feels more solid and robust and has a way better display. But development wise, I've not had time to fully dig into it. The first biggest issue is that it requires a new built firmware to be installed to modify any feature on the watch. I've not looked into wasp-os yet, that might be different.
The bangle.js is super easy to get some new apps rolling. Installed via bluetooth from a Chrome browser. Editing and accessing the hardware in real time is also done via the browser and bluetooth. But you have to like JavaScript to have fun here. And since also pixl.js and puck.js are based on the same platform, you can do some fun stuff making they collaborate.
Bangle.js is a very good platform to get into programming. JavaScript might not be the best starter language, but far from the worst. But the Espruino docs are good, with lots of sample code to look at. And you see the result of the code instantly.
If you're primarily looking for a better looking watch, then PineTime is probably a better alternative in the open source/hardware space.
PineTime: a smartwatch for open-source software
Posted Aug 22, 2023 20:51 UTC (Tue)
by faramir (subscriber, #2327)
[Link] (1 responses)
Posted Aug 22, 2023 20:51 UTC (Tue) by faramir (subscriber, #2327) [Link] (1 responses)
PineTime: a smartwatch for open-source software
Posted Aug 22, 2023 21:28 UTC (Tue)
by rillian (subscriber, #11344)
[Link]
Posted Aug 22, 2023 21:28 UTC (Tue) by rillian (subscriber, #11344) [Link]
PineTime: a smartwatch for open-source software
Posted Sep 1, 2023 19:50 UTC (Fri)
by linuxrocks123 (subscriber, #34648)
[Link] (5 responses)
Posted Sep 1, 2023 19:50 UTC (Fri) by linuxrocks123 (subscriber, #34648) [Link] (5 responses)
And, yes, you can exactly that for $40: https://www.aliexpress.us/item/3256805401959865.html
That $40 watch is so much more computer that it probably uses something like the PineTime's Cortex-M4 as a side processor to control the Bluetooth radio. If Pine64 wants to be competitive in this space, it has a lot of catching up to do with the Chinese no-name watch phones. To be fair, though, so do Google, Apple, and everyone else. The Chinese no-name watch phones are scary good.
PineTime: a smartwatch for open-source software
Posted Sep 1, 2023 22:53 UTC (Fri)
by excors (subscriber, #95769)
[Link] (4 responses)
Posted Sep 1, 2023 22:53 UTC (Fri) by excors (subscriber, #95769) [Link] (4 responses)
The Android one is also missing basic features like the heart rate sensor and vibration (which PineTime has), and apparently doesn't link with your phone at all - it sounds more like a wrist-mounted cheap phone, not something properly designed as a smartwatch.
PineTime: a smartwatch for open-source software
Posted Sep 10, 2023 3:48 UTC (Sun)
by linuxrocks123 (subscriber, #34648)
[Link]
Posted Sep 10, 2023 3:48 UTC (Sun) by linuxrocks123 (subscriber, #34648) [Link]
It can link with your phone. I mean, it has a SIM card slot and runs Android, so I think the expectation is less that it links with your phone and more that it replaces your old phone, but there are Android apps that can link two Android phones together in various ways, so, if you wanted to sync it with another phone, you could.
I'm not wearing it right now, so I can't confirm whether the one I bought has a heart rate monitor or vibrator, since I don't personally use either of those things. There are definitely full Android watches which have those things, though, and likely at a similar price point.
Since we're listing things one has that the other doesn't, here's stuff the Android watch has that PineTime doesn't:
- A speaker
- A microphone
- A cell phone radio
- WiFi
- GPS
Each of those things is something I find useful.
PineTime: a smartwatch for open-source software
Posted Nov 25, 2023 16:29 UTC (Sat)
by nix (subscriber, #2304)
[Link] (2 responses)
Posted Nov 25, 2023 16:29 UTC (Sat) by nix (subscriber, #2304) [Link] (2 responses)
(I just got a dev kit and am planning to do some hacking, probably adding some complications, because it's not a proper watch unless it has silly spinny things on it.)
PineTime: a smartwatch for open-source software
Posted Nov 25, 2023 18:01 UTC (Sat)
by Wol (subscriber, #4433)
[Link] (1 responses)
Posted Nov 25, 2023 18:01 UTC (Sat) by Wol (subscriber, #4433) [Link] (1 responses)
You mean like hands?
Cheers,
Wol
PineTime: a smartwatch for open-source software
Posted Nov 29, 2023 18:11 UTC (Wed)
by nix (subscriber, #2304)
[Link]
Posted Nov 29, 2023 18:11 UTC (Wed) by nix (subscriber, #2304) [Link]
PineTime: a smartwatch for open-source software
Posted Aug 22, 2023 16:30 UTC (Tue)
by danielthompson (subscriber, #97243)
[Link] (4 responses)
Posted Aug 22, 2023 16:30 UTC (Tue) by danielthompson (subscriber, #97243) [Link] (4 responses)
[In the interested of full disclosure, I am the primary author of wasp-os although I'm only merging in changes written by others these days... as it happens we're looking for new maintainers so I can fully retire from the project ;-)].
PineTime: a smartwatch for open-source software
Posted Aug 22, 2023 16:33 UTC (Tue)
by KJ7RRV (subscriber, #153595)
[Link] (3 responses)
Posted Aug 22, 2023 16:33 UTC (Tue) by KJ7RRV (subscriber, #153595) [Link] (3 responses)
Maybe there's something other than BLE that it's used for?
PineTime: a smartwatch for open-source software
Posted Aug 22, 2023 16:46 UTC (Tue)
by danielthompson (subscriber, #97243)
[Link]
Posted Aug 22, 2023 16:46 UTC (Tue) by danielthompson (subscriber, #97243) [Link]
PineTime: a smartwatch for open-source software
Posted Aug 22, 2023 17:29 UTC (Tue)
by pizza (subscriber, #46)
[Link]
Posted Aug 22, 2023 17:29 UTC (Tue) by pizza (subscriber, #46) [Link]
PineTime: a smartwatch for open-source software
Posted Aug 22, 2023 21:47 UTC (Tue)
by excors (subscriber, #95769)
[Link]
Posted Aug 22, 2023 21:47 UTC (Tue) by excors (subscriber, #95769) [Link]
The non-free part of the nRF5 SDK is the (optional) SoftDevice, which contains all the BLE functionality and is distributed separately as a binary blob that you can flash onto the chip alongside your application. (The application makes SoftDevice API calls via software interrupts, there is no build-time linking with proprietary code). As far as I can see, InfiniTime does not use the SoftDevice.
(That SDK and SoftDevice are "in maintenance mode" now - the replacement is the nRF Connect SDK, based on the Zephyr RTOS. For BLE it uses a combination of Zephyr's open source BLE host layer, and a proprietary controller layer distributed as .a files that are linked into your application, I think.)
PineTime: a smartwatch for open-source software
Posted Aug 23, 2023 14:09 UTC (Wed)
by mattdm (subscriber, #18)
[Link] (2 responses)
Posted Aug 23, 2023 14:09 UTC (Wed) by mattdm (subscriber, #18) [Link] (2 responses)
PineTime: a smartwatch for open-source software
Posted Aug 23, 2023 14:39 UTC (Wed)
by danielthompson (subscriber, #97243)
[Link]
Posted Aug 23, 2023 14:39 UTC (Wed) by danielthompson (subscriber, #97243) [Link]
The step counter is essentially autonomous and steps are counted by the sensor itself. On current gen. PineTime the sensor is a BMA425 (was a BMA421 in older units) which has support for axis remapping if needed (I suspect remapping is more important for gesture recognition than for step counting).
PineTime: a smartwatch for open-source software
Posted Aug 23, 2023 14:40 UTC (Wed)
by KJ7RRV (subscriber, #153595)
[Link]
Posted Aug 23, 2023 14:40 UTC (Wed) by KJ7RRV (subscriber, #153595) [Link]
PineTime: a smartwatch for open-source software
Posted Aug 25, 2023 3:51 UTC (Fri)
by dottedmag (subscriber, #18590)
[Link] (4 responses)
Posted Aug 25, 2023 3:51 UTC (Fri) by dottedmag (subscriber, #18590) [Link] (4 responses)
"Unfortunate order is unable to amend once transaction has been done. To cancel order there is a 5% cancellation fee. May we know do you want to cancel order <...> and place a new one?
By the way, from order <...> amount, we suggest you may consider to select courier shipping $30 if re-order. This is due to if package failed delivery will be discarded. There is no return to shipper service."
PineTime: a smartwatch for open-source software
Posted Aug 25, 2023 4:11 UTC (Fri)
by KJ7RRV (subscriber, #153595)
[Link] (1 responses)
Posted Aug 25, 2023 4:11 UTC (Fri) by KJ7RRV (subscriber, #153595) [Link] (1 responses)
PineTime: a smartwatch for open-source software
Posted Aug 25, 2023 4:38 UTC (Fri)
by dottedmag (subscriber, #18590)
[Link]
Posted Aug 25, 2023 4:38 UTC (Fri) by dottedmag (subscriber, #18590) [Link]
PineTime: a smartwatch for open-source software
Posted Aug 25, 2023 9:37 UTC (Fri)
by danielthompson (subscriber, #97243)
[Link] (1 responses)
Posted Aug 25, 2023 9:37 UTC (Fri) by danielthompson (subscriber, #97243) [Link] (1 responses)
AFAIR the aims for pine64eu.com were to sells the same goods but with better customer service, a warranty and with predictable prices (because all VAT and import duty are included in the price). Naturally that does mean their prices are higher even after VAT and import duty are included. I'm based in the UK (and therefore can't use pine64eu.com) but I typically guesstimate that I need to multiply the pine64.com price by 1.5x to cover VAT, duty and the courier-fees-for-collecting-the-VAT-and-duty.
PineTime: a smartwatch for open-source software
Posted Aug 25, 2023 9:49 UTC (Fri)
by dottedmag (subscriber, #18590)
[Link]
Posted Aug 25, 2023 9:49 UTC (Fri) by dottedmag (subscriber, #18590) [Link]
"cancellation fee" is unheard of.
PineTime: a smartwatch for open-source software
Posted Aug 26, 2023 3:02 UTC (Sat)
by re:fi.64 (subscriber, #132628)
[Link]
Posted Aug 26, 2023 3:02 UTC (Sat) by re:fi.64 (subscriber, #132628) [Link]
PineTime: a smartwatch for open-source software
Posted Sep 1, 2023 9:56 UTC (Fri)
by michielwb (guest, #138341)
[Link]
Posted Sep 1, 2023 9:56 UTC (Fri) by michielwb (guest, #138341) [Link]
PineTime: possibly one of the most accurate wrist watches when used with raspberry pi
Posted Sep 28, 2023 21:31 UTC (Thu)
by cbushey (guest, #142134)
[Link] (1 responses)
Posted Sep 28, 2023 21:31 UTC (Thu) by cbushey (guest, #142134) [Link] (1 responses)
I have bought a pinetime and I'm pretty happy with it except that it doesn't display seconds.
just my 2c. Wish me luck with my experiments.
PineTime: possibly one of the most accurate wrist watches when used with raspberry pi
Posted Oct 2, 2023 19:25 UTC (Mon)
by KJ7RRV (subscriber, #153595)
[Link]
Posted Oct 2, 2023 19:25 UTC (Mon) by KJ7RRV (subscriber, #153595) [Link]
I believe InfiniTime's "Terminal" watch face does show seconds; perhaps you could use that?