TC: Surface Mount Madness

Interlude:  Innovation!

So I finish getting all the surface mount components on the board, and solder down the crystal as well.  That’s basically it for the general components; all that’s left are the buttons and that godforsaken display.  I still can’t believe I forgot to check the thing.

Now I’m stuck, though.

It’s basically built, but I don’t want to put the switches on unless the display will work – and I don’t know yet how to put the display on.  Some quick testing shows that the circuitry appears to work (or at least, the processor is running), so there’s nothing stopping me if I can figure out how to make the display fit.  I just have to figure out how.

(Side note:  when I first got my hands on my Fluke 87V, I thought the frequency counter would be the most useless feature.  Not so!  Turns out, it’s actually quite handy for quick circuit checks.  Probing the row lines showed a 20KHz signal, which meant that the processor was running.  No oscilloscope necessary!)

So I enter head-scratch mode for a bit, and then my eyes fall on a pile of jumper wires sitting in front of the prototype.  Hmmmmm, I think.  Would that work?  Those are, what, 22 gauge?  They might just fit…

A High-Tech LCD Comb

Looks a bit like a funky hi-tech comb, doesn't it?

And sure enough, they do.

And so ensues the tedious task of stripping down a bunch of pre-cut jumper wires (I didn’t have any other solid 22-gauge wire) and chopping ’em up into little bits.  Now all I have to do is figure out how to get the already-soldered header out of the prototype’s display without destroying the thing.  I have no desoldering equipment.

I tried that a couple of weeks back with solder wick, but it was a Really Bad IdeaTM.  It resulted in a mangled display:  a couple of pads pulled up, and solder down in the holes that’s impossible to get out without proper tools.  I only had the two displays, one of which was toasty, so making that kind of error was right out.

But then, I think, what if that other display can be salvaged?

So I go spelunking in the parts bin and pull out the old display.  I mean, I have flux now, right?  This should be doable!  Copious application of flux to the pads, load up the iron with solder, and use tweezers to shove my makeshift pins through the solder-filled holes while applying the iron.

Lo and behold:  success!  And a resurrected display that I thought was worthless, to boot: I plugged it into the breadboard (easier said than done), and it worked perfectly.  Turns out, there were no traces connecting the pads I managed to destroy.

Step 4:  First Run

LCD Board Sandwich

Success! Not the prettiest job in the world, but it works.

Okay, so I have a display.  After tangling with my makeshift header and managing to get it soldered down to the board, I go through and start putting switches down.  This is the easy part; yeah, there’s some fifty-four pins to solder, but they’re all through-hole, which makes it trivial (and flux helped here, too).

That finished, I come to the realization that the thing is actually done.  There are no more parts left.  Everything’s soldered.  Close examination shows that everything appears to have good joints, and nothing is out of place.

So I plugged it in.

I was actually pretty surprised; I figured it would probably blow up on me, but it didn’t.  In fact, the results were extremely positive.  The display came right up, and everything worked.

Well, almost everything.

The playing song happened to be unrated, and I noticed that the red 5-star button was flashing instead of the white 0-star button.  That reminded me that I’d made some design decisions when I designed the PCB:  specifically, I reversed the LED pins because it made for a cleaner board design.  Okay, that’s an easy fix; edit platform.h and reset the pin assignments, recompile, flash it in, and all is good.

The only other issue was that the one-star button was generating a zero-star keypress event.  This was something I’d seen before while tinkering with the values of the pull-down resistors on the prototype:  if they were too large, the inputs wouldn’t settle fast enough, and you’d register incorrect key hits.  It wasn’t all that surprising, really.

This is likely caused by a difference in parasitic capacitance in the design.  I’d expect it to go the other way, but you never know with these things.  I’m not an expert on PCB design, and have no idea how to calculate such things.

Fortunately, this is an easy problem to solve in firmware.  Just add a 1µs delay after setting up the relevant row line, before reading the column inputs.  The extra delay gives the circuit time to settle.  At 24MHz, the PIC’s instruction cycle is about 170ns, which is just too fast for my chosen values.

Flash the new firmware, and the problem is solved.

About Steve

When it comes to the desktop, Steve is a former Amiga, Windows, and Linux user, and as of six years ago, a die-hard Mac head (who, for once, isn't thinking of changing platforms again any time soon). When it comes to the server, Linux is pretty much the only game he plays. He also enjoys hardware hacking, and shouldn't be allowed near a keyboard after the sun sets (or for that matter, after it rises. Don't say I didn't warn you).
This entry was posted in Hardware Hacking, TuneConsole. Bookmark the permalink.

4 Responses to TC: Surface Mount Madness

  1. Joe says:

    Oh wow that hurts, the iTunes playlist. Oh thats painful. I feel for you. That hurts. I’ve had my fair share of that kind of stuff. No worries. You are in great company.

  2. Malikaii says:

    Here’s another good way to keep your SMD parts sorted, while supplies last:

  3. Mark says:

    Nice write-up! I noted your frustration at soldering the micro-controller, I work soldering these things manually on an almost day-to-day basis. I have found that the quickest way to solder these parts (without expensive re-flow equipment) is to accept that there will be solder bridges and be quite liberal in spreading solder across the pins, mopping up the excess (as you did) with solder braid. A solder pump could be a useful investment if you plan on doing more with SMD components as it can save considerably on using braid. Also a magnifying lens of some kind is a must (A 10x jewellers lens is a good option) Keep up the good work.

  4. Charles says:

    Thanks for the tips Steve! whenever I’m working on a project like that I typically have parts all over the place and almost always leave a burn mark or two when soldering. The cardboard and foil trick worked great, my wife always has a fit because for fine work I usually set eveything up on the kitchen table.

Leave a Reply

Your email address will not be published. Required fields are marked *