Programmable watches
A list of programmable watches:
- Lilygo TTGO T-Watch
- SQFMI Watchy
- Pine64 PineTime
- Bangle.js
- Texas Instruments eZ430-Chronos
- Lilygo T-Impulse/T-Wristband
- MetaWatch
-
Pebble (not programmable, but customizable)
- (more)
- (more)
These are wristwaches that you can program yourself. You are not limited to the manufacturer’s firmware, you can write the watch’s program or operating system yourself. The manufacturer provides libraries and tools to write your own program, and you can upload these to the device through a programming interface.
You can make your watch do exactly what you want, without any spyware from the manufacturer harvesting your data. You can develop wearable devices for specific applications.
Lilygo TTGO T-Watch 2020
The T-Watch is a traditional large, touchscreen LCD smartwatch based on an Arduino-compatible ESP32 microcontroller. Easy to program, the ESP32 ecosystem provides all the tools and libraries you need. The Arduino IDE is easy to set up, has easy-to-access examples.
Has Wi-Fi and Bluetooth for connectivity.
The manufacturer and community makers have great libraries. Xinyuan-LilyGO’s TTGO_TWatch_Library provides great tools to write your own firmware for the watch. Works with the Arduino IDE, has great built-in examples for controlling all the watch’s functions. The ClientProject/SimpleFramework project provides a really basic C++ Arduino program with a watchface and a menu to run different applications; all you can modify rather easily to make your own smartwatch program.
Really good for beginners, who want to try smartwatch programming, and those, who already used other ESP32 devices.
sharandac’s My-TTGO-Watch firmware is more advanced, it’s a full operating system that runs on the watch. You need PlatformIO (usually used inside the Visual Studio Code editor) to upload or modify the firmware. It is harder to set up, and the firmware is more complex, harder to modify, harder to change system components. The firmware handles most hardware functions, like setting up Wi-Fi and Bluetooth, setting up the clock, setting system settings, updating the firmware from the internet. It provides a GUI to display the watchface, a top bar, an application drawer. The firmware provides a framework to write your own applications. And there are some default applications that provide a lot of smartwatch functionality, like connecting to a smartphone, changing watchfaces, map, weather etc.
You can program the watch through the Micro-USB port on the side of the device. You can upload programs with the Arduino IDE or similar programs.
The smartwatch, like most smartwatches, is really big, is rather ugly, not something I would personally wear. The backlit colour LCD uses a lot of battery, you can’t leave it on all day, you usually wake the screen to check the time, or access some of the watch’s functions. Like traditional smartwatches, you have to charge it every day or every few days depending on the use. You control the watch through the touchscreen, and there is 1 button you can program (for example to put the watch to sleep).
Available on Chinese marketplaces like AliExpress and the Lilygo website. It’s rather cheap, costs about 50 USD with shipping. Used to be cheaper. There are a few variants, but the T-Watch 2020 v1/v2/v3 is the most common. The new T-Watch S3 comes with LoRa.
Lilygo is a big company that makes a lot of microcontroller boards.
SQFMI Watchy
The Watchy is an E-Paper smartwatch. Also based on ESP32. Has Wi-Fi and Bluetooth.
The black and white E-Paper display is extremely power-efficient, doesn’t need a backlight, and only uses power during updates, so the display can stay on all the time, and you only need to charge the watch once every few days depending on the use. E-Paper is also much more pretty than an LCD.
The watch comes disassembled, so you have to assemble it yourself. The basic unit comes with a cheap injection-moulded case (used to come without a case), and you can buy nicer cases for it made of aluminium and such.
The watch has a firmware provided by the manufacturer, but the examples are rather basic, only watchfaces, and the firmware source code is not that well documented, making learning the programming harder. You can program the watch through the USB port; you can upload programs with the Arduino IDE or PlatformIO.
In addition to the software, the hardware is open source as well.
The screen is not a touchscreen, you control the watch with 4 buttons, which is a really good interface to control a small device, like a watch, especially for watch functions. For everything else, you have a phone.
Size is about the same as the T-Watch, still huge.
The watch is available in a few online shops, about 77 USD with shipping, varies on your location. Nicer cases cost 11–45 USD.
SQFMI is a small company making only this device, which they released through crowdfunding.
Pine64 PineTime
The PineTime is a traditional large, touchscreen LCD smartwatch.
It doesn’t have a USB connector. To program it, you have to open it up, and connect wires (pogo pins) to the programming pins. You need a hardware programmer, but you can use an ESP32 or a Raspberry Pi as a programmer also.
Definitely harder than programming the T-Watch through USB.
If you want to program it, when ordering, make sure you order the Dev Kit, because the sealed watch cannot be opened and programmed traditionally. On the Dev Kit the back doesn’t lock in place and you have to tape it or glue it if you want to attach it.
The watch has an nRF52832 SoC with an ARM CPU. It doesn’t (normally) support Arduino, you can’t (normally) program it with the Arduino IDE (although there’s an Arduino firmware).
You write your code in C++/Rust/etc. (or modify the existing firmwares), compile it, and upload it to the watch with a flasher/debugger.
Alternatively some of the firmwares allow you to flash new firmwares/watchfaces over-the-air through Bluetooth. So you might not need to open up the watch if you use this feature in your firmwares and you don’t break stuff.
There are many community-written firmwares for the PineTime.
InfiniTime is the most advanced. It now comes preinstalled on the watch, but you have to update it to run the latest version. InfiniTime is a full operating system written in objective-oriented C++ based on FreeRTOS, that implements all watch functions, and creates a framework for apps. Has some documentation on coding. Developing apps is relatively easy, we have many examples; changing the operating system is harder, because it’s fairly complex.
Wasp-os is another operating system written in Python, that also works with apps.
The watch has Bluetooth, but no Wi-Fi. You can connect it to a phone to do normal smartwatch stuff and OTA updates, but you can’t connect to Wi-Fi networks, can’t debug them, can’t use it as a standalone device that networks, can’t connect to the internet.
Has touchscreen and 1 button.
The PineTime is a bit smaller than the T-Watch. It’s still large.
If you turn off the screen, and turn off the components you don’t need, the microcontroller doesn’t use much energy. But if you’re actively using the watch, and have the screen on much, which eats a lot of battery, the battery runs out quickly. Just like other touchscreen smartwatches.
The smartwatch has really good documentation, especially for the hardware. There are lots of information on the Wiki, information too you need when programming the hardware itself.
The software and the hardware are open source.
Pine64 is a company that makes nice open source hardware devices.
The PineTime has a big community of makers who released many firmwares, tools, content, guides for programming the smartwatch.
The PineTime is available on Pine64’s website, costs 40 USD with shipping. Really cheap.
There’s a similar Chinese smartwatch, the Colmi P8 Smartwatch, that uses similar hardware, and can be hacked to run PineTime firmwares.
Bangle.js 2
Bangle.js 2: The cheap hackable SMA Q3 Alibaba smartwatch that ships with a custom, open source firmware that supports simple-to-program custom apps.
You can modify the firmware itself, upload your program through the programming pins exposed on the back, write apps for the existing firmware, or install many of the apps already existing, over-the-air, through the web interface.
The watch has an amazing 3-bit, 8 colour “memory” LCD display that stays on, and is readable by the sunlight when the backlight is turned off. It uses little battery if you don’t have the backlight on all day, so the watch can have great battery life. The display looks amazing, having less colours is an advantage, but the colours in addition to the black and white can make it pop. Some people already made some nice art for watchfaces.
Made by a really small team, but the developer is relatively active developing new apps and the firmware. They don’t manufacture the hardware, but source it. Due to it being from Alibaba, there might be some minor quality issues, like with the the pins on the back and the charger, but it shouldn’t be a big deal. It’s a bit expensive at 77 GBP with tax. If you could source the original SMA Q3 watch from somewhere else cheaper, you could upload the firmware to the watch yourself, but unfortunately the manufacturer on Alibaba only sells in big bulks. Unfortunate, because the hardware is great, the exposed programming pins and the 3-bit display are amazing, and you don’t see those on other watches.
The watch has Bluetooth, the apps connect to your phone to deliver “smart” features.
Texas Instruments eZ430-Chronos
Texas Instruments eZ430-Chronos: Internet-of-things watch originally made by the big watch-manufacturer. It communicates with internet-of-things devices (like sensors, relays, robots, anything Arduino/microcontroller related) through low-power radio.
Doesn’t have Wi-Fi, doesn’t have Bluetooth, so it doesn’t connect to the internet, doesn’t (normally) connect with phones, but it can be useful if you have microcontrollers you want to control with the 4 buttons on the watch, microcontrollers you want to communicate with, if you have sensor readings you want to collect, if you want to connect to your network of internet-of-things devices.
And it can connect to the computer with the USB radio dongle the watch comes with.
The microcontroller is fully programmable, but you have to open the watchcase to use the programming connector.
It has a great, extremely power-efficient, always-on, traditional segmented-LCD display, that’s much better suited for watches than a touchscreen. It’s small, looks like a normal digital watch.
Unfortunately the watch isn’t manufactured anymore, and there aren’t many used ones out there, so you can’t really get it, or it is priced rather high.
Sensor Watch mod
The Sensor Watch is an ARM microcontroller board you can program, then put in an existing, tiny, cheap Casio F-91W watch.
Has the advantages of traditional digital watches; small, good-looking, wearable, good quality body, segmented-LCD display, long battery life, physical buttons.
The segmented LCD display is not designed for text-display (like later databank-watches are), so the text-display is a bit limited, but still doable. You have to take the board out every time you want to program it.
The board doesn’t have any wireless connectivity, no Wi-Fi, no Bluetooth, you can’t connect it to a phone or a computer or the internet, so the smart features are rather limited. Maybe you could shove a tiny radio on the daughter “board” you can connect the main board, but the space is really limited.
The board costs 53 USD with shipping. The donor Casio F-91W costs like 16–23 USD, depending on where you get it.
The idea to use a custom board in an existing, cheap digital watch body and display is really good. I hope developers develop boards for bigger Casio bodies, like the AE1200 or the Databank watches; those could probably fit wireless modules for Bluetooth or Wi-Fi.
The ideal smartwatch
The ideal smartwatch is small, thin, wearable. Not bigger, than traditional digital watches, like the Casio AE1200. It looks just like one of these old digital watches, really stylish, not like a huge smartphone on your arm.
The ideal smartwatch has a segmented or matrix (or ideally the combination of the two) monochrome LCD display, just like traditional digital watches. It is not normally backlit, readable by the sun, but can have a backlight you activate with button presses. Uses very little energy, can be on all the time, displaying the time, whatever information, maybe even the seconds.
Has an ESP32 or some low powered microcontroller. Can turn off most functions and go into sleep, so it uses very little power, and the rechargable battery lasts like a month or more. Has Wi-Fi and Bluetooth. Maybe even some other radio, like LoRa.
Can be programmed through USB, or pins exposed on the outside that fit in a charging–programming cradle or something. May be Arduino-compatible, or at least have libraries for all device functions. Has a library for the device that exposes all device functions so it’s really easy to program. Has simple examples for everything, which you can cobble together to make your own watch program.
Has no useless sensors that just take up space. Is cheap. Made by a reliable manufacturer that produces the device for many decades.
Is open source. Has some nice, durable metal or resin case, not a 3D printed one.
The ideal smartwatch doesn’t exist. Yet. Or at least I don’t know about it.
It may be possible, if someone hacks the Amazfit Neo. Or if some hardware or digital watch manufacturers get some balls.
– 2230f087c8