Random Numbers From A Smoke Detector

The quest for truly random numbers is something to which scientists and engineers have devoted a lot of time and effort. The trick is to find an unpredictable source of naturally occurring noise that can be sampled, so they have looked towards noisy gas discharge tubes or semiconductor junctions, and radioactive decay. Noisy electrical circuits have appeared in these pages before as random number generators, but we’d be forgiven for thinking that radioactive decay might involve something a little less run-of-the-mill. In fact we all probably have just such a device in our houses, in the form of the ionisation chamber that’s part of most household smoke detectors. [Lukas Koch] has built a project that shows us just how this can be done.

A smoke detector of this type uses a metal shell to house a tiny sample of radioactive americium that emits alpha particles into the space between two electrodes. These ionise the air in that space, and the detectable effect on the space between the two electrodes is increased when ionised gasses from smoke are present. However it can also quite happily detect the ionisation from individual alpha particles, which means that it’s perfect as a source of random noise. A sensitive current amplifier requires significant shielding to avoid the device merely becoming a source of mains hum, and to that end he’s achieved a working breadboard prototype.

This is still a work in progress and though it has as yet no schematic he promises us that it will arrive in due course. It’s a project that’s definitely worth watching, because despite getting more up-close and personal than most of us have with radioactive components, it’s one we’re genuinely interested to see come to fruition.

Of course, we’ve seen smoke detectors in more detail before here at Hackaday.

21 thoughts on “Random Numbers From A Smoke Detector

    1. Hackaday commentators are the best!

      @diane Thank you, I have never heard about 33 days in relation to radioactive decay before. Time to start reading about something new (at least to me).

      (ref: https://news.stanford.edu/news/2010/august/sun-082310.html or search for the paper “Fluctuations in measured radioactive decay rates inside a modifed Faraday cage: Correlations with space weather” )

      Originally I was extracting 1 bit for every 4 decay events using the exact same technique as hotbits – https://www.fourmilab.ch/hotbits/how3.html But I also added Von Neumann’s debiasing algorithm (1,1 input = no bits output ; 0,0 input = no bits output ; 0,1 input = bit 0 output ; 1,0 input = bit 1 output).

      But currently I extract 1 random bit from every radioactive decay event. I collect the time for every detected decay events for 24 hours ( date -u +”%Y-%m-%d-%H-%M-%S-%N” => 2021-06-26-12-28-24-375021499 ) . Then calculate the time between each decay event into a new array keeping the order unmodified. Then I calculate the average time between all decay events for that day (24*60*60*1000000000/number events) And start to generate bits, if the time between two events is higher than the average that is a 1 bit, if it is lower then bit is zero. And I still use Von Neumann’s debiasing algorithm.

      I should probably add that I regularly sprinkle my source of radiation on food (reduced sodium salt which contains potassium chloride instead of sodium chloride found in common table salt), it is typically about 3x normal background radiation levels found in most parts of the of the world. Nothing really to be afraid of since the human body maintains a nearly constant level of potassium (~140 g ; ~5 ounces) in the body for normal metabolic functions, any excess is flushed out.

    2. Apparently in increase in local mass slows the clock rate of the universe. So in theory, if the mass in the core was rotating in an unbalanced fashion, it would periodically vary the rate of atomic decay. Even the relativistic effects of climbing a mountain are measurable without expensive equipment. So the core wouldn’t have to wobble from eccentricity that much. But removing the effects of things like Jupiter and the sun from the data could prove tricky when trying to categorically prove it.

  1. I’ve built one using a GM tube, with a small pitchblende sample when I need random bits faster. It’s surprisingly easy; one of the commonly available ebay modules exposes individual events on a pin, which can then be processed into random bits with your favourite microprocessor.

    I’m currently rebuilding mine from powering a random walk generator (ESP32 outputting coax to an old CRT; part of an art project for an exhibition that got cancelled due to covid… grr!) to being a dedicated polyhedral dice machine.

    Which would be progressing faster if I hadn’t got sidetracked by resin casting dice instead…

  2. The linked project is very Interesting. I wonder could you reduce the part count (which would lower trust) by using either a 50 cent part like the:
    RE46C112 (VOUT is ¼ of either the DETECT input or VDD depending on the status of the SELECT input) or
    RE46C114 (VOUT is 1/2 of either the DETECT input or VDD depending on the status of the SELECT input)
    or a simpler 30 cent part like the:
    RE46C311 (Single Low-Input Leakage Op Amp) or
    RE46C312 (Dual Low-Input Leakage Op Amp)
    All of the above are low power parts that are designed for use in fire detectors using ion chambers. So inside the IC will have been fabricated with large physically visible gates, since they will have been certified to safely operate for at least decades in extremely close proximity an dangerous ion chamber.

    You would still need a battery for the ion chamber (6 to 18 Volt DC, maximum 24V) to reduce AC hum.

    The below table in the datasheet for a HIS-07 Ion chamber made me wonder what would happen you dropped the DC voltage for the ion chamber below specification. And what would happen if you dialled it up closer to the maximum 24 volts, could the recovery time be reduced, or would it be increased at higher operating voltages.
    (Test conditions at 25℃ , 60% RH):
    Supply voltage(V) ; Output voltage(V)
    6V ; 3.3± 0.3V
    9V ; 5.6± 0.4V
    12V ; 8.0± 0.7V
    15V ; 10.0± 0.85V
    18V ; 13.0± 1.0V

    1. Or is there no “recovery time” involved at all, that there is always a random current (pA) generated by the ions travelling away from the source. And the external voltage source is there to measure the current. I’ve never dealt with an Ion chamber so they are new to me.

        1. The alpha particles from the Am-241 cause ionization as they slow down in collisions with atoms in the air in the ion chamber, each alpha particle creating thousands of free electrons and corresponding positively-charged ions. The electric field in the chamber separates those ions before they can recombine, allowing some current to flow between the collection electrodes. If there is particulate pollution in the air (smoke), the ions recombine faster and don’t make it to be collected, reducing the measured current.

          This implementation does not measure the radioactive particles or their decay. It is not sensitive to the alpha particles. It just “measures” the random noise associated with the ion current and the detection electronics. An avalanche diode or even just a resistor would work just as well, but doesn’t quite have the same cachet.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.