DIY How To: Make your own smart watch

This document is also translated in Polish(by Sebastian), Korean language.


Most IT companies participate in the race to grab people’s wrist. A smart watch becomes the most significant item in a wearable device category. You can easily find this mood in this link, there are tons of smart watches.

But here is a simple way to evaluate smart watch’s future on your own. Make it! With Arduino micro-processor and Android, I made a simple smart watch and named it “Retro Watch“. You can do this too!

Retro Watch is an open source project to let you make a smart watch based on Arduino and Android. This document explains about modules, blueprints, how to install and use the Arduino and the Android source codes step by step.


Release note

Updated (2015.01.12) : RetroWatch supports u8glib. Now you can use various kind of OLED(or else) as you want and it consumes less memory. Instead it’s liitle slow at screen refresh. You can find updated sources at GitHub.



1. Overall Structure

RetroWatch is a simple system that is used a hardware platform called Arduino, which is intended for artists, designers, and hobbyst, and an Android app. The overall structure is below here.

Structure overview

Imagine a very small computer that you can wear on your wrist. Arduino board is a micro-processor and a storage, and there’s only one input method : a button. Bluetooth is to communicate with other devices, and the battery would be necessary for power. I’ll install an Android app for collecting or editing various RSS and system information and for notification on the Android device. This app will also process the data because the Arduino board has very limited resources.


2. Preparing for RetroWatch

You need to prepare modules as small as possible to wear the watch on your wrist. There may be tons of variations, but I chose parts that are commonly used and inexpensive. You can replace modules to the others if you want, and you can even use source codes as they are in case you use Arduino-compatible boards. But do not forget you have to change pin numbers that are connected with the parts.

2-1. Hardware for smart watch

before assembly

2-1-1. Arduino micro-controller

There are tons of Arduino boards, but I chose the smallest one, Pro mini. Arduino Pro mini is a light version of UNO R3. It doesn’t have a USB interface chip in order to reduce the price and the size. There are two version depending on the operating voltage(3.3v/5v). And I used a 3.3v version, because the bluetooth and display that are connected with the board support 3.3v and the board goes well with the 3.7v LiPo battery. It runs at 8MHz and a 5v version at 16MHz, but 8MHz is enough. Overall, all you need to prepare are Arduino Pro Mini 3.3v and USB to UART module.

  • The main chip of the board, ATmega328, has only 2KBytes RAM, but ATmega128 has just 1KBytes, which is very limited to run my system. Most boards have ATmega328, but you have to make sure.

2-1-2. Bluetooth

Most common bluetooth modules that you can get are HC-06 main module and the one with interface base board. The latter one has a reset button, the status LED, and it supports both operation voltage(3,3v/5v), so this one is more convenient but the size is rather big, the LED, which is not quite necessary drains the battery and a little more expensive. So I used a HC-06 without the interface board. size: 28mm x 15 mm x 2.35mm (35.7mm x 15.2mm with base board)

2-1-3. Display

The core part would be a display. To make a SMART WATCH, it would be necessary to find a small, low-power display. I’d given lots of thoughts, then I chose -.96’’ OLED Display. size: 26.7mm x 19.26mm x ??

There are various sizes of the displays(0.96’’, 1.3’’, etc), it works on low-power, English font and the image out available, and it supports I2C, SPI, which makes easy to connect with Arduino. The pros and cons is the graphic library. The library for drawing shapes, fonts, and images is supported, but it requires many RAM(I guess the graphic buffer is the problem). So I need to be very stingy in terms of memory usage when I make a program.

Be careful at selecting a display!! I used an 128×64 OLED which is using I2C and SSD1306 driver chip. If you are using different one, you may need to use different graphic libraries and modify arduino source code.

Updated (2015.01.12) : RetroWatch supports u8glib. Now you can use various kind of OLED(or else). Check supported devices at this link.

2-1-4. Battery

I use LiPo(Lithum-Polymer) battery in this project. 1-cell LiPo battery flows out current in 3.7v, which works perfectly with Arduino Pro mini, and there are many kind of batteries in terms of the size and the capacity. You might need to try with batteries with different capacity. I used 501430 – 170mAh, 302030 – 140mAh, 552036 – 350mAh when I made RetroWatch prototype(The first two digits refer to the depth, next two are the width, the last two are the height). The uptime for 501430 – 170mAh and 302030 – 140mAh with periodical sync and no user interaction is :501430 – 170mAh – 7h 30min, 302030 – 140mAh – less than 7h. The most ideal battery depends on what size of watch you want to make. The choice is yours. Under 100mAh one is small, but it doesn’t guarantee stable power, and if it’s too low, you can’t even boot the system. I recommend the battery with protection circuit(overcharging, over-discharging safe), and it’s better if it has a removable socket. It might helpful for you if you get a female socket and USB or 220v DC adaptor recharger.

