Project Timeline

How I’ll build my smartwatch

Ryan Siu
4 min readOct 18, 2018
Apple Watch — an example of a high-end smartwatch

Today’s smartwatches are generally expensive and hard to customize. If you want to write an app, you’d have to know Java/Kotlin (for WearOS) or Objective-C/Swift (for watchOS).

My smartwatch will be Arduino-based, making it easier to program, and therefore easy to customize. Writing an app and creating a new watch face would be as simple as writing a new function in the Arduino IDE and uploading the code. Modular pins will also be included in the design, so you’d be able to plug in an LED to the watch and light it up.

This watch would have similar features as current smartwatches, like notifications, a screen, and buttons, so you would have similar functionality as a more expensive watch.

I’m not aiming to reinvent the smartwatch, but I’m making the creation of it more accessible to everyone.

Key Components

Microcontroller board similar to one I’ll be using for my watch

Microcontroller/Power

For the microcontroller, I’ve decided to go with an Adafruit IstyBitsy (3.3V). While I originally considered the Adafruit Pro Trinket instead, the ItsyBitsy is a more modern, powerful board. It’s also available for a cheap price, allows me to easily integrate a LiPo battery in the circuit via a backpack, and it’s smaller than most Arduino boards, making it a good choice for a watch, which has size constraints. A 350mAh battery should also be more than enough to power this watch for a day or two on a single charge.

Screen

The Adafruit Monochrome OLED screen is the perfect display for a small device — it’s small, highly customizable, and best of all, allows you to draw graphics with an Adafruit library. While the graphics library takes 1K of RAM, the IstyBitsy has 2K, more than enough to use this library.

Bluetooth

A Bluetooth module is needed to communicate between the watch and a phone, and the HC-05 Bluetooth module is easy to use, well documented, and inexpensive. It’s also not too large, so it won’t be a struggle to include on the watch.

Peripherals

The watch will be controlled by two front-facing buttons and one side potentiometer. These will be wired directly to the microcontroller. An accelerometer will measure the orientation of the watch — if the user isn’t looking at the watch, the screen will turn off to conserve power. In addition, I may include a vibration motor and buzzer, space permitting.

Casing

For the casing, I intend to 3D print a plastic cover to protect the key components of the watch (microcontroller and battery especially) from daily wear-and-tear. Designing my own case allows me to be more flexible with design, so I could leave holes in the case for charging, attachments, and the screen.

Software

The most important and complex part of this project will be the watch software. In addition to using libraries for graphics rendering and Bluetooth, I’ll have to write code to control the functionality of the watch. This includes creating a watch face and apps. One other consideration is the memory — since the graphics library takes up much of the ItsyBitsy’s RAM and flash memory, I have to be efficient about writing the software for the watch.

In addition to the software on the watch, I will need to write a mobile app to pair the phone and watch over Bluetooth. This app will also send notifications from the phone to the watch.

Parts List

Total: $78.24

Timeline

  • October 26th — Begin work on watch (wire components to breadboard and test); start writing operating system software
  • November 2nd —Finish testing components; continue work on OS; start writing Bluetooth software (mobile app and test Arduino program)
  • November 9th — Finalize OS software; continue working on Bluetooth software; start working on accelerometer orientation detection
  • November 16th — Finalize design for watch + begin assembly; continue working on Bluetooth + accelerometer software
  • November 23rd — Finish assembly; finish and incorporate Bluetooth and accelerometer software
  • November 30th — Design and add applications to watch; design casing, 3D print, and assemble
  • December 7th — Finalize software; fix remaining issues

--

--