# True Random Number Generator by using avalanche breakdown

I am trying to build a TRNG using avalanche breakdown for randomness. I am developing a circuit as looks like this.(https://web.jfet.org/images/rng-circuit.gif)

Before I complete the circuit i wanted to be sure that my transistors generate random voltages. So I tested the avalanche breakdown voltage with a digital multimeter.

I checked the voltage from the red points in picture. But when I tested it, there was only a constant voltage of 8V. I thought it should be randomly changing between 8-0 volts. Is this normal ?

• Is your multimeter and your eyes fast enough to see the multi MHz changes between 8 and 0V ? – PlasmaHH Nov 14 '17 at 10:51
• ah !! if it is so i wonder this . I will put the voltage changes as a digital input to a Pic microcontroller. In that case , can a pic microcontroller see the changes if it is that fast ? – Myeou Nov 14 '17 at 11:10

I checked the voltage from the red points in picture. But when I tested it, there was only a constant voltage of 8V. I thought it should be randomly changing between 8-0 volts. Is this normal ?

Yes that is normal. That part of the circuit (2 NPNs and the 15 kohm resistor) is a noise generator. It uses the randomness of the behavior of electrons in a reverse biased PN junction to generate noise.

That noise is then amplified by the amplifier which is the rest of the circuit (the inverters with DC feedback).

The noise is a very small signal so you cannot expect 0 to 8 V at the red dots. It will be in the order of millivolts AC. Since the NPNs are basically not conducting the resistor sets the DC voltage to 8 V.

This circuit is also very sensitive to disturbances from outside the circuit for example supply ripple like 50 or 60 Hz from the mains or switching noise from a switching DCDC converter.

So I would not expect a very "mathematically random" signal to come out of this circuit. Depending on what you need, it might suffice though.

• after it is amplified , can it be used as a input for a pic controller ? If yes how can i make it digitize ? If i program the pic for make a digital input read , shall i say 100 times in a second , is it possible to digitize as 1 and 0 ? – Myeou Nov 14 '17 at 11:22
• @Myeou Those are somewhat unrelated follow-up questions and should not go in a comment. If you have more questions, ask a new one. – pipe Nov 14 '17 at 12:01

The very first thing you should have done was build the circuit in its original configuration. Only when you knew it worked should you have tried to make changes.

Since the meter says you're getting 8 volts, and your power supply is 8 volts, this is an excellent indication that the circuit is not, in fact, producing noise. If it were, even though the meter would not show the high-frequency operation, it would have showed the average voltage, which would be significantly below 8 volts.

I suggest you do some Googling on avalanche breakdown voltage. Here, for instance you'll see a BC107 set up in breakdown, with a voltage produced of about 8.2 or 8.3 volts. This means that, in an 8-volt circuit, it won't break down at all.

You have not specified the transistor you used, but you should be aware that breakdown voltage for small-signal NPNs can be as high as 9 volts.

So, try building the original circuit first. Once you think it's working, then and only then can you start messing with it.