2-1-5. Etc.

You need wires, soldering iron, a switch and 10K ohm resistance(for a button), and a batter jack. It would be helpful for you to prepare the assembly manual.

In my case, I stacked modules like below picture.



2-2. Preparing for Android

Android v.4.3 supports the service that is used to get notification information from an app. So RetroWatch app is based on Android v.4.3 to enable notification service. For users who don’t use Android v.4.3 yet, the app without this function is released also. You can download the sources at GitHub, or download the app from Google Play Store.(Search with “RetroWatch” or “RetroWatch LE“)


3. Assembling the watch

Folks who are accustomed to handling Arduino or physical computing would proceed this procedure, but I recommend the others not to assemble Arduino Pro mini board first, but try to make the watch with the board that is easy to connect and use like UNO board. The assembly structure for RetroWatch is below here.

Compare your stuff with mine in the picture below. Beware not to fuse, and make sure each layer keep isolated with each other by using tape.

3-1. Connecting Arduino – bluetooth

You may refer to the website for the common way of Arduino – bluetooth connection and test.(but in Korean) You can use the device name and password as is or after resetting them. In the link, you can see the bluetooth module that is connected with the interface board, but the connecting is very similar.

BT -> Arduino :
VCC -> 3.3V,
TX -> D2,
RX -> D3,


There’s a report that says the bluetooth modules can malfunction if they contact with other conducting materials or antennas.

3-2. Connecting Arduino – OLED

The OLED that is used on RetroWatch communicate with the Arduino board by I2C. The common connection of I2C interface is below, and you just follow the instruction.

OLED -> Arduino Pro mini :
SDA -> A4(the analog 4th pin),
SCL -> A5(the analog 5th pin),

If your display has SPI interface, refer to the link. In case of 7pin SPI OLED, connect like below.

  • D1 : MOSI – Arduino D11 (MOSI)
  • D2 : MISO – Arduino D12 (MISO) : this pin is optional.
  • D0 : CLK – Arduino D13 (SCK)
  • DC : DC (Data Command) – Arduino D8 (or else)
  • CS : CS (Chip select) – Arduino D10 (SS)
  • RES : RESET – Arduino D9 (or else)

3-3. Connecting Arduino – button

You may connect with a button which is small enough for the smart watch and a 10k-ohm resistance as below. Connect a digital pin and modify the pin number which is defined as “buttonPin” on the source code. I used a digital 5 pin. In order to refer to button control, you can find the examples about switch control by googling.


3-4. Connecting Arduino – battery

You can simply connect battery by connecting (+) -> RAW, GND -> GND. I chose a LiPo recharging battery, so I left 2 wires and connected them to a female socket. You need to put (+) line to RAW pin in case you use any sort of external power supply, such as an external battery, on Arduino Pro mini board. Otherwise, it can damage the board.

3-5. Connecting Arduino – UART module

You should connect USB to UART to the board in order to upload the source code by USB serial connection. You can read the details here. It depends on the modules how they connect to the board, but normally, you should cross-connect RX-TX.

USB to UART module -> Arduino (Pro mini): ,
3.3V -> VCC,

3-6. Checking connection

The result is as below.





Now, it’s time for checking the connection. If you connect FTDI module(USB to UART, upper-left in the picture) to PC and the light is on, the boot process is successfully done. The following pictures are the assembly procedure and RetroWatch that is completely assembled.



4. Compile Arduino source for watch and upload.

You can download RetroWatch Arduino source on the source tab on the GitHub.

GitHub – RetroWatch project page

Click ‘Download ZIP‘ to download and unzip it. The source which would be uploaded on the Arduino board is in RetroWatchArduino folder. You need to do something before you complie the source code.

4-1. Install graphics driver

You need a graphic library to draw images, shapes, fonts on the OLED. In order to use it, you must install Adafruit_SSD1306Adafruit-GFX-Library. Click ‘download ZIP‘ button on the down-right in the link to download and copy the library folder to /Arduino install folder/libraries. If you find the details, go here.

(According to your development environment, Adafruit library conflicts with Robot_xxx library. In this case, backup and delete Robot_xxx libraries from arduino library folder.)

WARNING: If you are using an OLED with SH1106 driver, use Adafruit_SH1106 driver at below link. Korean user Wonho made this based on Adafruit_SSD1306 driver.

In this case you must modify codes like below.

Updated (2015.01.12) : RetroWatch supports u8glib. If you wish to use various display, use u8glib instead. U8glib is more easy to use, consumes less memory(RAM) and supports various display. In this case download and install u8glib at official homepage.


4-2. Copying the bitmap image header

