# I have created life!….

Ive been sorting out the workshop here and found a project that I started around 12 years ago. I thought I would finish it and make it do something fun.

The project was an 8 x 8 LED grid. I used high brightness blue LEDs.

I wanted it to display something interesting and varying. I chose Conway’s Game of Life as it is interesting, random, relatively simple rules and keeps modulating.

There are loads of other projects out there doing much cooler things, but I felt like I ought to finish this project as it had been sitting around for sooo long.

Here is a video of the unit in action:

The LEDs were connected together using waste 1mm copper wire and arranged in a grid so that all the anodes from one column of 8 are connected together and all the cathodes from one row of 8 are connected together.

The board is controlled by an AVR ATmega 328, programmed using the Arduino IDE. I wanted to use fewer pins, so rather than use 8 pins for the anodes and 8 pins for the cathode (16 pins in total), I used a 4017 decade counter to provide an output for the anodes. This has 10 outputs which go high in order when it is clocked. There is a reset pin to return the unit to its initial condition. I only needed 8 outputs, so I connected the 9th output pin to the reset. I also added a clock line and a reset line back to the arduino. Hence I could display everything with 10 pins (8 data, 1 clock, 1 reset). The reset is required to ensure that the unit always starts in the correct position, otherwise the starting line was slightly arbitrary.

This display could be made to display any 8×8 graphic. One day I’ll turn it into a scrolling display.

The home-made Arduino PCB is stuck to the back. The front has been covered with diffuser polypropylene.

Conway’s Game of Life is a mathematical puzzle with a few simple rules. Each ‘cell’ within the grid lives or dies depending upon four simple mathematical rules. These are based upon its neighbours:

1. Any live cell with fewer than two live neighbours dies, as if caused by under-population.
2. Any live cell with two or three live neighbours lives on to the next generation.
3. Any live cell with more than three live neighbours dies, as if by overcrowding.
4. Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction.

This can give rise to some interesting patterns.

I used the code from Jimmie P. Rogers LoL Shield, which already had Life programmed in (although his board uses Charlieplexing in order to control even more LEDs from hardly any output pins).

The Arduino code is here:

I know there are much better and more complicated LED display boards out there, but I really wanted to finish this project and I learnt quite a lot about bit-wise programming (Cheers for your help, lwk).