Skip to the content
4 layers92.7 × 63.1 mm555 doom kicad, the printed circuit board in 3D

The circuit plays the opening riff from "At Doom's Gate" without a microcontroller, computer, or any software.

Size
92.7 × 63.1 mm
Copper layers
4
Thickness
1.6 mm
Parts
89
Nets
85
Pads
282
Tracks, vias
502, 59
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
7 Sep 2026
Updated
19 Sep 2026

Overview

555 doom kicad is an open-source printed circuit board by nickbild, from the nickbild/555_doom_pcb repository on GitHub, published under the MIT licence. It is a 4-layer board of 92.7 × 63.1 mm with 89 parts on 85 nets, routed with 502 tracks and 59 vias.

It is built around the LM386, CD4066BE and NE555P, with the 74HC14 and 74LS161DC among its other parts. Its parts include 33 resistors, 21 diodes, 14 capacitors, 8 ICs and 2 transistors.

Main components

5

README

README.md

Playing Doom on 555 Timers — Pt. 2

This circuit plays the opening riff from "At Doom's Gate" using 555 timers, 7400-series logic, and some resistors and capacitors. It does that without a microcontroller, computer, or any software whatsoever.

The first version was built on breadboards, but I wanted to turn it into something more permanent.

The new version puts the entire circuit on a custom PCB. I also replaced the PAM8302 module with an LM386 audio amplifier and added six LEDs that show which musical note is currently being played.

The KiCad design files can be downloaded here.

Check out the video on YouTube:

How It Works

The basic operation hasn't changed from the breadboard version.

The circuit can be divided into five main sections:

  • Tempo clock
  • Sequence counter and decoder
  • Diode note matrix
  • Pitch selection and audio oscillator
  • Audio amplifier

The signal moves through the circuit like this:

text
555 tempo clock
      |
      v
   74LS161
binary counter
      |
      v
   74LS154
4-to-16 decoder
      |
      v
1N4148 diode matrix
      |
      v
   74HCT14
      |
      +----> note LEDs
      |
      v
2 x CD4066
analog switches
      |
      v
555 audio oscillator

Setting the Tempo

The first NE555 is configured as an astable oscillator. A capacitor repeatedly charges and discharges through its timing resistors, causing the output to continuously switch between high and low.

This oscillator runs at approximately 7.33 Hz, producing a new clock pulse about every 136 milliseconds. A trimmer potentiometer allows the tempo to be adjusted while measuring the output frequency with a multimeter, oscilloscope, or logic analyzer.

This 555 doesn't generate any sound. It simply tells the rest of the circuit when it is time to advance to the next note.

Counting Through the Riff

The clock signal goes into a 74LS161N four-bit binary counter. Each pulse increments the counter by one.

Its four outputs feed a 74LS154N 4-to-16 decoder. The decoder turns the binary count into individual outputs, giving the circuit a separate electrical signal for every position in the riff.

The 74LS154 outputs are active-low. When the counter is at zero, Y0 goes low. On the next count, Y1 goes low, followed by Y2, Y3, and so on.

There are 16 possible states, but this section of the riff only uses 15. Y15 is therefore connected through a pair of 2N3904 transistors to the active-low CLEAR input of the counter. Reaching Y15 resets the 74LS161 to zero, and the sequence begins again.

A pushbutton provides a way to reset the sequence manually as well.

Storing the Music With Diodes

Knowing the current position isn't enough. The circuit also needs to know which note belongs there.

That's the job of the 1N4148 diode matrix.

There are 15 positions in the sequence but only six different pitches:

  • E2
  • B♭2
  • B2
  • C3
  • D3
  • E3

Each decoder output is connected through a diode to one of six note buses. If several positions play E2, for example, all of those decoder outputs have diodes leading to the E2 bus.

The diode matrix is effectively the circuit's musical memory. There isn't a ROM containing a list of notes or software deciding what comes next. The sequence is encoded directly into the wiring.

Each note bus normally sits high through a pull-up resistor. When a decoder output is selected, it goes low and pulls the appropriate note bus low through its diode.

Selecting a Note

The CD4066 analog switches used in the next stage need an active-high control signal, so the six note buses first pass through a 74HCT14 hex Schmitt-trigger inverter.

A selected note enters the HCT14 low and comes out high.

Each of those six outputs controls one bilateral switch inside a pair of CD4066 chips. Each switch, in turn, connects a different resistor and trimmer combination into the timing network of the second 555.

Only one pitch network is selected at a time.

The second 555 is another astable oscillator, but this one runs at audio frequencies. Its timing capacitor charges and discharges through the selected resistance, determining the frequency produced at its output.

Larger resistance values produce lower frequencies, while smaller values produce higher frequencies. That's how the same 555 can generate all six notes.

Adding Note LEDs

The PCB version adds an LED for each of the six pitches.

These are connected to the active-high note-select outputs from the 74HCT14. When one of those outputs goes high to activate its CD4066 switch, it also illuminates the corresponding LED.

That means you can now watch the circuit step through the music as well as hear it.

Connecting the indicators here also keeps them away from the second 555's analog timing network. The LEDs are monitoring the digital control signals rather than loading the resistor and capacitor network that determines pitch.

Tuning the Six Notes

The pitch resistors get the oscillator reasonably close to the desired frequencies, but fixed resistor values aren't accurate enough to tune the circuit by themselves. Component tolerances, the timing capacitor, the 555, and the CD4066 switches can all affect the final frequency.

Each pitch therefore has its own trimmer potentiometer.

The easiest way to tune them is to temporarily take the sequencer out of the equation and manually activate each CD4066 switch.

Turn off the power before removing or installing an IC.

First, remove the 74HCT14 from its socket. This disconnects the normal note-select signals from the six CD4066 control inputs. Each of those inputs has a 100 kΩ pull-down resistor, so with the HCT14 removed, all six switches default to off.

Power the board again and connect the ground lead of a frequency meter, multimeter with frequency mode, oscilloscope, or logic analyzer to circuit ground. Measure the output at pin 3 of the audio 555.

To tune a pitch, connect +5 V to the CD4066 control input for that note. This turns on only that analog switch and connects its resistor network to the audio 555.

The oscillator should now continuously generate that note.

Adjust the corresponding trimmer until the measured frequency is as close as possible to the target.

Repeat the process for all six pitches.

NoteTarget FrequencyCD4066Control Pin to +5 V
E282.41 HzCD4066 #1Pin 13
B♭2116.54 HzCD4066 #1Pin 5
B2123.47 HzCD4066 #1Pin 6
C3130.81 HzCD4066 #1Pin 12
D3146.83 HzCD4066 #2Pin 13
E3164.81 HzCD4066 #2Pin 5

For each note, temporarily connect +5 V to the control pin shown above, adjust that note's trimmer while watching the measured frequency, and stop when it matches the target as closely as possible.

Remove the +5 V connection before moving on to the next note. Only one CD4066 control input should be driven high at a time.

Once all six pitches are tuned, turn the power off, reinstall the 74HCT14 in the correct orientation, and power the board back up. The sequencer can now select the calibrated pitches automatically.

The same basic approach can be used to set the tempo. Measure pin 3 of the tempo 555 and adjust its trimmer until the clock is approximately 7.33 Hz.

Replacing the PAM8302

The breadboard prototype used a PAM8302 amplifier breakout board. It worked well, but using a module on the finished PCB seemed unnecessary when the amplifier could be built directly into the board. It also doesn't quite match the retro feel of the rest of the circuit.

I replaced it with an LM386, a small audio amplifier IC that only requires a handful of external components.

The square-wave output from the audio 555 passes through a coupling capacitor and a volume potentiometer before reaching the LM386 input. The coupling capacitor blocks the DC component of the 555 output, while the potentiometer allows the signal level — and therefore the volume — to be adjusted.

The LM386 amplifies that signal enough to drive the speaker. Its output passes through a large electrolytic coupling capacitor before reaching the speaker, since unlike the PAM8302 module, the LM386 output has a DC bias that needs to be blocked.

About the Author

Nick A. Bild, MS

Parts

