Create project Need help?
Show more (3)

Random Number Generator [150116]

Status: Finished
May 6, 2013, Latest update: October 11, 2016

Uses Zener diodes to generate avalanche noise signal, then differential amplifier (and a few analog filters) to eliminate deterministic effects. The noise signal is captured by ATTiny2313 and sent to an FAT32 SD card as a sequence of meaningless hex numbers. I tested random number sequences in MATLAB to check for randomness. I designed and produced a prototype PCB (that you can see in attached photos and PCB layout in .pdf  in natural size to check for dimensions. In the same .pdf file there is still unfinished PCB for my nixie-VFD guitar tuner, also in natural size). This RNG is designed with cheap and ubiquitous copmponents and still creates random sequences of good randomness. I tried all the methods that I know to analize the random sequences. If you know more about mathematical methods for checking the randomness of the sequence, you could be interested to check yourself. I have the circuit schematics drawn on paper.

Corrective filter has been added to RNG3 (simplified RNG2 without boost converter, powered by 2x 9V batteries) to equilize frequencies of 8-bit raw random values - this is now RNG4 on perfboard. For easier adjustment of analog filters, a simple spectrum analyser with ATmega8 and 2x16 LCD was designed and tested.

The final version is RNG5, which will be published in Elektor Magazine, together with the accompanying Bit Stream Analyser.

Random numbers are used in applications like cryptography, gaming & gambling (search document for RNG). They can also be used to estimate the value of PI.

Read the full post
Show less


prototype PCB with SD card holder removed
prototype PCB, bottom side
RNG4, on perfboard, added a frequency correction filter
RNG4 with spectral analyzer connected, for adjustment of  analog filter
Loading comments...