Category Archives: PCB Design

Nixie Tube Clock

Design files for this project can be found here (board + firmware), here (3D model).

Ever since I started dabbling in electronics, I’ve wanted to build myself a Nixie tube clock completely from scratch. Building one isn’t easy though given the various barriers to entry: the high cost of Nixie tubes ($10-$50 each), high voltages for driving the tubes (~170V+), designing the PCB, the desire for an nice enclosure that isn’t 3D printed or made out of laser cut acrylic, etc. All together, it meant that I didn’t have the time, knowledge, or resources for this project until now.

In order to increase the probability that this project reaches completion, the feature list was kept as low as possible while still aiming for a working clock that I can build upon in future iterations. As such, the Nixie tubes themselves must be easy to source, which rules out expensive and/or rare tubes that are difficult to come by. The goal of this project is to create a basic clock, so only four digits are needed along with a digit separator. The power supply must be efficient, and should be powered off of USB-C if possible. Being a clock, RTC functionality along with the ability to keep time even when disconnected from power will naturally be required. Finally, the enclosure must be well designed, heavy, and preferably machined out of stainless steel, copper, or brass.

Continue reading Nixie Tube Clock

RGB LED Cube Improvements

The original post for the LED cube can be found here

While the LED cube itself is pretty much finished, I recently had a chance to add a few new features and improvements to both the code and hardware. The main hardware improvement so far is a cube-to-Cerebot adapter PCB that replaces the interconnecting cable between the processor board and cube PCB. On the software side, I implemented a custom Ethernet driver that allows a user to read and process raw Ethernet packets. Using this driver, I added a new API that allows any external computer capable of writing raw Ethernet packets to control the cube. I also wrote the corresponding Python API that runs on any Linux machine with root.

Continue reading RGB LED Cube Improvements


The latest code base for the LED cube can be found here

11/12/2013 – Updated code to use the WDT
12/12/2013 – Added support for controllers as well as Snake and Tron game modes

One of the projects that I’ve been working on for the last four months or so is an 8x8x8 RGB LED cube. After looking up some designs online of what others have built, I decided to design and build my own version. Instead of something shoddily put together, I wanted to build a display that could be put outside of one of the introductory lab rooms for other students to program and play around with. Thus, my design had a few goals:

  1. It had to look professional. This meant that the overall cube should be structurally sound and a proper PCB should be designed for the driving circuitry.
  2. It had to be fast. Since some sort of multiplexing would be needed to drive 512 LEDs, I wanted the cube to have at least 240Hz* refresh rate at the very minimum.
  3. It had to be driven from a microcontroller that is used in introductory classes. This meant that it had to be driven from a Digilent Cerebot 32MX7 board that is used to teach microprocessors here at Virginia Tech. While the cube itself isn’t limited to a specific microcontroller, by using this board I can write a baseline for the code from which other students can then easily build off of.
  4. It had to look impressive.

* – There’s actually a notable difference when driving the cube at 60Hz vs 240Hz.

Continue reading RGB LED Cube


Before I start posting what I have been working on, I’ll start off with some pictures of surface mount soldering that I worked on last semester.

Some embedded boards and sensors that I have working code for:

Some 3D printed designs:

Custom PCB designs:

Once I have some free time, I’ll put out some more information on the stuff above. I also have some more things that I’m currently working on so stay tuned for more!