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).
- 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;
2.714: const tImageBuffer MetaWatchLogoBuffer =
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.
After 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: