NWatch firmware port to watchX

Github Download link: https://github.com/ahmetkcavusoglu/NWatch

Ported by sasapea3
Developer’s original blog: http://sasapea.mydns.jp/category/watchx/

Installation instructions:

  • Make sure that latest version of Arduino IDE is installed.
  • Download the source code from provided GitHub link above.
  • Open the watchX folder and double click the watchX.ino file
  • Make sure that watchX is connected to your computer.
  • Hit Upload button.


  • Top left button functions as menu button as well as selection button.
  • Buttons on the top right and bottom right is for the navigation between selections.
  • Firmware puts watchX to sleep for power saving, you can wake it up by pressing one of the buttons.
  • Sleep mode can be set from: Settings -> Sleep -> Timeout.
  • 0s means no sleep, 5s means sleep after 5 seconds.
  • Important Note: in order to upload new firmware sleep mode should set to 0s!
  • Note: If you stack at Alarms menu, do as follow; press top left button till no selection on the present row, press top right button till you see back selection then press top left button to exit.

See the firmware in action:


Hello Mustafa,

after the upload I saw the clock for the first time, super. Only the time is wrong, how to set one?

Best regards.

Please do as follows:

  • Press Top Left(TL) button to enter to menu
  • Press Bottom Right(BR) button to navigate through settings
  • Press TL to enter to settings menu
  • Press TL to enter Time & Date menu
  • Press TL to change Date settings shift to month and date selections by pressing TL
  • Same applies to Time settings.
  • Press TL to save and navigate back

Let me know if you encounter any problem. I am so happy that you flashed the firmware:) I think problem is in between Arduino and windows 10

Hi Mustafa,

Thank you for help!
Can you say me, what is this, look at picture.


**Moderator hat on
Moved the questions to an appropriate topic.
**Moderator hat off

That is Frame Per Second(FPS) info. You can turn it off at Diagnostic section by scrolling down to show FPS and pushing TL Button.

Thank you for your help!

1 Like

I got WatchX in Taiwan yesterday, and uploaded NWatch to WatchX.
Soon, I found a question about the alarm.
As long as the watch is in sleep, the alarm will not ring.
Please teach me how to solve this problem.

It’s a bug, RTC clock doesn’t wake the watchX up. I will take a look into it asap;)

1 Like

If I want to format WatchX, just press the RESET button on the back of the screen and it will be OK?

Thats just a Reset Button which restarts the MCU and the Program.
It doesn’t erase anything.
You need to over-write it with an new sketch.

1 Like

You know Mustafa, the first time I uploaded the code to my watch, I was able to disable the FPS indication, then I uploaded another sketch to the watch, didn’t like it and went back to this sketch. This time I can’t disable the FPS indication. When I press the LS button after selecting the disable FPS display, it does nothing?

So you mean, when the “Show FPS” is indicated as “NO” it still displays the FPS. Can you please try, removing the battery wait a couple of seconds and inserting back again?

Sorry I took so long to respond, we were out of town for the holiday. I did remove the battery, and that didn’t resolve the issue. Like I said, the first time I uploaded the sketch, it all worked good. Didn’t change any of the code that I remember, just uploaded a different sketch that I wanted to try. Didn’t like that sketch, went back and uploaded your original sketch; then couldn’t disable the FPS function?

Hello David,

Can we make sure that you are uploading this code: https://github.com/kghunt/NWatch One more question, it disappears with a simple sketch such as BLINK right?

Yes Mustafa, that is the file I’m using. I went back and flashed the “bare minimum” sketch just to clear everything out. I uploaded the watchX sketch, and it still fails to cancel the FPS function, when selected. Not sure why, I’ve looked at the code and it’s pretty straight forward? It does react to the LS button push, so it is see the button pushed, but doesn’t change the “Y” to “N”?

Lately, I am having this issue as well. I think it’s because of a bug. The top left button does not do it’s job on software side. I will fix it as soon as possible.

I’m new to arduino, I’m looking for game1 breakout in the watch menu, I can see the program in the IDE but can’t access it in my watch. Is the code for starting the game deleted?

The reason you don’t see it at the watchX is because it is set to not compile at the config settings. We are at the limits of ROM with the watchX code that’s why we set it not compile to reduce size of the code. Please open the "config.h " from the drop down menu on the very right of the Arduino ide. It’s the small down arrow.

Once opened please scroll down a little and you will see:

// Compile options
#define COMPILE_GAME1 0 // Breakout
#define COMPILE_GAME2 1 // Car dodge
#define COMPILE_GAME3 0 // Flappy thing (not finished)
#define COMPILE_UART 0

Set the GAME2 0 and then set the Game1 1. Let us know the results:)

Good afternoon.
When trying to compile a downloaded project, Arduino gives errors. Errors in the common.h file.
#include <avr / io.h>
#include <avr / power.h>
#include <avr / interrupt.h>
#include <avr / wdt.h>
#include <avr / sleep.h>
#include <avr / eeprom.h>
#include <avr / pgmspace.h>


@ahmetkcavusoglu is experienced on NWatch firmware:) I am sure he can help:)