Novelty lights

see copyright notice. Page created 22-Mar-2005 updated 5-Nov-2019. Use the button groups above to navigate quickly around the site.

The "Umbelite"

[Umbelite daytime] [Umbelite at night 1] [Umbelite at night 2]

This purely decorative, solar-powered folly was conceived when I saw the remains of some "Chinese Lantern" husks (Physalis) in a friend's garden one spring. The ravages of the winter weather had destroyed the fruits and the scarlet paper-like covering, but left intact the delicate framework and its curved stalk. I instantly visualised these as shades for LED lamps! The question was, what should they hang from? I found the answer in the form of another remnant from the previous year, the top and stem of a large umbellifer - probably hogweed. Like the lanterns, what remained was just a hardened skeleton, but with enough strength in its hollow, woody stem to make a sturdy little lampstand.

[Lantern detail]

I shortened each LED's lead-out pins to about 5mm, and soldered on lengths of thin (32swg) enamelled wire. There's a small gap at the bottom of each lantern, where the "petals" don't quite meet, and it was easy enough to feed the wires up and out through gaps at the stalk end. Having pulled the LED up into the lantern, I twisted the wires together and secured them to the stalk with a small knotted piece of brown thread.

The wires wind along the umbel "strut" forming the actual support for the lanterns, with the stalks just hooked over for show. At the centre, I made pinholes in the hollow stem just below the umbel, so that the wires could be fed down inside. What you thought was a wire spiralling up the outside is in fact the remains of a climber (convolvulus?) that came free with the hogweed!

[Electronics detail]

When I'd assembled the lanterns and stem, I drilled a hole in a rectangular block of wood for a makeshift base, but I kept an eye open for something more rustic. I found the answer whilst walking through an area of recently-coppiced woodland. Scattered everywhere on the ground were wedges of wood, like slices of cheese, cut off to leave a flush surface where branches had been lopped. I staggered home that day with a bag full of these wedges, one of which became the final base for the Umbelite.

The solar panel was sold as a battery charger, and came with a hinged prop to angle it towards the sun. I removed the prop and fixed the hinged panel to the wooden base, concealing a cavity roughly reamed out to house the battery and electronics.

[Umbelite circuit]

There's probably a single-chip solution to control the charging and light switching, but here's the circuit I devised. During daylight the solar panel charges the battery via the schottky rectifier (which has a lower voltage drop than a conventional one). When it's dark, a small current from the battery flows through the solar panel to switch on the transistors, which supply about 80mA to the LEDs (20mA each). After a full day's sun the lights stay on for several hours.

If you want to try a similar circuit, make sure the combination of solar panel and battery can't result in overcharging. And a 250mA fuse in the battery leads would be a wise precaution.

"DotMux" window display

[Day and night] [DMX in shoebox]

I exhumed this hardware from its shoebox store for Christmas 2008, about 10 years after it was made. It comprises a 16 x 5 matrix of jumbo-sized red and green LEDs, which, when carefully untangled and straightened, hangs inside an upstairs window covering an area about 2m wide and 75cm high. I made it because I was sick of seeing huge Christmas light arrays whose only trick was to repeat a simple sequence of patterns.

This one can do that too, but it can also manage complex, moving and chasing light patterns, in addition to showing arbitrary-length scrolling text messages. The rightmost part of the photo above shows the first three characters of "MERRY CHRISTMAS", reversed to mirror the daytime view (because both were taken from indoors). It looks much better than this from outside in the street, with the text moving along!

Warning: The rest of this page will be of interest only to fellow geeks!

[DMX data format]

There's surprisingly little hardware under the LEDs, because I opted to use a specially encoded serial (RS232) data stream to "scan" them. The byte sequence carries adddresses, data and even clock edges to flash each vertical column of LEDs in turn, the sequence being generated repeatedly by a computer which can if necessary be in another room!

Here's how it's done. Three bytes carry a column address (A0-A3) and a 5-bit map of LED states for that column (D0-D4). These data bits are interspersed with fixed 0s and 1s, including the serial start and stop bits, as shown. The pattern is chosen so that each data bit is preceded by a 1 to 0 transition, which clocks a shift register via a suitable delay. The long data 1 period in the fourth byte causes the register contents to be copied into a parallel latch, from which the row and column driver states are decoded. There are just 9 high current drivers on the board, with a further 16 transistors suspended within the matrix wiring to complete the column drives.

[DMX startup]

Originally I used a standalone VAX 3400 CPU card to drive the display - I didn't own a PC in those days. Pre-assembled machine code was loaded from a text file stored in the CLB, containing a series of DEPOSIT /LONGWORD commands, followed by START to run the program via the bootstrap console [blimey, did I really do that?]

Now I do own some PCs, but still prefer to program a VAX. So an improved version of the original code runs under VMS, on a proper server. The serial data stream is generated continuously by a detached process (DMX_SCAN) from a bitmap of the required display pattern, held in a group global memory section. A user process updates this map by rendering ASCII text from a file as 5-dot high variable-width characters. At 9600 baud, the display refresh rate is about 15Hz (to-do: increase to 19200 baud!)

The screen-shot, right, shows the procedure for starting the display. The cut-out expletive is a symbol which, as those who've worked with me may remember, equates to SET PROCESS/PRIV=ALL

top ▲