Smartwatches
- xenos
- Member
- Posts: 1121
- Joined: Thu Aug 11, 2005 11:00 pm
- Libera.chat IRC: xenos1984
- Location: Tartu, Estonia
- Contact:
Smartwatches
Has anyone tried out writing an OS (or at least some bare metal "Hello world!") for a smartwatch? I recently stumbled across a brand named Pebble, and it seems that they use and develop a lot of open source software for their watches, also the hardware is more or less accessible. They even provide a QEMU port which can simulate their watches, so that should be of great help for development.
https://developer.pebble.com/
https://github.com/pebble/qemu/
https://developer.pebble.com/
https://github.com/pebble/qemu/
-
- Member
- Posts: 1146
- Joined: Sat Mar 01, 2014 2:59 pm
Re: Smartwatches
Personally I think it's a waste of time investing in any smartwatch platform other than the Apple Watch or Android Wear. But as far as OS development goes, we haven't got homebrew OSes running on either the iPhone or an Android phone yet, so I think smartwatches are still a long way off.
When you start writing an OS you do the minimum possible to get the x86 processor in a usable state, then you try to get as far away from it as possible.
Syntax checkup:
Wrong: OS's, IRQ's, zero'ing
Right: OSes, IRQs, zeroing
Syntax checkup:
Wrong: OS's, IRQ's, zero'ing
Right: OSes, IRQs, zeroing
Re: Smartwatches
And we'll never have. All models newer than iPhone 4 have no BootROM exploits.we haven't got homebrew OSes running on either the iPhone
"If you don't fail at least 90 percent of the time, you're not aiming high enough."
- Alan Kay
- Alan Kay
-
- Member
- Posts: 283
- Joined: Mon Jan 03, 2011 6:58 pm
Re: Smartwatches
Just an FYI on the pebble watches. Someone I worked for at the time they went through crowd-funding (to get started) got screwed by them due to delays, then a cancellation without refund. Buy from them at your own risk.
- Monk
- Monk
- xenos
- Member
- Posts: 1121
- Joined: Thu Aug 11, 2005 11:00 pm
- Libera.chat IRC: xenos1984
- Location: Tartu, Estonia
- Contact:
Re: Smartwatches
Actually it turned out that these Pebble watches aren't interesting for me anyway because they don't keep accurate time (which, imho, makes them pretty useless as watches). So actually my question is rather out of curiosity, and I don't plan to buy one.
Re: Smartwatches
Basically watches can be categorized as follows:XenOS wrote:Has anyone tried out writing an OS (or at least some bare metal "Hello world!") for a smartwatch?
1. Proprietary OS watch.
2. Apple OS watch.
3. Android OS watch.
Third category can be divided into standard Android and Android Wear. The Wear category is just stripped down standard one, so, full blown Android watches are more interesting (as I see it).
To start your Watch OS the Cyanogenmod is the easiest option. You can visit it's Development page and read very simple instructions about how to start. But the Cyanogenmod's way is the way of playing with Android, not a new OS. However, the functionality of Android OS is reach and can be used very soon, all you need is just to download appropriate system image and install it on your device. It seems there's no watches among the officially supported images, so, to get your own OS for your watch you need at least to create a port of the Cyanogenmod for the watch you prefer (Android based). It's also not very complex task, but requires some essential time.
Another option is to use standard staged bootloaders of your watches and load your kernel. The main problem with custom kernel is device documentation availability. But there are some devices with documented components (if you are not see the limited device list as a heavy restriction). And of course, the way of your own OS for smart watches is much more complex than just simple extension of Linux kernel with all required drivers shipped with your device by it's manufacturer. The latter way is a really good starting option for learning and collecting ARM/Android related information while you still can get relatively quick results with relatively rich functionality.
Pebble has it's own custom OS and the way you can use it is completely up to you. The Android (Cyanogemod in particular) community is much wider, so, you can find more help while developing for Android based devices.XenOS wrote:I recently stumbled across a brand named Pebble, and it seems that they use and develop a lot of open source software for their watches, also the hardware is more or less accessible. They even provide a QEMU port which can simulate their watches, so that should be of great help for development.
Personally I prefer to use Android watches with my personal extensions. Now it's mostly just Java applications that suit my needs, but I see an opportunity to get to lower level and be acquainted with the ARM ecosystem in a gradual fashion.
My previous account (embryo) was accidentally deleted, so I have no chance but to use something new. But may be it was a good lesson about software reliability
Re: Smartwatches
There are many options available to increase the watch's accuracy. The simplest one is to use Network Time Protocol, which is very simple and gives you a few hundred milliseconds accuracy even if using slow GPRS connection. But full blown Android watches have built in cell phone hardware, so you can just enable the option of time synchronization with the cell service provider's network - just a few touches and your time is synchronized.XenOS wrote:Actually it turned out that these Pebble watches aren't interesting for me anyway because they don't keep accurate time (which, imho, makes them pretty useless as watches).
My previous account (embryo) was accidentally deleted, so I have no chance but to use something new. But may be it was a good lesson about software reliability
- xenos
- Member
- Posts: 1121
- Joined: Thu Aug 11, 2005 11:00 pm
- Libera.chat IRC: xenos1984
- Location: Tartu, Estonia
- Contact:
Re: Smartwatches
I kind of guessed that Android watches would be the most common ones when it comes to extending the existing OS or writing new applications for it. Actually I never liked Android (and the only time I dealt with it, I even had trouble getting it to work, before I could remove it and install Linux on bare metal). But you are certainly right that there are much more tools and a larger community available than for bare metal tweaking.embryo2 wrote:Personally I prefer to use Android watches with my personal extensions. Now it's mostly just Java applications that suit my needs, but I see an opportunity to get to lower level and be acquainted with the ARM ecosystem in a gradual fashion.
Of course, with a network connection one can synchronize any kind of clock. But my personal use case is to use a watch as a standalone device without any network or other type of connection (except for occasionally connecting it to a PC for updates), so in this particular case it wouldn't help me much. Another option I encountered are watches with built-in GPS, which is then also used as a clock source.embryo2 wrote:There are many options available to increase the watch's accuracy. The simplest one is to use Network Time Protocol, which is very simple and gives you a few hundred milliseconds accuracy even if using slow GPRS connection. But full blown Android watches have built in cell phone hardware, so you can just enable the option of time synchronization with the cell service provider's network - just a few touches and your time is synchronized.
Re: Smartwatches
For me it was the easiest way to the mobile world with my personal extensions. But the OS is very far from being good. It imposes too many restrictions on advanced users and it's APIs were badly designed with the same restrictive approach in mind. However, the switch from Java to pure C environment is also very inconvenient for me, so I just have no chance to start using something like mobile Ubuntu with the same efficiency and level of control I have with Android. That's why I look for many ways people elaborated to break Android's (Google's in fact) jail.XenOS wrote:Actually I never liked Android
When you will use it for some time more thoughts will come to mind about use cases. When you are connected every piece of information is with you. You can be on a run, on a walk or wherever and always you know that you haven't missed a call on your main smartphone which now is at home and doesn't bother you on the run. The watch is always with you while heavier and bigger devices can be leaved somewhere else and you still can use them (at least partially). It's kind of freedom. Freedom from inconveniences.XenOS wrote:But my personal use case is to use a watch as a standalone device without any network or other type of connection (except for occasionally connecting it to a PC for updates)
The price for cheap chines Android watch can be even lower than the price of a branded wearable device, but the Android watch has mobile network access, GPS, Wi-Fi, bluetooth and sensors for monitoring your lifestyle. And it is backed by the big Android hacker community, so you can save a lot of efforts.XenOS wrote:Another option I encountered are watches with built-in GPS, which is then also used as a clock source.
My previous account (embryo) was accidentally deleted, so I have no chance but to use something new. But may be it was a good lesson about software reliability
- xenos
- Member
- Posts: 1121
- Joined: Thu Aug 11, 2005 11:00 pm
- Libera.chat IRC: xenos1984
- Location: Tartu, Estonia
- Contact:
Re: Smartwatches
In fact, I don't even have a smartphone, or any other kind of mobile phone. I never had one and I don't want one either. That's my freedom of being bothered when I'm not at home or in my office, and of being tracked wherever I go.embryo2 wrote:You can be on a run, on a walk or wherever and always you know that you haven't missed a call on your main smartphone which now is at home and doesn't bother you on the run. The watch is always with you while heavier and bigger devices can be leaved somewhere else and you still can use them (at least partially).
...which is exactly the reason why I don't want them. I don't want to monitor anything, I don't want this device to contact the outside world. All I need and want it to do is to display the time and my schedule for the day....but the Android watch has mobile network access, GPS, Wi-Fi, bluetooth and sensors for monitoring your lifestyle.
So this is my personal use case, of course. When it comes to osdev on these devices, it's of course a completely different thing. In that case it is of course nice to have a small device with many features, all of them under full control of the user's home brewed OS, and not by Android and a bunch of third party apps.
Re: Smartwatches
GPS is only for receiving data, it can't be used to send anything. So there's no privacy-related problem when you are using GPS for time synchronization.
- xenos
- Member
- Posts: 1121
- Joined: Thu Aug 11, 2005 11:00 pm
- Libera.chat IRC: xenos1984
- Location: Tartu, Estonia
- Contact:
Re: Smartwatches
Of course, that's why a GPS only watch would be fine for me, but one with a full-blown Android, which constantly syncs via some network connection, is not.Nable wrote:GPS is only for receiving data, it can't be used to send anything. So there's no privacy-related problem when you are using GPS for time synchronization.