top of page


What time is it?

Amber o'clock-ish (?)

Once upon a time I was intimidated by the command line. Today, I get annoyed when I can't use Vim.


Progress is happening. In 2014, prior to becoming a software engineer, I started programming ColorClock using Processing to map the system time to a colored eclipse displayed on my computer screen. Six years later, in 2020, I dabbled in this project a little more to entertain myself during the early months of the pandemic. I cringed at my previous work as I refactored the code into functions. And today, I’m refactoring further, making the code more modular and porting it into C++ / Arduino.


Since I picked up ColorClock again about a month ago (May 2022), I have been coding at work using Vim because it improves my workflow. My fingers never have to leave the keys so it's easier for me to become deeply immersed in the task at hand. But the Arduino IDE does not have a Vim extension. Going back to this coding environment was painful 😣


The time had come to explore the Arduino Command Line Interface (CLI). I was holding back because though I had become proficient in command line computing, a part of me felt intimidated again.


Despite my hesitation to explore the Arduino CLI, the drive to improve my development workflow motivated me to just RTFM. And so I did. And now I'm done with the Arduino IDE. Because the Arduino CLI is working 🌻beautifully🌻


This past weekend I found my flow again. Now I can code, compile, and upload my program to the Arduino board without ever letting my fingers leave the keyboard 🥳


CLI - command line interface

IDE - integrated development environment

RTFM - read the friendly manual

Vim - a command line text editor with a steep learning curve that makes many people upset and can drastically improve your workflow if you are committed to practice

When starting out, avoid getting caught up in the details of implementation, and instead invest your energy in preparing to show up.


Imagine you are getting ready to do the thing. Ask yourself:


1. What equipment do I need?

2. What am I going to wear?

3. Do I need to fuel myself?


What can you prepare in advance to minimize obstacles to follow through?


For me, showing up means going to the makerspace to work on my ColorClock. I prepare by packing my bag with my computer, and my tool box with my electronics. I plan to change out from my work clothes, and to make sure I pack dinner for me and treats for Trevor (doggo).


So, what we are looking at here is a digital display showing the current minute and second that is tracked by my clock module 🤓

Circuit Diagram

I've wired up the clock module along with the debugging display. Here's where I'm at.

Software Repository

All code is hosted on my GitHub account.

This diagram illustrates the first iteration of the design. The host computer is a Raspberry Pi which runs the code to interface with the peripheral devices. Descriptions of the components listed below.


The RGB LEDs make up the heart of the piece - the main display light intended for audience view.

Raspberry Pi

The Raspberry Pi is the development computer used to do the data and signal processing. Note that final design will likely use an Arduino development board instead of a Raspberry Pi.


The PixelBlaze is a development board used to control addressable LEDs. It is possible that this component might not be used in the final design.

Clock Module

The clock module is an I2C device used to keep accurate time over long periods of time. It it possible that the clock module will not be used in the first iteration of the prototype.

Manual Time Set

The manual time set is a cluster of 4 buttons that allow the developer / artist to set the time manually. These buttons can also potentially be used to interface with the piece in additional ways, e.g. change the color profile, change cycle time.

Debug Display

This is a set of (4) 14-segment LED displays used to display the time or other items that the developer might want to view. This display is intended to be displayed on the backside of the piece so it is not visible to the public.

bottom of page