Conways’ Wall Of Life And Whiteboard Emporium

White board beats chalk board, LED marquee beats white board, and an LED white board trumps them all.

This hybrid lets you draw on the surface with dry erase markers while Conway’s game of life plays out underneath. [Bert] sent us this tip after seeing yesterday’s office marquee. This version is quite similar in appearance but the guts are very different. Inside you’ll find a Parallax SX28 microcontroller doing the heavy lifting. The display is multiplexed but they didn’t go with a common 595 shift register, but a beefier MAX6979 LED driver. We’re not too familiar with this part but it does have a lot of nice features like constant current, and automatic shutdown if serial data stalls for more than 1 second. This is a low-side driver so transistors are used to connect voltage to the rows; the opposite from the setup we looked at yesterday. This was built several years ago and is still working happily even though its permanent home is a breadboard. Source code can be found on this page.

A wooden frame with 64 green LEDs running a Game of Life simulation

Wooden CNC Sculpture Displays Conway’s Game Of Life

Conway’s Game of Life has been the object of fascination for computer hobbyists for decades. Watching the generations tick by is mesmerizing to watch, but programming the data structure and implementing the rules is also a rewarding experience, especially if you’re just getting acquainted with a new computing platform. Just as rewarding can be creating a nice piece of hardware to run the game on, as [SandwichRising] has just done: check out his beautiful wooden Game of Life implementation.

A set of PCBs implementing an 8x8 LED displayThe main part of his Game is a piece of poplar wood that was CNC routed to produce an 8×8 display adorned with neat chain-like shapes. The display consists of standard 5 mm green LEDs, but they’re not the things you see poking out the front of the wooden frame. Instead, what you’re seeing are 64 lenses made out of epoxy. [SandwichRising] first covered the holes with tape, then poured green epoxy into each one and waited for it to harden. He then took off the tape and applied a drop of UV-cured epoxy on top to create a lens.

All the LEDs are mounted on PCB strips that are hooked up to a central bus going to the main ATmega328P  microcontroller sitting on a separate piece of PCB. Whenever the system is powered on, the game is set to a random state determined by noise, after which the simulation begins. On such a small field it’s pretty common for the game to end up in a stable state or a regular oscillation, which is why the ATmega keeps track of the last few dozen states to determine if this has happened, and if so, reset the game to a random state again.

The source code, as well as .STL files for the PCBs and the frame, are available in the project’s GitHub repository. If woodworking isn’t your thing, there’s plenty of other ways to make neat Game of Life displays, such as inside an alarm clock, with lots of LEDS under a coffee table, or even with a giant flip-dot display.

An E-ink display showing Conway's Game of Life, with a solar cell beneath it

Solar Powered Game Of Life Follows The Sun’s Rhythm

Conway’s Game of Life is a beautiful example of how complex behavior can emerge from a few very simple rules. But while it uses biological terminology such as “cells”, “alive” and “generation”, the basic game is too simplistic to be a model for any real-world biological process. It’s easy to add features to make it a bit more life-like, however, as [David Hamp-Gonsalves] has done by giving the Conway’s creation something of a circadian rhythm.

The basic idea is that the speed at which [David]’s Game of Life evolves is governed by the amount of ambient light. The game runs off a solar cell that charges a battery, with the battery’s voltage determining how long it takes to advance the game by one generation. The system is therefore highly active in full sunlight, and grinds almost to a complete halt at night.

An ESP32 runs the simulation and outputs the result to a 400 x 300 pixel e-ink display. The display is extremely power-efficient by its very nature; the ESP’s main processor core, on the other hand, is deliberately placed into deep sleep mode most of the time to save as much power as possible. The Ultra Low Power (ULP) co-processor, meanwhile, keeps an eye on the lithium battery’s voltage as it’s slowly being charged by the solar cell. When the voltage reaches 3.3 V, the main CPU wakes up and computes the Game’s new state. In bright sunlight this happens every few seconds, while on an overcast day it could take minutes or even hours.

[David]’s interesting idea of changing Life‘s activity based on the amount of energy available turns the Game into something resembling a cold-blooded animal. We’ve seen a similar approach in a “solar creature” that runs a Life-life simulation on a seven-segment LCD. If it’s speed you care about however, you’re better off implementing Life in an FPGA.

The Game Of Life Moves Pretty Fast, If You Don’t Use Stop Motion You Might Miss It

Munged Ferris Bueller quotes aside, Conway’s Game of Life is the classic cellular automata that we all reach for. The usual approach is to just iterate over every cell in the grid, computing the next state into a new grid buffer. [K155LA3] set out to turn that on its head by implementing Game Of Life in the hardware of an FPGA.

[K155LA3]’s version uses Chisel, a new HDL from the Berkley and RISCV communities. Under the hood, Chisel is Scala with some custom libraries that know how to map Scala concepts onto hardware. In broad strokes, Verilog and VHDL are focused on expressing hardware and then added abstraction on top of that over the year. Chisel and other newer HDL languages focus on expressing high-level general-purpose elements that get mapped onto hardware. FPGAs already map complex circuits and hardware onto LUTs and other slices, so what’s another layer of abstraction?

