← Back to Projects

Random Number Generator PCB

August 2026 · Rev B

Assembled Rev B random number generator board with ten numbered LEDs, the CD4017 and NE555, RESET and ROLL buttons, and an edge mounted USB-C connector

Overview

Press ROLL and ten LEDs blur together. Release it and one stays lit. The board is a digital die built from two pieces of 1970s logic with no microcontroller involved.

It was also the first board I assembled by hand, so it was specified around parts I could place with tweezers and an iron: 0805 passives, SOIC packages, nothing fine pitch. 41 components, 50 × 40 mm, two layers, 43 vias, all surface mount.

How It Works

An NE555 in astable mode runs as a free running clock and drives a CD4017 decade counter. The 4017 has ten outputs and asserts exactly one at a time, advancing on each clock edge, so ten outputs drive ten LEDs with no decoding logic needed.

The ROLL button gates the 4017 clock enable against a 10 kΩ pull-up. Held down, the counter runs at the 555 frequency, far faster than the eye can follow, so all ten LEDs appear lit at once. Released, the clock enable goes high and the counter freezes wherever it happened to be. RESET returns the counter to output zero.

The randomness comes from the gap between human reaction time and the oscillator frequency. It is not cryptographic randomness, since the counter is fully deterministic, but for picking a number from one to ten it is indistinguishable from it.

Design Notes

The silkscreen numbers the LEDs 1 through 10 and labels both buttons, so nobody needs the schematic in hand to use it.

Full schematic. Open it full size to zoom in.

Build Status

The Rev B board is assembled, with every part placed and soldered by hand including the 16-pin CD4017 and the edge mounted USB-C connector. It is the first board I built rather than only designed.

Electrical bring-up is still to come. The first checks are the 555 oscillation frequency against the calculated value, whether the 4017 advances cleanly on every edge without double clocking, and whether the clock enable genuinely holds the counter rather than letting it drift.