A Clock With 128 Soviet-Era VFD Tubes, Two AIs And No Human Coding
By Cliff Lasser, Claude (Anthropic AI) and Claude (Anthropic AI)
This section is written by Cliff
This is Yet Another Clock Project. So what's different about this YACP? Two things, I think: First, this uses a ridiculous number (128) of Soviet-era IV-25 VFD tubes. Second, Claude, with my guidance, did all the programming of the Arduino Nano ESP32 without my ever writing or even looking at a single line of code. All debugging was accomplished via English interactions with Claude. This is a demonstration of the capabilities of AI as of April 2026 (and will likely look quaint by April of 2027).
I will start describing my experience with Claude, then go on to the hardware project, then give the two Claude’s their turn telling their stories.
Working with Claude
"Vibe coding" is all the rage at this point in time (May 2026). I took the opposite approach: I wrote detailed specifications (about 15 pages) for the hardware and software architecture and iterated and perfected them with Claude. When Claude had no more comments or questions, I asked Claude to generate code for the Arduino ecosystem. The code, originally about 3500 lines, compiled and ran correctly on the very first try with one issue – the display was rotated 180 degrees. Turns out I had not properly described the geometry of the displays.
Once the display geometry was straightened out, I proceeded to add additional capabilities, such as dimming in low light, detection of motion in front of the clock to turn on/off the displays, a more gentle powering up/down of the filaments in the VFD tubes to reduce thermal stress and prolong their lives, and additional information to be displayed on the tubes along with scrolling animations.
All these things were accomplished through text dialogues with Claude. I described what I was trying to accomplish and sometimes how I thought it should be done. I often iterated with Claude to perfect my thinking before asking Claude to generate code. And if the code did not perform as expected, I would describe to Claude what behavior I saw, and maybe my thoughts on what might be the problem. Through this entire process, I never once looked at the code, let alone wrote a single line. At the time of this writing, the program is over 8000 lines long.
Collaboration between two Claude sessions and one human
As part of this experiment, I decided that I would try to modularize the code so that multiple sessions could work together but independently, just like real software engineers. Actually, I didn’t do the modularizing, I asked Claude to do it. I picked the generation of the pixels to put on the tubes as a good candidate and asked Claude to structure the code to make it have a clean interface, and then to generate an interface document. I then fed the document to a new Claude session that knew nothing about the code generated by the first Claude session.
This new Claude session informed me that it wanted to “talk” with the other session. We agreed that I would pass Microsoft Word documents back and forth, which I did multiple times as the two sessions figured things out between them. I quickly gave up on reading these documents and just let them do their thing. Which they did!
Hardware challenges and design
There were a couple of significant physical challenges with this project. First, 128 tubes is over 3 feet wide – too big for a single board. Second, the seven phosphorescent dots on each IV-25 tube all have different brightness. In fact, the quality of these tubes on eBay varies greatly.
I addressed these issues by breaking up the system into eight identical PC boards with 16 tubes each. After wasting time and money on IV-25 tubes, I found I could buy IVLM1-1/7 tubes (plug compatible, and from 1984 to 1991 – all Soviet era) in much better condition for about the same price.
Each...
Read more »