Introduction: Wireframe X-Wing Clock

About: Graduate student at ASU Polytechnic working on my masters degree in Manufacturing (MSE). Additive manufacturing materials researcher. Nuclear Survivability Electrical Engineer by day and student/nerd by night.

This sculpture was heavily inspired by the works of Mohit Bhoite. He has made several very interesting electrical pieces that he displays on both his website and instragram. I definitely recommend checking out his work. I saw his Tie Fighter designs and thought that it would be a lot of fun to attempt making an X-Wing version.




  • Arduino Nano (ATMega328P)
  • SSD1306 OLED 128x64 Display
  • DS3231 RTC Module
  • Diffused Red LED's
  • Clear Red LED's
  • 220 ohm Resistors
  • Speaker
  • Transistor
  • USB Cable
  • Panel Mount Slide Switches
  • Silver Plated Wire (20awg)


  • Walnut Wood
  • Danish Oil
  • Felt
  • Hot Glue
  • Small Screws


  • Soldering Iron and Solder
  • Solder Bulb
  • Hot Glue Gun
  • Utility Knife
  • Wire Cutters
  • Pliers
  • Drill
  • Drill Bits
  • Bandsaw
  • Sander and Sandpaper
  • USB Cable
  • Helping Hands
  • Screw Driver
  • Tacky Glue

Step 1: Prepping the Wire and Parts

For the wire to be usable, it first had to be straightened. I found that a drill and pair of pliers worked wonders. Before I soldered anything, I cut the pieces to size and formed them into the desired shapes. For each of the parts, I have included a DXF file and the Fusion360 file which was used as a reference for assembly. Make sure to print the DXF file out at a 1:1 scale. The amount of each part is indicated in the name of the file (ex. 4x means you need four of that piece). To get a nice sharp bend, hold the wire with a pair of pliers and bend it right at the point it is being held.

I decided to assemble the body in several steps. They are the core, nose/engine, and wings. While not necessary, this is the order of assembly that I found easiest when figuring it out.

Step 2: Core Assembly

First step in the core assembly is soldering the main piece of the body closed. This is the piece with the most amount of bends in it. Next, solder the pieces that also belong on the side. Each side piece includes one side, two side2, and one side3. Using the stencil DXF provided, solder then together as shown in the picture above.

To attach the two side pieces to each other, I soldered the body pieces at each of the vertices of the side panels. The body pieces are the one that there are seven of. I started by doing the two on the back first, to make it stable, and then worked my way up to the front.

After assembling the shape, I added wire to the ground pins of the Arduino Nano and connected it to the middle of the frame. The entirety of the frame is used as a ground plane for the circuit. It should be centered in the frame, closer to the back of the ship. After soldering the Arduino into the frame, I prepped the screen to be added on. The only step required for that was to add a piece of wire to the ground pin. This piece of wire then gets soldered to the frame, so that the screen is installed on the angled face. Wires for the SDA pin go to A4 on the Arduino, SCL get connected to A5, and 5V goes to 5V. To add the DS3231 module to the Arduino is a similar process for the screen. Solder a ground wire to the frame and then bend it at the same angle of the sloped edge. The data and power lines are connected to the lines of the screen connected to the same pins on the Arduino.

The speaker is connected slightly differently than the DS3231 and OLED screen. First step is to solder the transistor to one side of the speaker. I put my speaker on the bottom of the ship, near the front. The side of the speaker that doesn't have a transitor attached is connected to the frame, grounding it. The middle pin of the transistor is connected to pin 10 on the Arduino. The last remaining pin of the transistor is connected to the same 5V line as the DS3231 and OLED screen.

Step 3: Making the Nose and Engines

I put the engine LED's on before I put the nose on, but it doesn't really matter in which order they go on. For the individual engine LED's I added a 220 ohm resistor to the cathode of the LED and the other end of that resistor to a corner on the back of the frame (these resistors aren't necessary, I actually added them as an afterthought). The engines are controlled by two pins instead of four, as the speaker uses two out of the three timers, leaving only one for PWM. I connected the anodes diagonally (upper right to bottom left and vice versa) and then to the two analog write pins respectively. The two pins that I used for the engines were pins 5 and 6.

To attach the nose to the main body I attached the two larger nose pieces to the front of the body. During this I tried to attach them at as symmetrical of an angle as possible. After they were attached roughly well enough, use the smaller cut off nose sections to space them apart at the tip better and finish the shape of the body.

Step 4: Making the Wings

Before attaching the wings to the frame, I soldered the two pieces of the wing together as shown in the first image. I then soldered the cathode of the LED to the end of the wing. What I found easiest for attaching them to the assembly was to do it one at a time. When attaching the wings, I put them at about a 10 degree angle. Attach the wings, and then attach a second wire to the anode of the LED, and then to the resistor attached to pin 4 of the arduino. All of the LED's on the end of the wing are connected to the same pin of the Arduino through the resistor.

Step 5: Making and Installing the Base

Using my bandsaw, I cut a piece off of the walnut plank measuring about 2" x 2." The walnut I used was about 3/4" thick. While you can go thicker than this, I don't recommend going any thinner. I then rounded the corners and cleaned up the edges using a belt sander and some manual sanding. I then hollowed out the base of the piece of wood using a drill press. This could also be done with a chisel. The inside doesn't have to be perfect, as it will never be seen. I drilled out a hole in the back for the USB cable and a rectangle hole for the switches. For the rectangular hole I drilled it out and then brought it to the right shape using a jewelers saw and files.

To mount the X-Wing to the base I added wires to the bottom of it connected to the VIN pin, frame (the frame is grounded), pin 2, and pin 7. Using a 1mm drill bit I drilled holes for them in the top of the wooden piece. I connected the switches to pins 2 and 7. I connected each side of the switches to 5V and gnd. The ground and 5V lines of the wireframe are then connected to the 5V and ground wires of the USB cable. To ensure that the USB cable is secured in the base I tied a knot in it.

After soldering the connectors to each other, I filled the base with hot glue. This serves to isolate all of the wires and hold them in place. Make sure the glue forms a flat surface, flush with the bottom of the base. After the glue cooled off, I glued on a piece of felt using tacky glue. After the glue is dry, trim the felt to size using a utility blade.

Step 6: Setting the Time of the DS3231

To set the time of the DS3231 I used an example sketch from the DS3231 library and the serial monitor. Just as if you are programming the Arduino, plug it into your PC and upload the included sketch. Open the serial monitor and enter the command SETDATE yyyy-mm-dd hh:mm:ss

yyyy corresponds to the year, mm corresponds to the month, dd corresponds to the day, hh corresponds to the hour (in 24H time), mm corresponds to the minutes, and ss corresponds to the seconds.

When setting the time make sure that a battery is inserted into the DS3231 module so that it keeps the time when unplugging power.


Step 7: Programming the Arduino

To program the Arduino, plug it into your PC using the mini USB cable. Extract the rar file and open it in Arduino. Make sure that all of the files are in a folder titled X-Wing-Clock. There are other files than the ino needed and they have to be in the same folder as the ino. After checking everything upload the code to the Arduino.

Step 8: Operation

In the design of this clock I have included two switches. One switch enables/disables the speaker and the other is used for indicating daylight savings time.

The speaker is used for sound effects that I felt like adding for an additional effect. The first sound is the engine noise, and that plays randomly every ten to sixty minutes. The other effect goes with the "lasers" and is the laser noise. It plays at zero minutes, fifteen minutes, thirty minutes, and forty-five minutes. The "lasers" pulse with the sound when it plays.

Space Challenge

Second Prize in the
Space Challenge