You’ll Never See the End of This Project

…theoretically, anyway. When [Quinn] lucked into a bunch of 5 mm red LEDs and a tube of 74LS164 shift registers, a project sprang to mind: “The Forever Number,” a pseudo-random number generator with a period longer than the age of the universe. Of course, the components used will fail long before the sequence repeats, but who cares, this thing looks awesome!

Check out the gorgeous wire-wrapping job!

The core of the project is a 242-bit linear-feedback shift register (LFSR) constructed from (31) 74LS164’s. An XOR gate and inverter computes the next bit of the sequence by XNOR’ing two feedback bits taken from taps on the register, and this bit is then fed into bit zero. Depending on which feedback taps are chosen, the output sequence will repeat after some number of clock cycles, with special sets of feedback taps giving maximal lengths of 2N – 1, where N is the register length. We’ll just note here that 2242 is a BIG number.

The output of the LFSR is displayed on a 22×11 array of LEDs, with the resulting patterns reminiscent of retro supercomputers both real and fictional, such as the WOPR from the movie “War Games,” or the CM2 from Thinking Machines.

The clock for this massive shift register comes from – wait for it – a 555 timer. A potentiometer allows adjustment of the clock frequency from 0.5 to 20 Hz, and some extra gates from the XOR and inverter ICs serve as clock distribution buffers.

We especially love the construction on this one. Each connection is meticulously wire-wrapped point-to-point on the back of the board, a relic originally intended for an Intel SBC 80/10 system. This type of board comes with integrated DIP sockets on the front and wire-wrap pins on the back, making connections very convenient. That’s right, not a drop of solder was used on the board.

You can see 11 seconds of the pattern in the video after the break. We’re glad [Quinn] didn’t film the entire sequence, which would have taken some 22,410,541,156,499,040,202,730,815,585,272,939,064,275,544, 100,401,052,233,911,798,596 years (assuming a 5 Hz clock and using taps on bits 241 and 171 ).

Another LED/LFSR hack we featured used the pseudo-random stream to simulate a flickering candle.

26 thoughts on “You’ll Never See the End of This Project

      1. yo, i will poke fun at ‘pretty circuits’ all day,when the focus is on aesthetics over function etc, but a sweet wire wrap job like this gets me all hot and bothered!!!! totally does it for me!!! excellent work in design and execution!

  1. I would end up just sitting there watching it for too long … It kind of reminds me of the circular pov display I once made and one of the first things I did was programmed a pseudo-random number generator to drive the pattern. It was super mesmerizing to just watch it go, all the blue flickering seemingly random patterns and the whur of the motor … getting sleepy just thinking about it …

      1. It would be in no way secure. If you can observe one output word, you know exactly what every following output will be.

        While an LFSR is a maximal-length PRNG, it is not a CSPRNG because you can derive future outputs from present outputs. The missing ingredient is some hidden state which affects the output but which cannot be derived from the output.

        Even the Mersenne Twister is not a CSPRNG.

    1. Considering how dern long it’ll keep outputting unique and random patterns, I’d be surprised if the works of Shakespeare didn’t appear on that display at some point in the next few hundred trillion years. It would be more likely than not to occur at some point.

    1. Me too. I learned in 1966 as an installer for Western Electric. Then intermittently as an engineer at the Air Force Research Lab. About 5 years ago I threw out the last boards like the one in the project. I still have some ww sockets and a whole bunch of prestripped lengths of wire in different lengths, plus some hand wrapping and unwrapping tools. You never know.

Leave a Reply

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