December 21st, 2021—
With just an infinite tape, a head that can read or write, a state, and some rules, Turing machines (TMs) are capable of running any computer program. So, after winning a NeoPixel ring in a competition, Mark Wilson wanted to implement his own Turning machine using just a few RGB LEDs and a single Arduino Nano.
When his aptly named Turing-ring starts up, an initial state and cell values on the tape can be loaded from either internal program storage or over a USB serial connection. From there, the TM can be further modified or run in order to perform a given task. Furthermore, a user can input their own states (denoted by LED colors) onto the tape by turning a rotary encoder and pressing down to confirm their choice. The speed at which the machine iterates through each step is controlled from either the menu or by rotating the dial when a program is running.
Wilson produced a great video (shown below) that demonstrates how one might create a program. In it, his first example is a simple chase sequence that spins a red pixel around the ring, while the second example adds two binary numbers and displays the result.
To read more about the Turing-ring, check out Wilson’s write-up here on Hackaday.io or his code on GitHub.