You must copy the header file that contains bitmap images to load and use them. You should copy bitmap.h in RetroWatchArduino folder to /Arduino install folder/Arduino/hardware/libraries/RetroWatch. If there’s no such folder, simply make it.

4-3. Modifying the source

Open Arduino IDE and load RetroWtchArduino.ino. Next, set pin numbers that you used when you connect the watch. It’s not necessary to modify if you use Arduino pins that are used in this instruction. But if you didn’t, you need to modify the source codes below.

You better not to change the other source codes before compling and uploading are done. If there is a problem on the hardware or the software, it can be hard to find what causes the problem.

Updated (2015.01.12) : If you are using u8glib, load RetroWatchArduino_u8glib.ino file. And check below codes.

Updated (2015.01.22) : RetroWatch supports SPI OLED. I’ve updated at GitHub.


4-4. Compile / Upload

If you follow the instruction well, you need to compile the source code. If this procedure fails, you have to check the error message and what went wrong so far. You can even google the error message to find the web page that tells you about the modules. Once the compile is succeeded, you need to upload it to the Arduino board. If you look at the Arduino IDE closely during the upload procedure, you can see that compiling messages keep showing and suddenly, the progress bar stops for the short period of time, and the messages change to uploading messages. You have to push the reset button on the Arduino board to get the uploading complete message correctly. If the error occurs, you may get this message.

avrdude: stk500_getsync() : not in syc: resp=0x00

In case this message keeps showing and upload doesn’t succeed, go to the link and solve the problem.

If upload is completed, the RetroWatch Arduino logo and the Adafruit logo(the OLED manufacturer) have to be display on the OLED. If you don’t see them, push the reset button once. If it doesn’t work, you should check the connection between the OLED and the board. (sometimes lack of battery charging causes boot problem). After the logo phase passes and time shows up “00:00”, the initialization perfectly succeeds.

boot test

Now, it’s time to check the bluetooth. Turn on the bluetooth on your phone(Setting > Bluetooth). Your phone starts to search bluetooth devices nearby, and the bluetooth module should show. If the phone fails to search it, there’s something wrong in the connection between VCC, GND. If there’s no problem in power supply, the bluetooth module works fine itself even if there’s a problem in TX, RX pin connection. Once the bluetooth module shows, you may proceed the pairing phase, and the two devices connect after putting 4-digit password(in my case, default 1234).


5. Android app install & source download

It’s too big to demostrate how to compile and modify the android source. FYI, check /RetroWatch_Android/RetroWatch folder in the source downloaded from GitHub. I registered this app to Play Store, so go download it(search ‘RetroWatch’).

RetroWatch app pageRetroWatch LE app page

Follow the instruction as below and check the operation of RetroWatch.

If you install the app, turn on the bluetooth first(Setting > Bluetooth) and pair with the module. Next, start RetroWatch app. Choose the second menu(Notification access) on the top and grant RetroWatch the authorization for Notification. Choose the first menu(Choose the device) in the action bar and select the Arduino board that is already paired. If you can’t find it, check the power and the bluetooth module. Or choose ‘device scan’ menu to scan manually.

If the connection is succeeded, you may see “Connected” in connectivity display area at the bottom. Touch the action bar menu(…) and choose ‘Data transfer to Watch’. This menu transfer the data to display time and messages by bluetooth. If the bluetooth module works fine with the Arduino board, time information changes to current time. The bluetooth connection is OK, but time doesn’t display, check the connection between TX, RX. Now, it’s time to have fun with MY OWN SMART WATCH!!! Pictures below show the progress so far.




6. RetroWatch Android

The performance of RetroWatch itself is limited, but I prepared some features to show various of data. The biggest feature is filtering messages sent to the watch. And I put an RSS feed feature to use data from different kind of areas. Try each feature by switching 4 tabs.


Message list tab : Messages are the information collected from the app. Every message is inactivated except for emergency messages. Inactivated messages are not sent. You can change the status by filtering. Messages are the information collected from the app. Every message is inactivated except for emergency messages. Inactivated messages are not sent. By touching each message, you can enable each message or messages from same package.

Filter setting tab: The RetroWatch app controls every single information by filtering. You can add, fix, and delete filters in this tab. You can change strings of messages(ex. change language Korean -> English since it supports English only), delete messages not to show, or just activate them without a string modification.

RSS tab: You can register and monitor RSS feeds. The watch can show lots of information by RSS feeds. For instance, if you add a weather RSS and modify strings to filter, you can receive the weather alarm from the watch!!! You can easily search RSS feeds from the web site which I made and add them to the app.

Watch control tab: You are able to alter styles of the app and watch. If you put your Gmail account here, unread messages are registered in a message list. You can change the clock style and time display indicator to show(Display interval is already set because of power saving, the change applies at interval).


The RetroWatch app collects three kinds of data.

