How to make the Watchy vibrate


I am enjoying playing with the eInk Watchy. It is a cute package and is everything I want in a Smart-Watch; geeky, long battery life, and not obnoxious.

But - fuck me! - the documentation is atrocious! Well, that's a lie. There is no documentation. It has the "Chat to us on Discord" anti-pattern that infects so many otherwise great projects.

So I'm left to figure out how to make the Watchy's haptics work.

The example watchfaces have a file called settings.h which contains .vibrateOClock = true. Set that and you'll get a little buzz on the hour, every hour.

But how do you make it buzz when you've hit your step-count goal? Or when the time is 13:37? Or whenever you want?

There's no documentation. And searching the code for "vibrate" or "vibe" or "vibration" yielded nothing. But I accidentally typo'd my search and entered "vib" - and that did the trick.

In config.h there's this line: #define VIB_MOTOR_PIN 13.

So, pin 13 is wired in to the vibration motor. We can add that line to our own config file. But how do we turn the buzzer on and off?

With a bit of help from Discord, it became clear:

 CpinMode(VIB_MOTOR_PIN, OUTPUT);     // Set vibration motor pin as an output.
digitalWrite(VIB_MOTOR_PIN, true);  // Enable vibration motor
delay(150);                         // Vibe for 150 ms.
digitalWrite(VIB_MOTOR_PIN, false); // Disable vibration motor.
delay(500);                         // Wait half a second
digitalWrite(VIB_MOTOR_PIN, true);  // Enable vibration motor
delay(250);                         // Vibe for quarter of a second
digitalWrite(VIB_MOTOR_PIN, false); // Stop vibrating

That's the same as the HTML5 Vibrate API - you can't control the intensity, but you can program your own vibration patterns.

I just don't understand why hardware vendors are so crap at writing documentation. Don't they like people using their products?


Share this post on…

3 thoughts on “How to make the Watchy vibrate”

  1. said on infosec.exchange:

    @Edent I bought one of these ages ago. Went into the discord and was like “you guys need documentation! Write something down!” And they didn’t understand. My Watchy is in a drawer now. It was too much work to make it do what I wanted. I, too, was attracted to the hardware package. But it needs a LOT of work on the end user support. I was last active like 18 months ago. Sounds like it hasn’t gotten any better.

    The other thing to know is that they have shipped buggy hardware where the downloadable code from git didn’t work. And so a whole bunch of us who ordered at a specific moment in time received something where NONE of the online code actually worked. They changed the clock chip and hadn’t released the new source and instructions for how to pull the right modules into the Arduino IDE. So we sat for like 2 weeks unable to get it to work, and going into discord to ask. Finally someone pinned the answer: just wait. The code is coming. And if you didn’t hang out in the discord? You probably thought you were shipped a broken piece of hardware. The code would compile and load, but the time never advanced: fairly important for a timepiece.

    Also NTP never worked for me, so my Watchy drifted A LOT.

    They are my poster child for how not to run a community around your product. It’s validating to hear you go into it and experience it similarly.

    Reply | Reply to original comment on infosec.exchange

What are your reckons?

All comments are moderated and may not be published immediately. Your email address will not be published.

See allowed HTML elements: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <p> <pre> <br> <img src="" alt="" title="" srcset="">