Open Source Smart watch: Watchy

Watchy by SQFMI

Getting Started

Contents

Jump to…

Watchy Kit w/ Case Assembly

Before You Start: thoroughly review the instructions and inspect for any missing or damaged parts.

  1. Carefully Remove The Components: The display is made of glass and will crack if bent!
  2. Test Your PCB: Verify the board is functional!
  3. Do Not Apply The Included Tape: Watchy can be assembled and secured using the included enclosure without tape. Only use the tape if you plan to use Watchy without the enclosure and have triple-checked the screen alignment.

Assembly Instructions

  1. Connect the screen to the FPC connector: Ensure the shiny gold pins on the ribbon cable face up. The ribbon cable should pass through the PCB slot as shown in the image.
  2. Connect the battery.
  3. Connect the USB to start charging the battery.
  4. Press SW1: to bring up the menu/confirm.
  5. Press SW3 & SW4: to navigate up/down.
  6. Press SW2: to exit/cancel.

Watchy Buttons

Wait one minute to verify if the clock updates the time correctly.

Tips

Assembly Videos

Watchy Original Assembly

  1. Apply tape to the back of the E-Paper display and battery. The front of the display is white, and the back is metallic/silver.
  2. Pull lightly to unlock the FFC connector, insert the display cable through the strap hole. Ensure the cable is fully inserted, then push the lock back in to secure the cable.
  3. Fold back and align the display to the top of the PCB, peel off the tape, and firmly secure the display.
  4. Insert the battery plug, ensuring correct polarity (red is closer to the USB connector).
  5. Peel off the tape and firmly secure the battery to the PCB.
  6. Insert the watch strap through the PCB strap holes, then tighten the strap from both ends.
  7. Wrap the strap around your arm and adjust for comfort.

Assembly Video

Arduino Setup

Watchy comes pre-loaded with firmware that showcases all basic features. You can also experiment with different watch faces and examples in Arduino.

  1. Download and install the latest Arduino IDE.
  2. Start Arduino and open File > Preferences.
  3. Under Additional Board Manager URLs add:
  4. Open Tools > Board > Boards Manager and install the latest version of the esp32 platform.
  5. Under Sketch > Include Library > Manage Libraries, search for Watchy and install the latest version.
  6. Ensure all dependencies are updated to the latest versions, i.e., GxEPD2, WiFiManager, rtc_pcf8563, etc.

Upload

  1. Plug in the USB on Watchy and select the serial port that appears.
  1. Select Tools > Board > ESP32 Arduino > Watchy.
  2. Select Tools > Board Revision > Watchy v2.0.
  3. Select Tools > Partition Scheme > Huge App.
  4. Leave everything else as default.
  5. Choose an example and click upload.
  6. Experiment with modifying the examples or create your own app!

WiFi Configuration

  1. Click ‘Setup WiFi’ from the main menu on the watch.
  2. Connect to ‘Watchy AP’ WiFi from another device such as a phone or computer/laptop.
  3. Open 192.168.4.1 in the browser. On an iPhone, this page opens automatically when connecting to WiFi.
  4. Click ‘Configure WiFi’.
  5. Enter SSID and password. (Note: SSID can be prefilled by listed networks at the top of this screen).
  6. Hit ‘Save’ and wait for Watchy.

Troubleshoot WiFi Configuration

  1. Click ‘Info’ from 192.168.4.1 page.
  2. Check your router settings to ensure the listed MAC address is allowed.
  3. If the above steps don’t work, try clicking ‘Erase WiFi Config’ from the ‘Info’ page and wait for Watchy to restart. Once it restarts, attempt the WiFi setup again.

PlatformIO Configuration

PlatformIO is a suitable alternative to Arduino, more oriented for command line users but also flexible and predictable in build configurations and dependency management (like libraries).

It comprises two parts: a “core” with the command line tools that build and upload/flash, and an “IDE” consisting of plugins and extensions for editors.

Use any extensions you prefer, but this documentation focuses on the core:

Installation Instructions

  1. Create a new folder and setup the PlatformIO project layout:
mkdir my_new_watchy_face_project
cd my_new_watchy_face_project
pio project init --board esp32dev
  1. Add the following to the platformio.ini file. Note that if you want to use a different version of the Watchy library, you can specify any file or git path here.
lib_deps =
    sqfmi/Watchy ;
    https://github.com/tzapu/WiFiManager.git#v2.0.11-beta ; Pinned for consistency
lib_ldf_mode = deep+
board_build.partitions = min_spiffs.csv
# Run PlatformIO: it will download dependencies such as the Watchy library but will fail to compile because there aren't any source files in src/ yet. So, once dependencies are downloaded, copy the 7_SEG example files to src/.
pio run # will fail compilation but will download dependencies
cp .pio/libdeps/esp32dev/Watchy/examples/WatchFaces/7_SEG/*.{ino,cpp,h} src/

# Plug in your Watchy, compile, and then upload the watch face:
pio run -t upload

# Monitor the serial port output:
pio device monitor

# Celebrate by watching ASCII Star Wars:
telnet towel.blinkenlights.nl

# Additional keys you might want to add to your platformio.ini file:
upload_speed = 3000000
upload_port = /dev/cu.usbserial-MQK8G8
monitor_port = /dev/cu.usbserial-MQK8G8
monitor_speed = 115200
monitor_filters = esp32_exception_decoder