Notification: A notification that is registered in the Andriod indicator bar. App uses the Notification service to collect notifications, only over Android 4.3 supports this feature. Please download RetroWatch LE app for other android version. LE app doesn’t have the notification collection feature.

System info: The system info of the phone such as battery status, RF(LTE, 3G) connection status, WiFi status, recharging progress is collected in the watch. In addition, if you register a Gmail account, it counts unread e-mails.

RSS feed: If you set RSS title and URL, it periodically read RSS data.

Here are the other minor features.

  • Messages are sent in two kinds – emergency message, normal message. But users cannot modify them.
  • You can set icon that shows on the watch when it filters messages. You can use 65 icons.
  • All information is updated to the watch every 30 minutes.
  • The RetroWatch service runs in background even if you shut the app.

Need more details about how to use app? See this link: Retro Watch app quick guide.



7. RetroWatch Arduino

RetroWatch changes mode in a circle as below.

Initial display: The phase which the logo shows up when the watch boots.

Clock display: The basic display which tells you time. You can change the style of the clock in the Android app. Analog, Digital, Mixed styles are supported so far. If you push the button, the display changes to the Emergency message display. It changes to the idle mode in case there’s no data update for 10 minutes.


Emergency message display: The display that shows when users push the button in the watch display or a new emergency message is updated. If users push the button again or 10 seconds passes, the next message is shown. The display changes to a the normal message display after every emergency message shows.

Normal message display: The display that shows after emergency message ends or users push the button. The next message shows up when users push the botton or after 5 seconds. The display changes to the clock when the last message shows.

Idle display: The display that is shown if there’s no data push during 10 minutes. It displays Indicator and time(hh:mm) the display update interval changes to run at minimum power consumption. If you push the button or get a new message, the display changes to the clock display.

RetroWatch module has these features.

  • Three emergency messages can be stored. The message that the watch is already received is deleted if the messages are over 3. It can’t store lots of data due to memory shortage(2KB RAM).
  • Normal message stores up to 7. Like emergency messages, the first messages are deleted when the received messages reach to the maximum.
  • You can change the clock style as you want. Or you can even make your own clock style by altering the source code.
  • There are 65 icons so the app can use them. You can also add your own icons.(need to compile Arduino code)
  • You can choose whether the indicator would be shown or not in the app.
  • The internal battery is 140mAh, so the battery time is about 7 hrs at a normal status. I guess the battery time would be longer if I fix the source code for battery save.


8. RetroWatch specification & working demo

  • Processor : ATmega328 – 3.3v(8MHz)
  • 32KB Flash (2KB is shared for Bootloader), 2KB RAM, 1KB EEPROM
  • Size : Width x Height x Depth = 34mm x 32mm x 12mm (Not packaged)
  • Battery : LiPo 140mAh(idle time 7hrs, 1-2hrs for recharging)
  • Connecting with Android app
  • Supports notification, system info, RSS feed
  • Message filtering
  • Open source

Working demo: YouTube link



9. Packaging

RetroWatch Android, Arduino module is done, and if there’s no problem to operate, you need to pack the watch. Make a package as you want.


Below picture shows 3D printed hard-case by Kyung-Rae Park. 

Download here. 


Awesome one at below picture is designed by Wonho. You can get the 3D modeling files here. And find more at his blog.


10. Epilogue

You can feel how fascinating and powerful the open source and the open hardware are through this project. The idea comes true even though you are not professional because hardware is getting inexpensive and numbers of people shares source codes and know-how. Let’s try!!!


You can see the working demo atYouTube link.

More specific how-to document at : RetroWatch project

Download sources at : GitHub RetroWatch page

RetroWatch case design for 3D printer:  

RetroWatch Android Application (v4.3 or over) 

RetroWatch LE Android Application (v4.0 ~ v4.3, Notification service removed)

Retro Watch app quick guide


RetroWatch Android is based on Apache license, RetroWatch Arduino follows GPL v3.0.

Special thanks to Chang-Han Jeon and Kyung-Rae Park. Jeon translated this text in English and Park made a case for RetroWatch with his 3D printer. Wonho made an awesome example and share the library for SH1106 OLED user.

This document is also translated in Polish(by Sebastian), Korean language.

