any other changes. The
schematics for both are shown
in Figures 2 and 3. It does
require changing the firmware
on the controller card to match
the new data bus protocol, with
the consequence that new and
old I/O cards can’t be mixed.
We’ll dive into the new card’s
details after covering a couple
more show stoppers.
Does Anyone Know
What Time it is?
The controller design has
an onboard RTC (real time
clock) with battery back-up that
wakes up the show and shuts it
down again each evening, thus
saving me from turning on the
display manually or installing
a mechanical clock timer
switch — which is how I did it
the year before.
The RTC chip would
sometimes be scrambled about
five minutes into the lightshow and the data also sent to
the LED display on the controller card would be
scrambled, but the show kept running as planned. This is
a firmware problem caused by using the random number
generator macro found in BASCOM Basic. I don’t have the
skills to drill down and find the actual problem so I
rewrote the Basic firmware by trial and error to fix it.
■ FIGURE 1. Comparison photo of MkI and MkII PCBs.
For the PCBs, I used several SMT parts to save a bit
of space, allowing the luxury of an “LCD Port” on the
controller. Added on a whim, it would be nice to have
an alphanumeric readout, plus I had just discovered the
generic 2 x 16 LCD modules at a local surplus store a
few months earlier.
Adding support was likely to be one evening of code
bashing. What I didn’t anticipate is that these generic LCD
modules are fussy. Like the random RTC fault just noted,
I found the LCD would flicker and finally go dark after
several hours, but could be revived by cycling the power.
Hmm. Here’s a very easy fix: don’t send the LCD data
as often. Apparently, other hobbyists found the same
problem, which is that too much data “overloads” the
popular HD44100 controller IC.
second, so a sequence with higher update rates isn’t
needed. A classic marquee chaser, for example, is easy to
control with math routines running in the µC firmware,
possibly using random timing elements creatively.
Another gotcha with light shows is to avoid having too
many blinky lights. One display in our town looks a lot like
they have a “loose wire nut” somewhere. All their holiday
light strings are animated to the beat of a music track, and
are never steady. A better effect is to have about 20% of
the holiday lights remain steady while blinking a few
others at any time. I hope that makes sense – if you’ve
seen the “crazy lights” version you’ll know what I mean.
Thanks for the Memory
These non-repeating sequences lead to installing an
EEPROM on the controller PCB which would be used to
store light show sequences, as it’s much easier to read
non-cyclic data from a memory at set intervals and then
repeat it. The original EEPROM that I picked wasn’t very
large (256 x 8 bits = 2K) and if the pattern needs to
change every quarter second it can only hold about a
minute’s worth of eight channels, or barely 15 seconds
of 32 channels.
Full Address, Please
Gone in a Blink
I found that due to thermal lag in the holiday light
bulbs, the optimum fastest flash time is about a quarter
By luck, I’ve found a larger memory chip with a
256Kb (32K x 8 bits) capacity that has the same pinout.
(Yippee!) Also, the prices seem flat regardless of memory
November 2008 53