A Binary Watch

by bolanxu in Circuits > Wearables

101 Views, 0 Favorites, 0 Comments

A Binary Watch

Binary Watch
FX1QTEEMHMCKUPV.jpg
FHJU2CDMHMCKUQJ.jpg
FPH02KZMHMCKUPH.png

Hello, this instructable is about a project that I made: Binary Watch.

What does it do? Well, it is a wristwatch that displays the time in binary form with only 5 LEDs.

The concept of a binary watch isn’t entirely new, but I wanted to make my own version, and I’m excited to share it with you. This project was relatively simple in terms of its core functionality, but I’m really happy with how the final product turned out, as you can see above. This is actually the second version of the watch. I had built a first version earlier, but it had significant issues with time accuracy due to the lack of a real-time clock (RTC) module. The first version was good for experimentation, but it was too inaccurate to be practical for everyday use. This second version solves that problem with a more precise RTC, making it a much more reliable timepiece.

Here is the link to the GitHub repo: https://github.com/bolanxu/binary_watch

Supplies

Hardware Components

  1. 1x - STC15W204S microcontroller https://www.stcmicro.com/stc/stc15w204s.html (Chinese c51)
  2. 1x - DS1302 Trickle Charge Timekeeping Chip (SOP8 Package)
  3. 1x - 32.768KHZ Crystal Oscillator (DIP)
  4. 6x - 100 Ohms SMD Resistors (0603 package)
  5. 6x - SMD LED, color of your choice, (0603 package)
  6. 2x - SMD Mini Pushbutton (something like this https://www.sparkfun.com/mini-pushbutton-switch-smd.html):
  7. 3V Coin Battery Holder (something like this: https://www.amazon.com/RuiLing-CR2032-Button-Battery-Holder/dp/B07PNK5D6H)
  8. CR2032 Coin Battery or similar
  9. 3D Printed Case (See below)
  10. A piece of cloth

Building the Harware

binary-watch-pcb.png
binary-watch-schematic.jpg

Make PCB

You can download the file directly from GitHub here:

binary_watch_gerber.zip

After downloading:

  1. Unzip the file to see the set of .gbr and .drl files — those are the manufacturing files your PCB fabricator needs.


Gather Components

You’ll need the parts listed in the project (resistors, LEDs, microcontroller, coin cell holder, etc.).

  1. Make sure to not include R7 and R8 — they’re optional or unused.


Solder Components

When your PCB arrives:

  1. Identify each part’s placement using the schematic and silkscreen labels printed on the board.
  2. Pay close attention to LED polarity:
  3. Use a multimeter to identify
  4. Use a fine-tipped soldering iron and work from smallest components (resistors, LEDs) to largest (microcontroller, battery holder).
  5. Double-check orientation on ICs.


Install the Coin Battery Holder

  1. Solder the holder’s positive and negative pins to the power pads on the PCB.
  2. Refer to the schematic and silkscreen marks (+ and –) to ensure correct polarity.


Your binary watch hardware should now be complete!

Software: Programming

Now that your hardware is assembled, it’s time to load the firmware onto the board and get the watch running. In this step you’ll compile the code, program the microcontroller, and verify everything works.

Gather the software tools

  1. Download the source code from the GitHub repository: https://github.com/bolanxu/binary_watch/tree/main/src
  2. You will need the following tools:
  3. SDCC installed.
  4. stcgal installed.
  5. A programmer/debugger that supports the STC15 series (I use USB-to-UART).


Compile the firmware

  1. Compile the project using
$ sdcc main.c -c delay.rel ds1302.rel
  1. The result should be a .ihx firmware file ready to be loaded into the microcontroller.


Upload To Microcontroller

  1. Attach the programmer/debugger to the board, (G-GND, T-TxD, R-RxD).
  2. But battery into holder.
  3. Run command on computer to upload (Change the internal clock speed to your preference).
$ stcgal main.ihx
  1. Cycle power (connect the GND in and then unconnect it).


Initial Test and Verification

Do you see the LEDs should display a chaser (from left to right) at startup?

If so you have successfully completed the electronics part of this project!


Case and Final Assembly

Now that your binary watch is soldered and programmed, let’s give it a stylish and durable case! This will protect your circuit and make it wearable.


Download the STL model files for the case from the GitHub repository: https://github.com/bolanxu/binary_watch/tree/main/3D_model

Creating the Case

  1. Slice the model using your software (Cura, Prusa, etc.)
  2. Print it on your 3D printer


Final Assembly

  1. Place the PCB (with all components soldered and tested) inside the 3D-printed case.
  2. Secure it with 4 small screws (the updated case design includes screw holes — the video may show an older, snap-fit design).
  3. Insert the coin cell battery if you haven’t already.
  4. Attach your strap:
  5. You can use an adjuster, buckle, Velcro band, or simple loops — whatever fits your style.
  6. Thread or fasten the strap securely to the side slots on the printed case.


Show It Off!

Congratulations — your binary watch is now complete!

  1. Power it on and admire the LEDs displaying the time in binary form.
  2. Show it off to your friends and explain how to “read” binary time.
  3. You’ve now built your own fully functional binary watch — both electronics and design!

How to Use and Adjust Your Binary Watch

Now that your binary watch is built, programmed, and cased up, let’s learn how to use it day-to-day and adjust the time when needed.

Adjusting the Time

Your watch has two buttons:

  1. SEL — the left button (used to select or increment)
  2. MOD — the right button (used to switch modes)


To set the time:

  1. Press and hold the SEL button (left side) for about 3 seconds.
  2. All LEDs will flash twice, this means you’ve entered adjustment mode.
  3. Now you can adjust the hours:
  4. Each short press of SEL increases the hour by 1.
  5. When the correct hour is set, press the MOD button (right side) once to switch to minutes.
  6. Use SEL again to increment the minutes.
  7. When both hours and minutes are set, press MOD once more to exit adjustment mode.

The watch will automatically save your new time and return to normal operation.


To learn how to read the watch see the next step (Step 5).


Viewing the Seconds

  1. Press the MOD button once → the LEDs will show a live binary seconds display.
  2. Press MOD again → the seconds display will turn off, returning to normal operation.


How to Read the Watch

Now that your binary watch is assembled and running, you might be wondering: how do you actually read the time in binary? Don’t worry, it’s simpler than it looks!


Understanding Binary

Binary numbers use only two digits: 1 and 0.

Each LED on your watch represents a bit (binary digit):

  1. LED ON = 1
  2. LED OFF = 0

Each bit has a value that doubles as you move from right to left:

1, 2, 4, 8, 16, 32, ...

By adding up the values of the LEDs that are ON, you can find the number they represent.


Reading the Time

There are 5 LEDs arranged in a row:

When you press the SEL button on the left it first displays hours and then minutes.

Hours

32 16 8 4 2 1

⚫⚫🔴🔴⚫⚫ (0 0 1 1 0 0)

8 + 4 = 12

Minutes

32 16 8 4 2 1

⚫🔴⚫⚫⚫🔴 (0 1 0 0 0 1)

16 + 1 = 17

So in this example, the LEDs show 12:17.


I've attached a chart pdf below for more reference.

Conclusion

Binary Watch

Congratulations — you’ve just built your very own Binary Watch!

You’ve gone through the full process of:

  1. Designing and fabricating your PCB
  2. Soldering all the components
  3. Programming the microcontroller
  4. 3D printing a custom case
  5. Learning how to read and adjust binary time

Not only do you now have a fully functional timepiece, but you’ve also built something that’s unique, educational, and conversation-starting. Reading binary time might seem geeky at first, but it’s actually a great way to show off your electronics and coding skills.

Now you can proudly wear your creation, customize the firmware, or even design your own variations (different LED colors, alternative layouts, or custom straps).

Share Your Build!

If you make your own version of this project, share a picture or remix it — I’d love to see your creativity! Upload your photos or improvements to the Instructables comments, or fork the GitHub project to add your personal touch.