The history of the LED Toy

... according to Werner Almesberger

It all began in August 2005, at the Pacha club in Buenos Aires, where I saw a line of flashing blue LEDs showing the Camel logo. A few months earlier, I had started experimenting with microcontrollers, and I instantly thought of building a circuit to reproduce the effect. One week later, I had it running.

The old circuit used DIP and 0805 components, ran off three AA batteries in the elegant dynamite pack design, and was actually a multiprocessor: one microcontroller did all the user interface and scheduling work, while the other only received data for its LEDs from the other one, and lit them accordingly. This was done so that each of the 20 LEDs could be driven with a current of about 20 mA, which would have been more than a single PIC can handle. Program changes were done by pulling the respective chip from its socket, putting it in the programmer, and replacing it when done.

First (DIP) version of the LED Toy
First (DIP) version of the LED Toy.

Note: for the picture, I just inserted some PICs I had laying around. They're not the original ones, and are probably of a different type, too. (Yeah, I really don't remember what I used back then.)

SOIC version of the LED Toy
SOIC version of the LED Toy.

Then the idea of making it smaller struck my mind. The next revision used SOIC versions of the controller, but wasn't very different in any other respects. I'm not even sure if I ever got it to work. In any case, it doesn't work now. It was meant to be (re)programmed in-circuit, but that never quite worked either.

Early SSOP version of the LED Toy
Early SSOP version of the LED Toy.

Again a little later, miniaturization seriously kicked in. I switched to two AAA batteries, the low-voltage version of the controller - and in an SSOP package on top of that, and took a hint from Apple to keep but one button. The result now sat comfortably in a pocketable box, where everything was held together by a central screw. The little red piece of isolation tape protects the circuit from the nut used as spacer between plastic cover and board.

Old RS-232C interface, top view
Old RS-232C interface, top view.
Old RS-232C interface, bottom view
Old RS-232C interface, bottom view.

Even better, it featured an RS-232C interface allowing convenient upload of firmware revisions and new images with Xmodem.

Note: the picture shows the cable used for a different project, with a square connector on one end, instead of the 1:1 cable used for the LED Toy at that time.

Small but defective SSOP version of the LED Toy
Small but defective SSOP version of the LED Toy.

By then, I was determined to make it really small. The biggest item were now the batteries. So I tried to run it off a CR2032 cell. I actually ended up with something that worked sometimes, but power consumption was too high, and the program often acted erratically. The battery holder (see below) was also a very unsatisfying solution: it was too tall for the case I wanted to use, so I had to cut off so much plastic that the whole structure became unstable and often lost contact.

This and the previous version were finally small enough to take them clubbing. They surely drew attention, and various people asked where they could buy them.

The best LED Toy so far
The best LED Toy so far.

Power saving was the order of the day. I made two changes to that effect: I started to multiplex the image and got rid of one of the microcontrollers, and I started to use high-efficiency LEDs. Using 0603 components instead of 0805 ones, I could also increase the number of LEDs from 20 to 24. I also made some other simplifications, and added an optical sensor, for future data transmission experiments.

New RS-232C interface, top view
New RS-232C interface, top view.
New RS-232C interface, bottom view
New RS-232C interface, bottom view.

The RS-232C interface was also improved, and now fits on a little board inside the connector, instead of needing its own bulky box.

The following images compare the battery technology and the sizes of three generations of the LED Toy. The coins are, from left to right, one Euro, a quarter US dollar, and 25 Argentine centavos.

Battery comparison
Battery comparison.
Size comparison
Size comparison.

What to do with it now ?

Since so many people asked me how they could get a LED Toy too, I started thinking about ways to produce larger quantities. One obvious approach would be to set up some industrial production. This is quite cost-effective, but only works if you're building large quantities. For instance, about the minimum amount where the use of machines becomes feasible would be 10'000 units, at a manufacturing cost of something like USD 6-10, and an estimated price for the end customer in the region of ARS 100 (that includes manufacturing, salaries, taxes, the share resellers keep, etc.).

So an initial investment of USD 100'000-200'000 would be needed, and we'd just break even if selling these 10'000 units. Of course, building a lot more would be easy, but the market may also be somewhat limited. E.g., exporting to patent-infested regions like the US would be unattractive. Therefore, my conclusion is that trying to do large-scale industrial production is not worth the trouble. Even in the best case, it would take too much of my time. Time I'd rather spend on more interesting things than figuring out where in the world to find the cheapest slave labour, and such. But if you think you can pull this off, more power to you.

I also had set myself another goal, namely to find out how to produce modern electronic circuits using tools and materials available to low-budget productions in Argentina. That would include hobbyists, small companies, and educational institutions. This was motivated by me observing that truly antiquated technologies are still considered the local state of the art, and that more modern alternatives are considered impossibly difficult to use, or simply too expensive.

Since I already knew that hobbyists are building fairly complex SMD circuits in other places of the world, I wanted to collect this information and find out if this could also be done in Argentina, and if yes, to document precisely how.

I started working on this documentation after it became clear that I would succeed building a device satisfying my goals for simplicity, smallness and operational stability. A bit later, I invited two friends to build their own LED Toy. Originally, I expected to spend about two or three hours showing them how I did it, and then they'd repeat this within perhaps four hours. The documentation was far from being complete, and they had only had a few hours to read those parts that were there. But hey, it can't be that hard, can it ?

Little did I know. The first session ran from Sunday noon to Monday morning 5 a.m., only interrupted by dinner, yielding one fully functional toy (mine) and two partially-built ones (theirs). The second session started on the following Tuesday at 6 p.m., and ended at about 4 a.m. the next morning, this time with two tired but very happy new owners of LED Toys.

So that's about 25 hours instead of the 7-8 I had planned as the absolute worst case. This just proves that us programmers have no sense of time at all. It also showed that more and better documentation would be needed, and that it may make sense to have some tasks that can be easily automated performed elsewhere.

Shortly thereafter, we attended the 5tas Jornadas Regionales de Software Libre. Of course, we all had our LED Toys with us, and perhaps a hundred people asked where they could get one or how they could build it. Someone also suggested that selling a kit may be a good idea.

Indeed, after pondering this for a while, I realized that this is just the idea I had been waiting for ! Low setup cost, any things that are difficult or messy to do can be handled with industrial resources, purchases can be pooled, low overhead on the way to the end user, consumers will not expect a perfect industrial design, and, most importantly, it perfectly conveys all the know-how I'd like to see disseminated.

Naturally, I wouldn't want to get involved in setting up such a business. I even think that it would actually be a bad idea to start something new for it, since there are already lots of companies that can do it with a marginal effort on their part, so all that's needed is to make sure all relevant information is accessible, and then we can hope for the power of viral marketing. That's the plan so far. We'll see how it works.

Other people's toys

When I was showing the LED Toy to people at various places, people mentioned similar commercial products. Here is a collection of some of them: Apparently, they also started using LED bars in the Tokyo subway for ads quite a while ago.


Werner Almesberger   26-NOV-2005