Seeding the random number generator with a reverse biased diode?

I need to have a random seed which is different every time I turn on the Arduino.

I remember reading many moons ago that the voltage across a reverse biased diode is a good source of white noise. For my purposes I'd guess that I could use the bottom two bits (several times) of a byte read of the voltage to form a new random seed.

I imagine a resistor from Vcc to a diode connected to 0v. The arduino would read the voltage across the diode.

Has anybody already done this? And did it work?

My machine will not have access to the internet, so it will not be able to lookup random numbers anywhere.

Is there any user inter-action in your sketch?

I wondered a while ago whether this could be used with the arduino somehow i never really looked into it but i can see i few ideas in it.

http://www.psyleron.com/

i thought of contacting them and seeing if they had some kind of shield for the adruino.

robtillaart:
Is there any user inter-action in your sketch?

No :frowning:

EVP:
I wondered a while ago whether this could be used with the arduino somehow i never really looked into it but i can see i few ideas in it.

http://www.psyleron.com/

i thought of contacting them and seeing if they had some kind of shield for the adruino.

Errr....and how does that help me?

I must have missed something...

There are a lot of published noise generator using base-emitter reverse biased junction of the transistor.
It only works with voltage 7-12 V for common low signal transistors, you can't connect it directly to analog input, but voltage divider or cap/resistor would solve a problem.

My favourite low-parts-count RNG is a three-component free running 555 oscillator like this:
http://www.eleccircuit.com/alternate-555-oscillator/
you then hook pin 6 of the 555 into an analogue input and read that. Pin 6 taps into the timer's analogue R/C circuit, so you are reading the charge on the timing capacitor, which is always changing, and changing in a pattern that is not linked to the Arduino clock.

If you have at least 12 volts available, you can use a reverse biased B-E junction circuit to generate noise, but in my applications, I only have 5V and building a boost converter takes more parts than the 555 oscillator way.

Thanks all for the suggestions (except for the "mental manipulation of random numbers via quantum telepathy" one, and even that one made me :slight_smile: .)

I've just posted in this group a quick and dirty solution which is adequate for my needs and requires no extra hardware.