it works like this: A rectangular grid
serves as the home of a digital cell
colony. A set of rules are applied
that cause the colony to evolve from
generation to generation. Ultimately,
the colony with either:
1) Die (no living cells).
2) Live in static equilibrium (no cells
3) Live in dynamic equilibrium (cells
change in a repeating pattern).
The rules that drive intergeneration change are simple, and
are based on the number of living
“neighbors” that surround each cell.
1) With one or less neighbors, the cell
dies (of loneliness).
2) With two neighbors, there is no
change in the cell state.
3) With three neighbors, the cell lives.
4) With four neighbors, the cell dies
For me, there are few more
compelling programs than Conway’s
Game of Life. My rediscovery (running
Java versions online) of CGoL caused
me to wonder if I could translate it to
the SX. It was easy on the TS-1000 (or
other “big” PC), but the SX28 (using
SX/B) doesn’t support multidimensional arrays and that’s a requirement to
manage the cell colony grid.
I decided to give it a shot for two
reasons: First, it would just be
plain fun and would allow me to
incorporate some electronics into one
of Joshua’s (my youngest brother)
paintings. Second, it would give me a
reason to build a platform to experiment with discrete LED multiplexing.
In fact, I could build a very generic
circuit that would, essentially, be a
mini game console and CGoL would
be the first demo. So, that’s what I did.
The circuit is easy, and by using
the SX28, the logical size of the grid is
8x8; this allows us to use the pins on
RB to control the LED cathodes and
the pins on RC to control the LED
anodes. This leaves the pins on RA
available for button inputs; again, the
circuit is generic and can be used for
a whole host of experiments. Figures 1
(processor and buttons) and 2 (LED
matrix) show the schematic.
Now, I’m pretty good with a
soldering iron, but there was no way in
heaven or on earth that I was going to
connect the processor and 64 discrete
LEDs using point-to-point wiring. If you
choose to go that route, you’re a braver
soul than me. As with the Pinewood
Derby Lane Timer we made in January,
I entered the circuit in ExpressSCH and
then created the board in ExpressPCB.
I may have made this statement
before, but I think it’s worth repeating:
DO NOT — under any circumstances
— be tempted to skip past ExpressSCH
and go right to ExpressPCB. It’s not
that I lay out a lot of boards, but I had
tried ExpressPCB way back before
ExpressSCH was part of the package,
and while the PCB layout program is
very nice and easy to work with, the
value in connecting to a schematic
[netlist] as an aid to the PCB layout
cannot be overstated.
Of course, for this project — should
you like it as-is — you don’t have to
worry about that as I’ve already done
the layout work (which took about
eight hours). But ... if you decide to
make a change, copy and modify the
schematic first, then open and copy the
PCB file, finally linking it to the new
schematic. Make your PCB changes
from there, allowing ExpressPCB to tell
you what connects to what. Please trust
me on this as there is nothing more
frustrating than spending time on a
nice, neat PCB layout, only to find that
when it gets back from the board
house there’s a self-created error.
For circuit components, I tend to
order from Mouser. When I lived in
Dallas, I had the opportunity to visit
their facilities and it is really a first-class
operation. Their prices are good, too.
Of course, vendors like Jameco also
provide great products and service. I
just want to let you know that the
schematic file that you can download
■ FIGURE 2. LED Matrix.
March 2007 77