89
QtyValueFootprintReferences
151N4148Diode_THT:D_T-1_P5.08mm_HorizontalD1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15
1010KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR2, R5, R7, R8, R9, R10, R11, R12, R13, R26
7100KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR4, R14, R16, R18, R20, R22, R24
60.1uFCapacitor_THT:C_Disc_D4.7mm_W2.5mm_P5.00mmC1, C4, C6, C7, C8, C13
61KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR15, R17, R19, R21, R23, R25
20.01uFCapacitor_THT:C_Disc_D4.7mm_W2.5mm_P5.00mmC3, C10
21uFCapacitor_THT:C_Disc_D4.7mm_W2.5mm_P5.00mmC2, C9
22N3904Package_TO_SOT_THT:TO-92_Inline_WideQ1, Q2
24.7KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR3, R6
247KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR29, R30
2CD4066BEPackage_DIP:DIP-14_W7.62mmU5, U6
2NE555PPackage_DIP:DIP-8_W7.62mmU1, U7
110Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR33
1100K VolumePotentiometer_THT:Potentiometer_ACP_CA9-H5_HorizontalRV8
1100uFCapacitor_THT:CP_Radial_D5.0mm_P2.50mmC14
110K C3Potentiometer_THT:Potentiometer_ACP_CA9-H5_HorizontalRV5
110K D3Potentiometer_THT:Potentiometer_ACP_CA9-H5_HorizontalRV6
110K E3Potentiometer_THT:Potentiometer_ACP_CA9-H5_HorizontalRV7
1200K TimingPotentiometer_THT:Potentiometer_ACP_CA9-H5_HorizontalRV1
120K B2Potentiometer_THT:Potentiometer_ACP_CA9-H5_HorizontalRV4
120K Bb2Potentiometer_THT:Potentiometer_ACP_CA9-H5_HorizontalRV3
120K E2Potentiometer_THT:Potentiometer_ACP_CA9-H5_HorizontalRV2
1220uFCapacitor_THT:CP_Radial_D5.0mm_P2.50mmC11
133KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR32
139KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR31
1470uFCapacitor_THT:CP_Radial_D8.0mm_P2.50mmC5
147nFCapacitor_THT:C_Disc_D4.7mm_W2.5mm_P5.00mmC12
151KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR28
174154Package_DIP:DIP-24_W15.24mmU3
174HC14Package_DIP:DIP-14_W7.62mmU4
174LS161Package_DIP:DIP-16_W7.62mmU2
175KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR27
1768Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1
1LED B2LED_THT:LED_D5.0mmD18
1LED Bb2LED_THT:LED_D5.0mmD17
1LED C3LED_THT:LED_D5.0mmD19
1LED D3LED_THT:LED_D5.0mmD20
1LED E2LED_THT:LED_D5.0mmD16
1LED E3LED_THT:LED_D5.0mmD21
1LM386Package_DIP:DIP-8_W7.62mmU8
1PowerConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ1
1SW_PushButton_Switch_THT:SW_PUSH_6mm_H7.3mmSW1
1SpeakerConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ2

Similar boards

  • 2 layers124.3 × 131.7 mmMegaDuck SJC, the printed circuit board in 3D

    MegaDuck SJC

    ManCloud/MegaDuck_SJC

    WIP - Reverse Engineering Project of the MegaDuck Super Junior Computer

    102 parts2GPL-3.0
  • 2 layers50 × 100 mmNoise pcb, the printed circuit board in 3D

    Noise pcb

    npaige751/synth_modules

    KiCAD designs for modular synthesizer modules

    70 parts
  • 2 layers143.3 × 77.5 mmPedisk, the printed circuit board in 3D

    Pedisk

    mnaberez/pedisk2

    Reverse engineering the CGRS Microtech PEDISK II disk system for Commodore PET/CBM computers

    43 parts3
  • 2 layers190.5 × 127 mmSBC4040, the printed circuit board in 3D

    SBC4040

    ryomuk/SBC4040

    Single Board Computer using Intel 4040

    149 parts3MIT
  • 2 layers137.2 × 76.2 mmTD4, the printed circuit board in 3D

    TD4

    s5suzuki/TD4

    55 partsMIT
  • 2 layers109.2 × 106.7 mmCPU, the printed circuit board in 3D

    CPU

    GeraKuznetsov/M68K-MBC

    A M68k Multi-Board Computer design. The design basics is as follows: 1) A backplane PCB contains the majority of the bus, such as the address and data lines. 2) Cards slot into the backplane.

    69 parts10
  • 4 layers86.5 × 75 mmVGA SRAM COMP, the printed circuit board in 3D

    VGA SRAM COMP

    levvayner/VGA_PLD

    If choosing the former, follow Atmel's instructions using the included .pld files. If chosing the latter, you can open the workspace and you will see both projects. You can build and deploy the projects right from Code!

    51 parts4
  • 2 layers149.9 × 74.9 mmAbn6502, the printed circuit board in 3D

    Abn6502

    kitspace-test-repos/kicad6-file-collection

    93 partsMIT

Questions

How big is the 555 doom kicad PCB?

It measures 92.7 × 63.1 mm and has 4 copper layers, 1.6 mm thick.

What parts does the 555 doom kicad use?

89 parts, built around the LM386, CD4066BE, NE555P and 74HC14. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the 555 doom kicad KiCad files?

From the nickbild/555_doom_pcb repository on GitHub, at the commit this page was made from: the board is 555_doom_kicad/555_doom_kicad.kicad_pcb and its schematic 555_doom_kicad/555_doom_kicad.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the 555 doom kicad design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).