Introduction: Vortex Watch: an Infinity Mirror Wristwatch

The goal of this project was to create a wearable version of an infinity mirror clock. It uses its RGB LEDs to indicate time by assigning hours, minutes, and seconds to Red, Green, and Blue lights respectively and overlapping these hues to create primary, secondary, and tertiary colors that represent the time.

Some features:

  • A 3D printed titanium and resin case
  • Laser cut/engraved mirrored acrylic face
  • Battery charging circuit
  • Fuel gauge to keep track of its charge level
  • Two capacitive touch contacts on the side to act as the watch's interface and
  • A DS3231 real-time clock (RTC) for accurate time-keeping
  • Different programmable face styles
  • Set-time, battery charge level display, low-power sleep, and game modes


This project will require some familiarity with the following processes.

  • Surface-mount electronics assembly
  • Laser cutting/engraving (or a CNC router/mill)
  • AVR microcontroller / Arduino familiarity (installing a bootloader and programming the microcontroller)
  • 3D Printing / Design (this is optional if you want to make changes to the design or not use a printing service)

Tools required:

  1. SMT/SMD soldering equipment This will vary depending on what tools you are comfortable with using/can afford but for a general low-cost solution used to complete this project you can follow my other Instructable here:

    • A hot air gun is nice to have in case there is any rework that needs to be done after soldering
  2. AVR programmer or Arduino as ISP and a computer
  3. FDM/Resin 3D printer or use of online 3D printing services
  4. Laser Cutter/ CNC Router/ CNC Mill (or access to one of these)

Step 1: The First Component: Outer Casing

For this first component you will need access to a 3D printer/ 3D printing service (or if you want to get fancy a CNC mill).

This part was originally printed on a FDM printer during testing but the finished design is best printed in metal through one of the many online services available (Shapeways, i.materalise, etc.) .

I have included ready-to-print .stl to send to your printer or a printing service of choice. If you prefer you can also open the source .f3d files for the assembly and modify the base file to your liking. If you have never done a metal 3d print through a printing service do note that you may need to scale the model according to the material properties of the metal you are having printed. Always check the material guidelines and make sure that the machine's build volume can accomidate your design.

Step 2: Parts 2 and 3: Inner and Bottom Casing

Originally these two parts were also printed on my FDM printer but later I had these two parts printed on a SLA 3D printer in a translucent white resin. I choose this color/material to allow for some of the light to bleed out the side of the watch around where the buttons and USB port are located. You can use a FDM printer with clear or white filament for a comparable result to what is shown above. The inner casing shell needs to be printed in a non-conductive material so that the capacitive touch sensor can function correctly but the bottom shell has the option to be printed in plastic or metal.

Step 3: Additional Case Parts: Screws, Watch Crystal, Glue, and Band/Spring Pins

The "buttons" on this watch are two screws threaded through the inner casing to make contact with castellated edges on the PCB. These two screws are both M2.5x 6mm stainless set screws like these:

I used a 37mm x 1mm crystal but due to variations in final printing dimension you may want to wait until you have printed the outer casing before purchasing this so you can measure the exact size required.

And while you are purchasing the crystals it may be a good idea to pick up some watch crystal adhesive. This is what I ended up purchasing from the same site as the crystal and it did the job of adhering the crystal to the metal casing quite well.

The last thing to pick up while you are shopping here is a 22mm band of your choosing with matching 22mm spring pins. This is a fairly standard-sized watch band width so you can shop most watch stores for interesting bands.

Step 4: Watch Face

Included on this step are .svg .dxf and .cdr files that can be used by the laser engraving (or cnc mill/router) software to create the 3 watch face components. For the one-way mirrored acrylic and LED light panel sheet you can just have the laser cut the 35mm outline. The regular mirrored acrylic sheet will need to engraved through the mirrored backside to allow light from the LEDs to pass through to the top side of the watch. After this engraving step is completed cut the 35mm outline out like the other two pieces.

Three layers in order from top to bottom:

  1. 0.04 Inch Acrylic See-Through Mirror, 30% Transparent
  2. 1/16" Mirrored Acrylic Sheet
  3. LED Light Panel Sheet (for light diffusion)

Step 5: Printed Circuit Board

All you need to do in this step is upload the .brd file attached to OSHPark site and select the 2oz copper 0.8mm PCB option. If you do not select this option the other components will not fit inside the watch correctly.

To minimize height I went with the 2oz copper 0.8mm PCB option at OSHPark to keep the watch as thin as possible (and the extra copper is nice too). You will end up with 3 copies of this board as that is the minimum order from OSHPark so I would recommend ordering parts to make 3 watch boards in the next step. This is so you will have spares if anything goes wrong in the soldering/testing process.

It would also be a good idea at this stage to order a solder paste stencil to accompany your PCB order to make applying solder paste to each tiny pad significantly faster / more precise.

Finally, I have included the .sch file here as well in case you would like to modify the original design in EAGLE to your liking or export Gerber files to be sent off to a different PCB manufacturer

Step 6: Electronic Components

Attached is a .txt file Bill of Materials (BOM) exported from EAGLE with all of the necessary components listed to populate the PCBs you ordered in the previous step. You can order most of these parts or similar from online distributors such as Digikey and Mouser.

The exact parts I used are listed below but do be aware that you may need to find substitutes if these parts have become unavailable.

1× ATMEGA32U4-MUR Electronic Components / Misc. Electronic Components

1 × CSTCE8M00G55-R0 Frequency Control / Resonators