If you wish to translate this document into other language, feel free to do it! After translation, just notify to me with your result and your name. I’ll update this document. And if you made you own watch, please share with me. (


Post Author: TORTUGA

궁금하신 점은 새로 개편한 홈페이지의 QnA 게시판을 이용해주세요!!!!!!!

83 thoughts on “DIY How To: Make your own smart watch

    […] Translated in English => Here!! […]

    […] functionality, such as viewing RSS feeds and Android notifications. Check out the GitHub and a more detailed write-up for more […]

    Make Your Own Smart Watch | Hack The Planet

    (2014년 2월 18일 - 3:51 오전)

    […] functionality, such as viewing RSS feeds and Android notifications. Check out the GitHub and a more detailed write-up for more […]

    Fabriquez votre Smartwatch « Korben Korben

    (2014년 2월 18일 - 9:04 오전)

    […] Si ce montage vous intéresse, je vous invite à lire le tuto de GodsTale ici. […]

    Fabriquez votre Smartwatch « Mes idées HIGH TECH

    (2014년 2월 18일 - 11:57 오전)

    […] Si ce montage vous intéresse, je vous invite à lire le tuto de GodsTale ici. […]

    […] blocks you can plug a few things together and quite quickly have a functional smart watch. The watch above was built using a Arduino Pro Mini, HC-06 Bluetooth module and a 0.96’’ OLED […]

    DIY Smart Watch | Hi-tech news

    (2014년 2월 19일 - 9:46 오전)

    […] blocks you can plug a few things together and quite quickly have a functional smart watch. The watch above was built using a Arduino Pro Mini, HC-06 Bluetooth module and a 0.96’’ OLED […]



      (2014년 2월 20일 - 3:07 오후)

      Possible but consider working voltage 5v. You must set other parts to work on that voltage.


    (2014년 2월 24일 - 5:52 오후)

    Hi, i build your project and it’s working! for the moment with a breadboard.
    i also compile the android source with eclipse. super!
    but i have problems with the rss feeds, i can’t get it working. i like to watch a weather feed for europe.
    thanks a lot, henk



      (2014년 2월 25일 - 4:19 오전)

      Had you seen the RSS feeds on Message List tab? If so, touch feed item and add filter to enable feed item.
      If you failed to extract feed item, check feed URL again. Type RSS feed URL in browser and check result XML file.
      Sometimes 2byte language code or XML validation makes parsing problem. In this case, please extract log message and send it to me. (

      Enabled message is not synchronized immediately. Wait for next sync time or sync it with manual command. (use Android menu button or […] icon at right-top corner. You can find manual sync command.)


    (2014년 3월 2일 - 3:26 오후)

    Hey, really cool article, i’m very interested in doing this.
    I just have a question, how do you recharge the battery ?
    Does connecting to the USB/UART module work ?
    Or is there another way to do it ?

    Thanks in advance.



      (2014년 3월 5일 - 9:08 오전)

      Sorry for late response. Unfortunately there is no recharging circuit, so USB/UART is not work. For recharging I disconnect battery and use external recharging adapter. I’ll challenge recharging circuit in next time.


        (2014년 3월 5일 - 7:34 오후)

        Thank you !

    Gerd Lobmeyer

    (2014년 3월 13일 - 10:45 오전)

    Hi, I build your watch too, but I have some questions. I have connected the battery as you describe, but it do not work. I can only power the Arduino over the UART connection. Do you have any idea about that?
    Second question, the OLED “boot” mostly one the first time when I connect to power over the UART, but If I try to power the system over the GND and VCC on the UART connector of the arduino, the OLED shows only pixels. After ten times power on and off the oled boots up correctly. Is the oled so sensitive? Is there something to do to get this stable?
    Best regards



      (2014년 3월 16일 - 5:11 오전)

      1. Which arduino board do you use? In case of Nano, it requires UART power or power supply (pin 30) or 5V regulated external power supply (pin 27). So LiPo 3.7v power is not match with Nano. Please check below link and find your board and see the POWER section.

      2. If your OLED doesn’t show boot-up screen, it’s because set-up code is not running properly. Check the power line and press reset button. See the reset led is blinking when you boot-up your board.
      Generally My OLED works well if not in below condition:
      – There is not enough power
      – Power lines or BT/OLED circuit are touched with conductive materials
      – RAM is full (There is not enough extra space)


    (2014년 3월 14일 - 5:43 오후)

    One question could I replace the oled display with a Nokia 5110 (
    I have tried to adjust the code, but I only could get the adafruit logo working.
    I changed the previous library to
    and I am using the arduino nano.
    What changes within the code shall I do to make it work on this display?
    It is an awesome project and a good job you did here;) so thanks


    (2014년 3월 18일 - 11:48 오후)

    which display did you use??

    Gerd Lobmeyer

    (2014년 3월 19일 - 8:34 오후)

    I am using the 3.3 V arduino pro mini, the same as you. The display is adafruit 128×64 OLED. It is quite the same as you use. Ok, I think the booting and powering I found a way. But I have problems to send data from my phone. First I tried to use a HC-05. The connection and paring is no problem, but it do not send data to the watch. After checking the cables I thought it is problem of the Version of the bluetooth card. I bought a HC-06, but there is the same problem. Paring is no problem, but I can not send data to the watch. I changed the cables and the parameters in the code, but no success. Any idea about that?



      (2014년 3월 20일 - 3:27 오전)

      There is a report that BT module is not working when it’s connected to non-interrupt pin. Arduino UNO and pro mini supports two interrupt pin: INT0, INT1 (Digital pin 2, pin 3). Test with this pin please.
      And RetroWatch Android app sync data every in 30 minutes. To avoid this sync interval, select menu – send data to watch. This will sync every data instantly.

    Gerd Lobmeyer

    (2014년 3월 20일 - 11:34 오전)

    I already use pin 2 and 3. I have to compile without an error inserted the line #include . Could this cause this problem? If not I have no idea what I am doing wrong. The pins are correct and I tried out to connect them both over cross, but it do not work.

    An additional question, the button on the watch, what is this exactly function of that button?



      (2014년 3월 21일 - 12:38 오후)

      Send email to me with your sketch.
      Button is used to change mode : Idle -> Clock -> Emergency message -> Normal Message -> Clock


    (2014년 3월 20일 - 11:48 오전)


    Could you share a link for each product that we should buy to make it ? (ebay link) ?
    Like that we will be sure that every thing is working together.

    Gerd Lobmeyer

    (2014년 3월 23일 - 6:57 오후)

    Hi! Now I did a step by step build based on a Arduino Mega. Now it works. First I build a sketch only with the BT communication and after some confusion with the BT it works. Then I connected the OLED and the switch and load your sketch. After changing the PINs in the sketch it works perfekt. So the next step is to go back to the Arduino pro mini and try to do there the same as on the Mega. For me it is not possible to say what I did in another way. I think I understood the sketch and the setup of the electrics, but I have no idea what’s the problem with the pro mini. So I will try and let you take part on the result. Thank you very much for that great project and you advice!!
    best regards

    Gerd Lobmeyer

    (2014년 3월 24일 - 6:42 오후)

    Yes! it works! Now the watch is running with the pro mini. I am too stupid. I do not know which fault I did, but now it works! Sorry for that. Thank you very much!!



      (2014년 3월 25일 - 1:04 오전)


    Fabriquez votre Smartwatch | Liberté Toujours

    (2014년 3월 25일 - 11:53 오후)

    […] Si ce montage vous intéresse, je vous invite à lire le tuto de GodsTale ici. […]

    […] inglés) permite construir un reloj inteligente capaz de sincronizarse con teléfonos Android (en este link están las instrucciones en inglés). El equipo puede comunicarse con un celular para mostrar en […]

    Vernon Niven

    (2014년 3월 28일 - 10:14 오후)

    Really interesting… I didn’t know you could actually build your own smart watch! Very cool.

    Hey guys, if you want to compare your project to other smart watches on the market, here are a couple of reference charts for most of the leading devices:

    Tech specs:


    Smartphone compatibility:



    (2014년 4월 3일 - 12:56 오후)

    can you email me the complete .h files?

    Gerd Lobmeyer

    (2014년 4월 7일 - 7:03 오후)

    Hello! Here is a picture of my RetroWatch made out of wood and leather… It’s a prototype. I have some ideas to improve the design.

    What do you think about this display?×96-Silver-Monochrome.html

    Best regards,



      (2014년 4월 9일 - 12:07 오후)

      Oh It’s fantastic!! Can I use your image as an example picture??
      I think SHARP display is a good solution if you don’t mind it’s size. I expect your next works!

    Gerd Lobmeyer

    (2014년 4월 10일 - 5:32 오전)

    Yes, I’ll be proud if you use my picture. Thank you!


    (2014년 5월 6일 - 1:05 오전)

    How can i add a vibrator to make it vibrate when receiving notif.?

    […] que certains fabriquent leurs Smartwatch à partir du tutoriel de HardCopyWorld sous le nom de  »Retro Watch », d’autres vont tout simplement […]


    (2014년 5월 23일 - 9:49 오후)

    excuse me…
    I got this

    Arduino: 1.5.6-r2 (Windows 7), Board: “Arduino Uno”

    C:\Program Files (x86)\Arduino\libraries\SSD1306\Adafruit_SSD1306.cpp: In member function ‘void Adafruit_SSD1306::begin(uint8_t, uint8_t)’:
    C:\Program Files (x86)\Arduino\libraries\SSD1306\Adafruit_SSD1306.cpp:178: error: ‘SPI’ was not declared in this scope
    C:\Program Files (x86)\Arduino\libraries\SSD1306\Adafruit_SSD1306.cpp:182: error: ‘SPI_CLOCK_DIV2’ was not declared in this scope
    C:\Program Files (x86)\Arduino\libraries\SSD1306\Adafruit_SSD1306.cpp: In member function ‘void Adafruit_SSD1306::fastSPIwrite(uint8_t)’:
    C:\Program Files (x86)\Arduino\libraries\SSD1306\Adafruit_SSD1306.cpp:492: error: ‘SPI’ was not declared in this scope

    This report would have more information with
    “Show verbose output during compilation”
    enabled in File > Preferences.




    (2014년 5월 24일 - 2:33 오전)

    It’s because Adafruit graphic library failed to find SPI header. Add below at the top of your sketch.

    #include <SPI.h>

    I heard that SPI header error occurs in a certain Arduino IDE version.


      (2014년 5월 24일 - 10:16 오후)

      so……how to slove it?
      Change my


        (2014년 5월 24일 - 10:17 오후)

        Change my arduino ide version ??


          (2014년 5월 24일 - 11:12 오후)

          i missed the sentence
          now i sloved this problem
          thx for your help!!


    (2014년 5월 24일 - 11:23 오후)

    now i got this……

    Arduino: 1.5.6-r2 (Windows 7), Board: “Arduino Uno”

    C:\Program Files (x86)\Arduino\libraries\SSD1306\Adafruit_SSD1306.cpp: In member function ‘void Adafruit_SSD1306::begin(uint8_t, uint8_t)’:
    C:\Program Files (x86)\Arduino\libraries\SSD1306\Adafruit_SSD1306.cpp:178: error: ‘SPI’ was not declared in this scope
    C:\Program Files (x86)\Arduino\libraries\SSD1306\Adafruit_SSD1306.cpp:182: error: ‘SPI_CLOCK_DIV2’ was not declared in this scope
    C:\Program Files (x86)\Arduino\libraries\SSD1306\Adafruit_SSD1306.cpp: In member function ‘void Adafruit_SSD1306::fastSPIwrite(uint8_t)’:
    C:\Program Files (x86)\Arduino\libraries\SSD1306\Adafruit_SSD1306.cpp:492: error: ‘SPI’ was not declared in this scope

    This report would have more information with
    “Show verbose output during compilation”
    enabled in File > Preferences.



      (2014년 5월 24일 - 11:24 오후)

      Arduino: 1.5.6-r2 (Windows 7), Board: “Arduino Uno”

      Sketch uses 21,866 bytes (67%) of program storage space. Maximum is 32,256 bytes.

      Global variables use 1,770 bytes (86%) of dynamic memory, leaving 278 bytes for local variables. Maximum is 2,048 bytes.

      Low memory available, stability problems may occur

      This report would have more information with
      “Show verbose output during compilation”
      enabled in File > Preferences.


    Nishant Soni

    (2014년 8월 12일 - 10:45 오후)

    I am having an oled whis is having the following terminals GND . VCC
    . D0 . D1 . RST . DC . CS . Can u pleas tell how will i connect arduino to these terminals there is No SDA and SCl pins what changes do i meet to make in code.

    […] is my second project succeeded to ‘Making a SmartWatch(RetroWatch)’. My smart band is too simple to compare other activity tracking products, but a Bluetooth module […]


    (2014년 8월 29일 - 2:45 오후)

    If the watch is connected to the USB by uart and no battery is connected will it work.



      (2014년 8월 31일 - 7:33 오전)

      Yes, USB to UART supplies power

    Haga su propio reloj inteligente | unocero

    (2014년 9월 3일 - 11:10 오후)

    […] El autor de este proyecto, cuyo apodo es “Gods Tale”, se enfocó realmente en el software. Uno de los aspectos más interesantes de este proyecto es la app de Android que el programador nos da. Esta app nos da la funcionalidad básica, por ejemplo, ver un canal RSS o bien las notificaciones de Android. Todo el código puede hallarse aquí y una descripción ampliada de este trabajo en este enlace. […]

    […] El autor de este proyecto, cuyo apodo es “Gods Tale”, se enfocó realmente en el software. Uno de los aspectos más interesantes de este proyecto es la app de Android que el programador nos da. Esta app nos da la funcionalidad básica, por ejemplo, ver un canal RSS o bien las notificaciones de Android. Todo el código puede hallarse aquí y una descripción ampliada de este trabajo en este enlace. […]

    […] C’est sûr que ce n’est pas une Apple Watch mais c’est open source, c’est beaucoup moins cher, c’est évolutif et c’est vous qui l’aurait fait 🙂 alors allez voir ce tuto de smart watch ‘Making a SmartWatch(RetroWatch). […]

    JC Clark

    (2014년 9월 11일 - 7:11 오전)

    Someone just sent this to me. Good stuff! Seems like the Arduino boards could be used to make all sorts of interesting smartwatches and wearables! BTW, would you be interested in doing a short email interview for our blog? Please let me know, thanks!


    (2014년 9월 20일 - 12:50 오후)

    My Retro Watch Stop at the beginning of the [RetroWatch Arduino v1.0]
    now I can’t see time but can connected bluetooth 0.0



      (2014년 9월 22일 - 9:36 오전)

      If you didn’t attach a button, disable the button codes.
      Comment out below codes.

      // Get button input
      // if(digitalRead(buttonPin) == LOW) isClicked = LOW;


    (2014년 11월 19일 - 8:52 오후)

    I am using Nokia 5110 lcd module.. Can you help me with it ?? what change i should do ??



      (2014년 11월 21일 - 10:50 오후)

      Most easy way to adapt Nokia LCD is to use Adafruit library for Nokia 5110. Library in below link will handle your Nokia LCD. And you can use Adafruit GFX (Graphic) library, which is the one I’ve used to draw things, without code changes.
      Of course, you have to modify library instance setup codes.

    Luis Z

    (2014년 12월 4일 - 2:12 오전)

    Hi! First, thaks for your work, I had made it and it is working. But, I have a problem with the bluetooth conection. The app its paired with de HC-06, but the display does not show the new information, it only works as simple clock (with out my mobile phone hour), when I press the button its changes to the Mix style from the digital. What could I do to solve this issue? Kind Regards!


    (2015년 3월 16일 - 9:53 오후)

    Hi! Is it possible to add the date for today as a filter / messeage on the app?



      (2015년 4월 7일 - 9:58 오전)

      Doesn’t support that. If you want current date, modify arduino sketch. You can get date after pairing with phone.


    (2015년 6월 12일 - 10:11 오후)

    May this app support ios?



      (2015년 6월 25일 - 2:03 오후)

      No, doesn’t support iOS.


    (2015년 7월 1일 - 2:33 오전)

    i’m having problems with android lollipop 5.0.2,
    it sends notifications from system apps( battery, wifi) but apps like whatsapp it catches the notification in the app but never sends it.
    please, help



      (2015년 8월 26일 - 6:40 오후)

      I didn’t test this app in LP 5.x. It may takes so long time please wait


    (2015년 8월 23일 - 3:49 오후)

    정말 멋지네요. 저도 블루투스를 이용한 프로젝트를 진행하고 있습니다. 몇 가지 여쭤봐도 될까요?
    블루투스로 스마트폰과 통신하실 때 아두이노 코드에 따로 사용하신 필터 코드가 있나요?
    아니면 하드웨어적으로 통신을 원활하게 하기 위해 사용하신 회로가 있나요?
    답변해주시면 정말 감사하겠습니다!



      (2015년 8월 26일 - 6:41 오후)

      별도로 필터같은걸 사용한 건 없구요 단지 BT classic을 사용하는 기본 방법에 따라 BT 연결을 하고 이후는 데이터 통신만 양방향으로 하고 있습니다. 소스코드가 공유되어 있으니 소스코드를 보시면 좀 더 자세한게 동작 과정을 이해하실 수 있으실겁니다.


    (2016년 1월 27일 - 9:05 오후)

    how to make watch with mp3 player


    (2016년 4월 7일 - 3:35 오전)

    Hi Tortuga,

    I am interested in making a smart watch, could you contact me so we can talk in details



    (2016년 8월 18일 - 3:16 오전)

    Please help, Bluetooth doesn’t remain paired with my phone and the display shows the wrong character. It shows character from the ascii table but not the one I want.


    (2017년 9월 21일 - 12:30 오전)

    Can I get the full coded file?

    […] Sebastian zbudował smartwatch wg projektu z bloga […]


    (2018년 5월 5일 - 3:51 오후)

    can you help me actually i am using a 6 pin oled diplay


    (2019년 3월 16일 - 8:55 오후)

    i have a problem with the program,, in bitmap.h

    like this
    bitmap.h:1269:43: error: variable ‘bitmap_array’ must be const in order to be put into read-only section by means of ‘__attribute__((progmem))’

    PROGMEM const unsigned char* bitmap_array[] = {


    RetroWatchArduino:118:32: error: variable ‘weekString’ must be const in order to be put into read-only section by means of ‘__attribute__((progmem))’

    PROGMEM const char* weekString[] = {“”, “Sun”, “Mon”, “Tue”, “Wed”, “Thu”, “Fri”, “Sat”};


    RetroWatchArduino:119:32: error: variable ‘ampmString’ must be const in order to be put into read-only section by means of ‘__attribute__((progmem))’

    PROGMEM const char* ampmString[] = {“AM”, “PM”};


    exit status 1
    variable ‘bitmap_array’ must be const in order to be put into read-only section by means of ‘__attribute__((progmem))’


    (2019년 7월 25일 - 1:42 오전)

    your app is removed from google play

댓글 남기기

이메일은 공개되지 않습니다.