MetaWatch WDS111 – change boot logo

with 15 comments

I bought this Metawatch WDS111 (“Analog”) watch on a discount TI’s Back To School. I decided I will give it more thought when I have time. Yesterday I decided to take it out of the box and figure out first how to program it and find source code. So I searched quite a while and found very few information. Most modifications are on the mobile phone side (Arduino or iPhone).

ti-meta-watch-analogSome technical specifications:

  • MSP430F5438A (256Kb of flash)
  • CC2560 Bluetooth host controller
  • Vibrating motor
  • Three-axis accelerometer
  • Ambient light sensor
  • Dual OLED Displays (80×16 px)
  • Analog Hands
  • 3 Buttons

My introduction into code modification is HOW TO CHANGE BOOT LOGO.

Source code for just this model is on GitHub: Emeryth-MetaWatch-WDS111
My whole MetaWatch Dropbox repository (links, pictures, projects): (live repository)

First I tried to edit code in IAR for MSP430, but linker was throwing some errors. Then after Emeryth emailed me back I tried Code Composer Studio 5.5 90-day trial.  It WORKS! There is a lot of code. Loading it on a watch takes long time.

I searched for “METAWATCH” in files and found something interesting in Public/Aplication/OledDisplay.c

row | code
70: const tImageBuffer MetaWatchLogoBuffer;
480: DisplayBuffer((tImageBuffer*)&MetaWatchLogoBuffer);
2.714: const tImageBuffer MetaWatchLogoBuffer =

metawatch boot logo

I first partly changed code of MetaWatchLogoBuffer to 0xFF. Which resulted in boot logo change (more active pixels). I found out bits are arranged as in code comment ( little endian, col scan, preferred row, not packed)

My name in MS Paint, saved in .bmp. Next I needed a program online/installer to translate .bmp into hex code. Program on this link: BMP to PIC table for graphic LCD assembly utility does that sufficiently.  After importing image I was able to replace existing boot logo code with mine.

Oled 80x16pxAfter that I really wanted to also change bottom oled. I did that by adding 2nd const tImageBuffer MetaWatchLogoBuffer2 using it in 2nd DisplayBuffer((tImageBuffer*)&MetaWatchLogoBuffer2); I modified const 
tImageBuffer MetaWatchLogoBuffer2 similar to top oled. But something went different. Top 8 rows of logo were on botttom and bottom on top. I switched hex code, but found out that it was mirrored (turns out bottom oled is a vertically mirrored to top). Flipped image in MS Paint and also changed rows later in code and voila -> boot logo with my name on top and Hackaday’s on bottom. Changed time to boot from 2 to 10 seconds.

Youtube video of both boot logos modified:


Written by luftek

December 2nd, 2013 at 6:18 pm

Posted in Metawatch


Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>