12 × WS2812B 3535 Addressable SMD RGB LED ( I believe these were sourced from a seller on ebay)

1 × DS3231MZ+ Clock and Timer ICs / Real-Time Clocks

3 × GRM155R70J105MA12D Capacitors / Ceramic

1 × MCP73831T-2ACI/OT Power Management ICs / Power Supply Support

1 × MIC5219 3.3V Power Management ICs / Linear Voltage Regulators and LDOs

2 × AT42QT1010-TSHR Semiconductors and Integrated Circuits / Misc. Semiconductors and Integrated Circuits

1 × 10118192-0001LF Connectors and Accessories / Telecom and Datacom (Modular) Connectors

1 × BSH103,215 Discrete Semiconductors / Diode-Transistor Modules

1 × GRM1555C1H471JA01D Capacitors / Ceramic

1 × LTST-C193TBKT-5A LEDs and Accessories / Light Emitting Diodes (LEDs)

4 × GRM155R61A104KA01D Capacitors / Ceramic

2 × GRM155R60J475ME47D Capacitors / Ceramic

1 × GRM155R71H222KA01D Capacitors / Ceramic

1 × GRM155R60J106ME15D Capacitors / Ceramic

1 × F980J106MUA Capacitors / Tantalum Electrolytic

1 × F980G226MUALZT Capacitors / Tantalum Electrolytic

1 × LTST-C193KRKT-5A Electronic Components / Misc. Electronic Components

1 × MAX17043G+U Power Management ICs / Power Supply Support

5 × RC0402JR-0710KL Resistors (Fixed) / Thick Film Surface Mount

3 × RC0402JR-07470RL Resistors (Fixed) / Thick Film Surface Mount

2 × RC0402FR-0722RL Resistors (Fixed) / Thick Film Surface Mount

1 × RC0402JR-071KL Resistors (Fixed) / Thick Film Surface Mount

1 × RC0402JR-075K1L Resistors (Fixed) / Thick Film Surface Mount

1 × Lithium Ion Polymer Battery LP402025 - 3.7v 150mAh

Step 7: Electronics Assembly

Just leaving this here so you don't need to scroll back up to Step 1 to find it. :)

Also attached is a helpful .pdf diagram with component names and locations you can refer to while placing parts on the board.

After the top components are have been successfully soldered using reflow you will need to manually solder the micro USB port and the Battery Leads on the back side of the PCB to the pads as shown in the second picture.

Step 8: Programming

Now that all of the components have been soldered down, lets move on to programming.

The first step in testing/programming the new board will be to bootload the device.The blank ATmega32u4 should be bootloaded as a Feather 32u4 board using the Arduino IDE and a in-system programmer (ISP) of your choosing. You can hold the device programmer against the six exposed pads on the underside of the PCB temporarily until the code is uploaded. Once the device is bootloaded upload the example Blink sketch to use the onboard test LED to verify that the device is functional and able to be programmed to.

Just download the latest Arduino .ino file from the github link below and open it in the Arduino IDE. You will likely need to change the default time in the sketch to match the current time at your location. Once this is set go ahead and upload the code to the newly assembled board.

The latest code can be found at:

I would also like give a huge thanks and shout-out to Jamal Davis for writing the software to make this all happen.

Step 9: Final Assembly and Completion

At this point you should have your programmed and tested circuit board, your laser cut watch face parts, your 3d printed case and assorted hardware for assembly.

  1. The first step to assembling the body of the watch is to carefully glue the watch crystal to outer shell. Apply a minimal amount of glue to the top of the inner ledge of the watch body and seat the crystal down. Adhere (pun intended) to the instructions included with the watch crystal glue and allow the glue to set fully before proceeding to the next step.
  2. Next you will want to insert the inner shell into the outer shell of the casing and insert the watch faces into the interior of the inner shell from the bottom. It is important that the watch faces remain as clean as possible during installation as any dust or blemish will be clearly visible. Consider leaving on any protective film on the laser cut pieces until just before this step and install with care to not get fingerprints on any of the transparent or mirrored surfaces.
  3. After these parts have been added you should seat the electronics into the case ensuring that the USB port is resting in the inner shell USB opening first and then proceed to lower the side opposite of the USB into place.
  4. Once the electronics are seated you can thread the two M2.5 x 6mm grub/set screws into the side of the case through the two openings opposite the USB port. These screws should rest bellow the watch's castellated edges and should hold the PCB in place.
  5. Next close up the watch by installing the back shell plate. This plate should press fit into place but you may need to do some scaling and reprinting until you find a snug fit that you are satisfied with.
  6. Once this is installed the final pieces to add are the watch spring pins and the strap. Depending on the 3d printing process used the holes printed to hold the spring pins may be undersized and will likely benefit from a quick reaming from a small drill bit.

If you have completed all of the steps up to this point you should hopefully have a pretty awesome looking watch in front of you. Congratulations!

Step 10: Future Possible Improvements

This section is just to note some things that either I did not get to implementing or could use improvement on future versions of the watch.

To Dos

  • Redesign watch casing to allow for back to screw on. Current version press fit can be a bit temperamental and relies to heavily on tolerance of the 3D printed pieces.
  • Add mode to change all LEDs to White temporarily so the watch can double as a flashlight.
  • Add extra material to the watch crystal ledge to allow the outer watch case to be machined in a secondary operation to near-perfect dimension.
  • Adding gaskets to the case design for better water-resistance.
  • Get compass/IMU IC online to allow for a compass mode and gesture-reactive awakening of the watch.
Wearables Contest

First Prize in the
Wearables Contest