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):  https://www.dropbox.com/sh/9w5vuvk6zcmgshv/YB4QG46qtZ (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

Feedback

Trackbacks

  1. Hackaday Links: December 8, 2013

Comments

15 Responses to “MetaWatch WDS111 – change boot logo”
  1. Roman Sand says:

    Hi…
    How do you think it is possible to implement Bluetooth 4.0 in firmware…

    • luftek says:

      hm, I will be looking into this later. They state CC2560 is compatible with 4.0. I will first make standalone time, alarm, vibration, light apps. I am learning as I go. Will you join firmware development?

      • Roman Sand says:

        I have this watch for a year, and I always wanted to start development for it…But the time is the problem, soon I will receive arduino i needed to home automation and I will need to do custom firmware for watch to use it…

        • Roman Sand says:

          I received answer from metawatch they told what don’t support their devices and there is only 1 month warranty because they produce watch for developers. I think this is not right and the defect is in LCD that they put inside that means that their engineers don’t work so good… Personally I wouldn’t recommend
          metawatch to nobody and will never buy any products from them again.

      • Roman Sand says:

        I think screen of my watch got dimmer…

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>