Intelligent LED display backpack

I've got a few of these little LED displays knocking about. They're the same kind I used a couple of years ago on my Landrover speedo thingy. They're not too tricky to use with a microcontroller, but you've got to connect at least half of the 26 legs on them to display anything meaningful.

It'd be a lot simpler, wiring-wise, if you could treat them like a serial display; then you'd only need 3 wires to bring them to life - power, ground and serial data. I realised that you could actually fit a surface-mount Atmega [Arduino] chip between the pins on the back if you were careful, so I designed a little "backpack" circuit that you can solder the display to, which handles all the various connections and leaves you just to give it power and data to display.

The schematic isn't particularly interesting (email me if you want it) but it was simple enough to lay out. I'm starting to find that when designing boards to go in tight spaces, it's best to be flexible with which pins connect to what; go with what's easiest to layout, then you can untangle it all in the software. Here it definitely made sense to work out which Atmega pins were going to end up nearest to the display pins first - so you end up deriving the circuit diagram from the layout, rather than the other way round.

Action shots: first, milling the board:

Nearly done:

And roughly chopped out with the bandsaw:

Components and display soldered on - holding the circuit up to the light makes it much easier to see if you've accidentally bridged solder over two pads:

It's pleasingly slim from the side 🙂

I programmed the Atmega with my little spring-loaded ISP clip thingy and tried sending a word for it to display:

The camera doesn't do it justice - it's bright and contrasty in real life. With only three connections needed now I can build the displays into things without having to worry about getting a ribbon cable in there as well now... Plus I can always program scrolling messages etc straight into the backpack itself - instant light-up geek badges, just add a battery... 🙂


Up until now I'd been using scrap bits of metal to act as clamps, holding my PCBs down to be milled:

Not exactly convenient. I needed a better way to fix workpieces down for the mill to work on, but you never know what sized bits you're going to be dealing with in future, so I thought I'd make a perforated work bed. I bought a chunk of white acetal (an engineering plastic) and stuck a bit of graph paper to it, then used it as a guide to drill holes at regular intervals.

I used a countersink bit to take the sharp edges off the holes, then used an M5 tap to thread them all.

Finally, I designed some little clamps and cut them out of black acetal.

Using them I can easily clamp down just about any size of PCB to the bed for the mill to work on, plus it's much easier to clamp other flat things down too. Here's a bit of clear acrylic being worked on:

Total cost: just under £10 for the plastic plus a handful of M5 bolts. Nice.

New mill – cutting circuit boards

The most useful thing a computer controlled mill could do for me is make circuit boards. It's a nice thing to get started with, anyway. Here's the first one I milled:

Oh dear. Doesn't look very good. The mill was gouging too deeply into the board, but that's up to me to correct in the software. The more serious problems are backlash related. The circular pattern on the board has flat edges on the left and right where there's too much slop in the leadscrew mechanism. Tell the mill to move right 10mm, then left 10mm and the head should be exactly back where it started. If the nuts and leadscrews are too loose then some of the motion gets lost in the mechanism, leaving you with flat-sided circles, or cuts in the wrong places - you can see that the square pads near the bottom ought to be evenly spaced, but they're not.

I tightened up the mechanism a little bit and had another go:

Much better. Not perfect, but getting there. (Ignore the circular cutouts - they were there beforehand.) A few more tweaks and I finally managed to get rid of most of the backlash.

There's still a tiny bit of slop, but the error is small enough for me to start making more complex boards:

The nice thing about carving PCB designs with a mill rather than using the traditional acid-etching process, is that I can get the mill to cut the board out as well as just carving the pattern on the PCB:

Rescuing a mill from the skip

Managed to get hold of a rare old mill - an Emco F1. It's a beast. Here's what they look used to look like when they were first sold (gotta love that jacket, huh?):

Here's mine:

Before getting mine into the house I stripped off all the metal casings to leave just the essential working bits. No way to get it into the secret-workshop/attic otherwise. The control box was huge too:

… but with luck I'll be able to ditch it and control it completely from a computer. Before trying to get the thing to move, though, the mechanics of the thing needed overhauling. I stripped it down completely:

And cleaned and degreased all the bits:

And that's when I found that the leadscrews were a bit knackered. The lead screws are almost the most essential parts of the mill - they're the mechanisms that move the head up and down, and move the piece you're milling back and forth under the milling head. They're supposed to move smoothly but these ones felt … crunchy.

Taking apart leadscrews is not for the faint hearted. Although they look like a simple screw and nut, there are a line of ball bearings running around the thread between them.

To stop the bearings from just falling out when they reach the end of the thread, there's a little return tube that carries the ball bearings back to the start of the thread again.

Some of the ball bearings in this mill had shattered and jammed the nuts, stopping them from moving properly up the leadscrew. Nothing for it but to dig 'em all out and re-ball the thing.

Trouble is, when the leadscrew's assembled you can't access the ball bearings - can't even see them. The only way to 'refill' the nut with bearings is to stick them into place inside the nut, one by one, with tweezers. I found that coating them in gloopy lube let me stick them into place inside the nut thread, where they held for just long enough to screw the nut back onto the screw again.

Once the nut is loaded with bearings again (not forgetting that the little ball return tube has to be filled with them too), you can gently thread the nut back onto the leadscrew. As you screw them together, the ball bearings get pushed up the thread toward you, but you can use a toothpick to nudge them into the little return tube.

I couldn't get all the nuts working again - there were two nuts on each leadscrew, with a setscrew to let you put some tension between them, which lets you tighten the nuts to the screw such that there's no slack or wobble. One of the nuts was completely knackered so I decided to ditch it and go with a single nut on the Z-axis (the axis that lifts and drops the milling head) figuring that gravity would help counter backlash.

I assembled it all again - this time with new stepper motors.

The new motors didn't quite match the old ones - the shafts were too long - but I managed to get them to fit by spacing them with spare washers and nuts.

Finally, I carried the thing upstairs to the attic. Not something I'd want to do again 🙂

Next stage: milling some stuff!

Tiny stepper motors

If you're ever in a posh car or on an expensive motorbike, you'll sometimes notice that when you turn the ignition on, the speedo and rev counter dials do a quick self-calibration, moving their indicator needle all the way round the dial and back to zero again.

Instead of using a traditional meter mechanism (a simple coil and magnet), they use a tiny computer-controlled stepper motor. Here's one removed from a dial:

The metal shaft sticking out used to have a little plastic indicator needle on the end. Inside, they're more like a watch mechanism than a traditional stepper motor:

The tiny black cog in the middle is magnetic, and sits in the round gap in the metal frame just to its left.

Power up the two coils in the right sequence, and it drives the tiny cog round, in turn moving the other cogs which move the indicator needle.

These are more traditional stepper motors, though still very tiny:

I dug them out of a tiny camcorder. The shorter one controlled the focussing lens, while the longer one controlled the zoom. The little chip on the left is an Atmega168 - similar to the chip in an Arduino. With luck the chip'll have enough power to drive the motors directly. Not sure yet what I'm gonna get the motors to do, exactly, but whatever it is it'll be tiny and very cool. Yeah.

Secret Project #16638


Ever since I found you could get little SMD jumpers (zero ohm resistors) it's made laying complicated circuits on single-sided circuit boards much easier. Normally if you need a signal to cross over other tracks without touching them, you have to solder little wire jumpers in to form bridges, which means a lot of careful wire measuring and stripping (you can see the red ones above). For little jumps I can use the SMD resistors - the little black oblongs with 000 printed on them. If you're careful they can jump over 3 other tracks...