Digital Piano

A pitch-controlled electronic instrument built with an NE555 timer, potentiometer, buzzer, and push button.

I built a simple pitch-controlled electronic instrument around an NE555 timer. Turning the potentiometer changes the oscillator frequency and therefore the pitch produced by the buzzer, and a push button controls when it sounds.

Final prototype

Final prototype. Watch the video demonstration.

How it works

The NE555 is configured as an oscillator by connecting its TRIG (pin 2) and THRES (pin 6) inputs. The capacitor repeatedly charges and discharges through the timing resistances, causing OUT (pin 3) to alternate between high and low and generate a square wave.

The potentiometer makes up part of that timing resistance, so turning it changes the frequency of the square wave, and the buzzer’s pitch with it.

Starting point

The class provided a circuit diagram and a working breadboard prototype in TinkerCAD, which I used as my starting point.

The TinkerCAD version worked, but its fixed component spacing led to several long or redundant connections. Before adding new behavior, I wanted to make the circuit easier to trace.

Original circuit diagram for the NE555 piano
Original TinkerCAD breadboard prototype
Reference circuit and TinkerCAD prototype provided in the NTU Maker Club lecture.

Design iterations

1. Simplifying the breadboard layout

My first change was organizational rather than functional. I removed unnecessary jumper wires when components could connect directly—for example, replacing a wire-resistor connection with the resistor itself—and shortened other component chains.

I also grouped related components into clearer rows and columns. The circuit behaved the same way, but the cleaner layout made its connections easier to follow and debug.

Simplified breadboard layout. Watch the video demonstration.

2. Adding visible feedback

Next, I tried replacing one of the 1 kΩ resistors with an LED so the circuit gave a visible cue as well as sound.

An LED isn’t electrically equivalent to a resistor, so the swap changed how the oscillator behaved, and I could watch that happen while turning the potentiometer.

By changing one of the resistors to an LED, firstly, the pitch range of the buzzer changed. The brightness of the LED also provided a visual indication of the current passed through, where a higher pitch (higher frequency) corresponded to a brighter LED. This allowed for a more intuitive understanding of the relationship between the potentiometer’s position and the resulting sound and light output.

Experiment with an LED in the circuit. Watch the video demonstration.

3. Improving the interaction

In the earlier versions, I started and stopped the sound by making or breaking a connection with a loose wire. For the final iteration, I added a push button, so playing a tone is now just a press.

It’s a small circuit change, but it’s the one that made the prototype feel like an instrument someone could play instead of an electronics demo.

What I learned

Not every iteration needs to add functionality. The breadboard cleanup didn’t change what the circuit did, but it made the connections easier to reason about. The push button only controls a sound the circuit could already make, and that’s what made it playable.