The FPGA chosen for this project is a Digilent Arty A7 with a VGA Pmod to turn the RGB444 into analog signals to actually display. What’s impressive about [K155LA3]’s implementation is just how fast it is. Even running at 60 frames per second it’s almost as fast as the monitor can handle. Of course, most computers lying around you could simulate a 60 x4 8 grid at 60 fps. Next, instead of connecting the grid logic to the 60 Hz VGA clock, he connects it to the 100 MHz board external oscillator. Now each pixel in each frame displayed contains over a million generations.

Unfortunately, even this small grid of 60×48 takes up 90% of the LUTs on the Artix-7. In the future, we’d love to see an even larger FPGA hardware implementation capable of handling grids that could hold whole computers in them. And naturally, this isn’t the first FPGA version of the Game Of Life here at Hackaday.

Stealing RAM For A Microcontroller From A TFT Display

PC users with long memories will recall the days when the one-megabyte barrier was  a significant problem, and the various tricks of extended and expanded memory used to mitigate it. One of them was to install a driver that mapped surplus graphics card memory as system memory when the display was in DOS text mode, and it was this that was brought to mind when we read about [Frank D]’s microcontroller implementation of Conway’s Game Of Life.

The components were those he had to hand; an STM32F030F4P6 and an RM68130 176 × 220 TFT board. The STM is not the most powerful of chips, with only 16 kB of Flash and 4 kB of RAM. The display has enough on-board memory to support 18 bits of colour information, but when it is running in eight-colour mode it only uses three of them. The 15 bits that remain are thus available to be used for other purposes, and though the arcane format in which they are read required some understanding they could be used to provide a very useful extra 38720 bytes of RAM for the microcontroller just as once happened with those DOS PC graphics cards of old. Interestingly, the same technique should work with other similar displays.

Though this isn’t a new technique by any means we can’t recall seeing it used in a microcontroller project such as this one before. We’ve brought you many Games of Life though, as well as marking John Conway’s passing earlier this year.

Continue reading “Stealing RAM For A Microcontroller From A TFT Display”

The Game That Launched 1,000 Hackers

John Conway passed away this week. Even if you don’t know much about mathematics, you will probably know nearly everyone’s favorite cellular automata ruleset: Conway’s “Game of Life”. It’s so much a part of our cultural history, that proto-hacker Eric Scott Raymond suggested using the glider as the hacker emblem.

The idea that a very simple set of rules, applied equally and everywhere, could result in “life” was influential in my growth as a young hacker, and judging from the comments on our article about Conway, I’m not alone. But I won’t lie: I was a kid and thought that it could do much more than make pretty patterns on the screen. I was both right and wrong.

Although amazingly complex machines can be built in Conway’s Life, just check out this video for proof, in the end no grand unifying theory of cellular automata has emerged. As a research topic Conway’s chosen field of mathematics, cellular automata is a backwater. It didn’t really go anywhere. Or did it?

Implementing Conway’s Life in BASIC on a Tandy Color Computer was one of the first things that launched me on my geeky path. It ranks with MENACE: the matchbox-based machine learning algorithm from the 1960’s and an introduction to Markov Chains in the form of a random text generator in my young algorithmic life, all of which I incidentally read about in Martin Gardner’s column in “Scientific American”. Conway’s Life, along with some dumb horse-race game, also taught me about bad random-number generators: the screen would populate the same “randomly” every time on the old CoCo.

So maybe Conway didn’t want to be remembered just for his “Life” because it was a bit of a mathematical dead-end. But in terms of its impact on the world, an entire generation of hackers, and my own personal life, it was able to fill up significantly more than a screen full of pixels. Here’s to Conway, his “Life”, and everyone else who is inspiring the next. You’re not just gliders, you’re glider guns!

This article is part of the Hackaday.com newsletter, delivered every seven days for each of the last 200+ weeks. It also includes our favorite articles from the last seven days that you can see on the web version of the newsletter.

Want this type of article to hit your inbox every Friday morning? You should sign up!

[Game of Life example shown in this article is John Conway’s Game of Life – 1.0 written in Python by Nick Jarvis and Nick Wayne]

Hackaday Podcast 063: Magnetic Gears, AI Green Screen, Plasma <3 Sharpie, And A Rubbery Drivetrain

Hackaday editors Mike Szczys and Elliot Williams sift for hacking gold from the past week. In this episode, we remember John Horton Conway’s Game of Life and its effect on novice programmers. We geek out adding screens to your car with an OBD-II hack, automating a Sharpie clicker as part of a plasma cutter, and 3D printing an incredible RC car that drives every wheel from a single motor. Plus we look at machine-learning for custom backgrounds in your video chats, take a gander at the coming generation of ePaper displays, and we get cultured about yeast.

Take a look at the links below if you want to follow along, and as always tell us what you think about this episode in the comments!

Take a look at the links below if you want to follow along, and as always, tell us what you think about this episode in the comments!

Direct download (60 MB or so.)

Continue reading “Hackaday Podcast 063: Magnetic Gears, AI Green Screen, Plasma <3 Sharpie, And A Rubbery Drivetrain”