Blog Home
Updated: 2021-10-21

Getting Started with Watchy

I've recently received my Watchy, an open source E-Ink watch, and have just started to crack the surface of what can be done with the device. This post outlines how to get going with Watchy from the perspective of someone who has done very little with Arduino and hardware programming.

Tested on Debian Sid, steps should be similar across distributions. Recently moved to Fedora and will be testing shortly.


On Debian install the following:

sudo apt install arduino python3-pyserial

To access the serial connection necessary for uploading to your device you'll need to add yourself to the dialout group.

sudo adduser $USER dialout

You will need to log out and back in for the change to take full effect. You can check whether you are in the dialout group with:

groups $USER

Arduino Setup

With Arduino IDE open there is some hardware setup and libraries that still need to be setup. The following steps are outlined in the Watchy

  1. Add ESP32 Boards
    1. File >> Preferences
    2. In Additional Boards Manager URLs paste in
  2. Import the Watchy Library
    1. Tools >> Manage Libraries
    2. Search Watchy click install arduino-watchy-library.png
  3. Hardware Settings
    1. Set Board to "ESP32 Dev Module" Tools >> Board >> ESP32 Arduino >> ESP32 Dev Module
    2. Set Partition Scheme to "Minimal SPIFFS" Tools >> Partition Scheme >> Minimal SPIFFS

Getting Started

With the setup complete you should be all set to get started working on a watch face. The Watchy library provides a number of example faces from which you can use as a basis for your own. Open an example watch face File >> Watchy >> WatchFaces. So far I've found 7_SEG to be a good starter for learning, but you should feel free to try out all options.

A basic change you can make to see if things are working is to swap the 7_SEG color scheme by changing line 3 of Watchy_7_SEG.cpp to false.

#define DARKMODE false

Then verify your project with the Check ✓ icon. If it succeeds plug in your Watchy to your computer via USB and click Upload. You'll likely need to confirm your device (something like /dev/ttyUSB0 on Linux), then after a few seconds you should see your watchface invert colors.


I had an issue while building the watchface in Arduino where python could not be found because Debian testing does not currently have a python symlink. I had python3 installed so I added one as follows:

ln -s /bin/python3 ~/bin/python

~/bin= the default location for user scripts in Debian's bash .profile. It will automatically add this directory to the path if it exists so no additional configuration is needed. However, if you had to create this directory you may need to log out and back in for it to take full effect.

For other distros you may need to add ~/bin to your .profile or .bash_profile

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then


Email questions, comments, and corrections to

Submissions may appear publicly on this website, unless requested otherwise in your email.