Mike Cook’s Magic Wand

Mike Cook, electronics Superman, swapped some emails with us after we last posted about one of his projects. Eben and I both wanted to talk to him about a feature from Mike’s Body Building column in Micro User from 1989, where Mike made a magic wand that wrote letters in the air.

BBC Micro User, July 1989

I read the magazine and lusted after the thing; but at my girl’s boarding school in rural Bedfordshire, where we didn’t have an electronics lab (although we did have a huge domestic science suite), mercury switches and leds were about as easy to get your hands on as unicorn poo – you could buy a kit from the magazine, but I’d spent all my money on bubble gum and cello rosin. Eben had a very lucid memory of that particular column too, and hadn’t been able to get the parts either. We both mentioned that it was our favourite design from the Body Building column while thanking him for the projects he’s done with a Raspberry Pi so far. (Mike, ever self-effacing, says that similar projects have been done a million times since then, but he does believe that this was the first time such a thing ever appeared in print.)

So Mike went quiet for a couple of weeks, and then came back with this: a magic wand controlled by his Raspberry Pi. I have been scampering around the study like a schoolgirl since I got his email. He has, as always, written exhaustive instructions if you want to make one yourself, complete with software you can edit on your Raspberry Pi, tips on font design, and notes about the legality of mercury switches (which, as it turns out, are still available and can be used legally as long as you’re not going to sell your magic wand).

Of course, these days, we’re probably supposed to call this a persistance of vision project. But as far as I’m concerned, it’s still a magic wand. Thanks so much, Mike; this is quite a lot like having a rock star you worshipped as a kid re-write a song for you. And I’m sorry about the beating your shoulder took during testing.

A housekeeping note: I’m away for a couple of days travelling to and setting up for DEF CON 20 in Las Vegas, which we’ll be attending as vendors. Bugger. Unforeseen circumstances and all that; we are no longer attending, because a problem with liability for Nevada sales tax came up at the last minute. Really sorry if you were hoping to see us.


Darren avatar

It would probably be worthwhile to update the project to use an accelerometer these days as mercury switches have to be treated as hazardous waste when disposed of and don’t meet the RoHS requirements. Anyone fancy the challenge of updating the idea ?

The technique for writing with a row of LEDs like this by the way is known as POV (Persistence of Vision).

Mike Cook avatar

Darren, just what is the point of this post?
All the points you raise I address on the web page. You would be better off using the ball type tilt switch than a accelerometer if you are worried about green issues as the energy cost of an accelerometer is very large compared with a ball tilt switch.

BauBau avatar

It’s ok Mike, Darren is European… LOL. The post doesn’t have to have a point :)

Jeppe Kollerup avatar

Wauw, that is pretty cool! I am quite sure that this will be one of the first projects I will do :-)

John E avatar

Very nice as a learning exercise, but if you actually want one of these things, see http://www.ebay.co.uk/itm/180693317892
And to do it on a bike wheel, see http://www.ladyada.net/make/spokepov/
What I’d like to see is a circuit and code that uses the I2C bus to feed 32 x RGB LEDs , via 6 x MCP23617, with a video stream…Please consider that a challenge, if you know how to do it, please post, it’ll save me a lot of time trying to work it out!

AndrewS avatar

The whole *point* of the RaspberryPi is for learning. If you don’t want to learn, just buy an iPad ;-)

What do you mean by “with a video stream” ?

John E avatar

Split the video into vertical columns and display them on the LED wand, so waving it around shows low-res video. And no, I haven’t bought an IPad!

TankSlappa avatar

Much fun, but can we have another LED or two for proper descenders? :-)

TankSlappa avatar

BTW Mike, have you seen this?


reiuyi avatar

I still want to build my very own graphic rotating LED clock

Blars avatar

You could have used the rosin to make your own solder flux. It has been discussed on the dangerousprototypes.com forum recently, as well as a fair number of mentions of the raspberrypi. Their pov toy is still in development.

Andy avatar

Way too cool, strange I didn’t catch it when he did it back in the good old days…

Jim Manley avatar

Never mind the wand parts … what’s the SKU for unicorn poo, which implies there’s another for unicorns themselves??? :D

As soon as I saw “mercury switch”, my mind harkened back to my pre-teen years and breaking open mercury switches from washing machine controls to get to the amazing wobbly liquid metal. Given that inhaling mercury vapor over long periods can cause Mad Hatter’s disease, a slow descent into mental illness … hmmm, my youthful adventures might explain a lot about what’s happening today … ;)

So, accelerometers would definitely be a preferable technology, but, auxiliary circuit boards with 3-axis accelerometers cost around $30, which is a lot more than $3 for a low-end mercury switch. A pretty cool peripheral for a Pi, in any case!

Chewy avatar

I’m glad to see that this god is as crap at soldering as I am ;-)

Chris avatar

Pretty cool POV!

A “ball type tilt switch” would be much safer to use and easy to assemble one yourself than to use a mercury switch. A rotating display would be harder to wire properly unless if there is a serial communication to a line driver. RGB would be more complex because the row would multiply by 3 which would require a complete rework of the original code.

Thanks Mike Cook for sharing this!

P.S. I never knew what a BBC Micro was… I only saw Tandys and Commodores when I was younger.

Darren avatar

I’m guessing you are probably from America, as the opposite is true here in the UK. The Tandy computers were pretty much unheard of, we did have Commodore but by far the most popular home computer was the Sinclair Spectrum.

Chris avatar

Did some reading up on the Sinclair ZX Spectrum… Looks like it was pretty popular till the early 90s. huge database of components at http://www.worldofspectrum.org/

Gord H avatar

Could this be done with a bicycle wheel? Rather than waving a stick, have it done with a spinning bicycle wheel :)

Gord H avatar

Doh! Should read other comments before posting

Brian Harris avatar

Have you considered mounting this on a stepper motor to create some kind of animated projector display? I can see there may be some engineering challenges there but I have an old fruit machine stepper motor with reel enclosure that I would be willing to donate to a good cause if you’re interested.

liz avatar

I’m sure I’ve seen a LED POV alarm clock with an arm on a stepper motor. (That said, there is something intrinsically cool about waving a stick around yourself and making it produce letters…)

e avatar

A lot of goons were exited to see u guys here at DC20, but I here there’s a RasPi alternative vendor attending this year. Id love to give you guys my business but Ive been on a 5month waiting list so I may resort to an alternative.

Nick avatar

This would appear to be a suitable alternative to the Mercury tilt switch.


John E avatar

The simplest solution would be to just use a push-button switch, with a variable switch-on delay in the software. This would be more versatile, as you could repeat the message part way through the stroke.

Wayne avatar

The first time I saw a POV display was in a bar. A friend said look at something and tell me when you get it. It was just a vertical bar of flickering LEDs.

It wasn’t till I moved my head that I saw it. FINLANDIA!

Ever since then I have been fascinated by these displays. I had a clock for a while but then the flex material fatigued and broke.

But I’m more fascinated by the static displays. I haven’t had a look at the project yet but guess the software could be modified to ignore trigger inputs and just change sequentially over time (very short delay).

Thanks for this.

Comments are closed