Basic Watch + Bluetooth Music Control

Github Download link:

Forked from
Developer’s original blog:

Installation instructions:

  • Download the firmware from the Github download link
  • Download the missing library: You can also import this library as follows: Sketch -> Include Library -> Manage Libraries then search Adafruit_SleepyDog and install.


  • watch firmware put the hardware to sleep in order to preserve power
  • Any of the buttons will wake the watchX up
  • Top left button allows the user to enter the menu and make a selection
  • Buttons at the bottom right and top right are for navigation purposes
  • Buttons at the bottom right and top right also function as changing the music at the connected phone or pc/mac. In order to use this function you should connect watchX to your phone pc/mac.
  • Top right button functions as “Next Song” while bottom right button functions as “Previous Song”

See the firmware in action:


Hallo Mustafa,
nice job, the music control. In your sketch the line:
should be the command for “next title” and:
the command for play and pause.
Do you know how to change the audio volume (iOS)?
Best regards

Hello Michael,

You need to change MEDIANEXT with VOLUME+ or VOLUME- . So It should be:
For volume up: ble.sendCommandCheckOK(F(“AT+BLEHIDCONTROLKEY=VOLUME+”));
For volume down: ble.sendCommandCheckOK(F(“AT+BLEHIDCONTROLKEY=VOLUME-”));

You can take a look at the other futures of BLE module from thedocument: Page 108;)

1 Like

… thanks. it works. Some iOS apps other than music players use the volume command to change status. For example the ProCamera App: The volume command triggers “take photo” or “record/pause”. So watchX can be used as a camera remote.


This is awesome. How is the program space?

I have spent a few hours trying to get basic watch ported properly to a lower usage oled library. But they work differently to the Adafruit one which you can specify a character location.

I will have to start from scratch. Also the fonts are not as nice. I would rather stick with the Adafruit library, or maybe I need to find some others I have not tried yet.

I might just tidy up the basic watch code.

Any suggestions?
We need an MCU with more space and RAM.

It’s full + full %99 :slight_smile: The adafruit OLED library alone take %69 of the program space. We definitely need to switch to an another library.

Yes the second library is very basic and I don’t like it neither. As soon as I find time I will search for a better library or modify the text based one.

Human kind went to the moon and back with 16kb :smiley: we should do better on firmware side :wink:

Hi @mtulu
well received the watchx. Thank you very much.
Tonight I try to upload Basic Watch+Bluetooth control watch face then I’ve got some error

An error occurred while uploading the sketch
Invalid library found in C:\Program Files (x86)\Arduino\libraries\libraries: no headers files (.h) found in C:\Program Files (x86)\Arduino\libraries\libraries
Invalid library found in C:\Program Files (x86)\Arduino\libraries\libraries: no headers files (.h) found in C:\Program Files (x86)\Arduino\libraries\libraries

I checked and rechecked my libraries I have they are all in my list included SleepDog
What is my missing?
newbie for coding.
Thank you

Hello Dear Pira,

This looks like a compiler error rather then anything related with the code. What is your arduino ide version?

hello Mustafa
my watchx has been stuck in a music control program,how to solve?
Thank you very much

Try to reupload a code.
If it doesn’t work : push reset button while uploading. So you press reset button on your watchx, and you let it pressed. You clic on upload in your IDE (button always pressed). And you can let the button back when the upload want to start. It should work

@Polotonia did the method @francois mentioned worked?

sorry for late reply,I wasnt home a while ago.Its really helpful.My watch work as usual again.
Vielen Dank.

1 Like