Dead KORG microKEY, Part 2: Noobface McHamfists Desolders His First SMD
17 June 2016
Oh God. Oh God. I've been putting this one off, but the stuff has arrived. I can't back down now!
A brief résumé of what happened in Part 1: this great little KORG microKEY MIDI controller stopped powering up for reasons unknown. By wiring it up to a J-Link debug probe, we found that the CPU was still alive and kicking, yet somehow the computer was receiving garbled USB messages. As this keyboard has a built-in USB hub, the stab-in-the-dark diagnosis was that the chip responsible (a Genesys GL850G) had gone bad and needed replacing. Unfortunately, the chip is a 28-pin 10mm*8mm surface mounted design, and our bumbling hero has never before soldered an SMD component, much less reworked a board!
To properly capture the fear of someone doing surface-mount rework for the first time, everything in this piece was written minutes after happening.
- Brymen BM867s multimeter; possibly overkill for the job? Should only need the voltmeter and continuity tester.
- Tube of 5 replacement GL850Gs from eBay, snipped off the end of someone's pick-and-place reel.
- Pack of ChipQuik SMD Removal Alloy. This stuff has a super low melting point (85°C), meaning you can heat it up once with your iron and it will blob around like soft-serve icecream. Just the thing for pulling miniature chips off a board crowded with things that can be ruined.
- Solder, 0.5mm and 40% lead. Mmmmm, that's good breathing!
- Wick. I decided to go all high-falutin' and buy a new reel which has flux in the braid.
- Stainless steel chip pincers. I hope these things don't get welded to my hand.
- Flux pen. The miracle ingredient that makes solder do impossible things, like stick uniquely to pads that are less than 0.4mm apart. Uh.
- Electronics-grade isopropyl alcohol. I've used up about a third of this bottle from zapping parkour wounds.
- Flux cleaner. I just read the warning label on the side and I am terrified the exposure will make me vomit up a kidney or grow a second anus.
Let's begin by snapping the ChipQuik reel in a futile attempt to unwind it. Surprisingly the solid form is really brittle, but all we care about is that it remains super molten after you've heated it. Hell, I had enough time to take 4 crappy photos of the blob with my lousy camera and it was still pliable with tweezers. Welp, nothing for it but to caaaarefully daub it all over the chip legs!
oh god oh god oh god oh god what am i doing
My hands are shaking like crazy; I'm cooking the ChipQuik with my wrong hand and tugging at the chip with my tweezers in the other, but it's not moving! Still, gotta be patient, after all the solder melts at 80 and my iron is 340...
YES! I DID IT! THE CHIPQUIK FREAKING WORKS! And by some miracle, the blobbing is confined to the chip pads and not the rest of the PCB!
Oh. It would appear that ChipQuik's amazing surface tension and blobbing ability means that it's damn near impossible to absorb with solder braid. The best you can do is smoosh it down. Reading the instructions, what you're supposed to do is flux up a cotton bud and wipe it off while applying heat. After using my pen to create a little puddle of flux on the workbench, I get to work.
The cotton swab is still smooshing, but at least you can scoop it in one go. It dawns on me that it's probably a good idea to swipe away from all the exciting SMD parts. Also you need to be frigging ambidextrous in this game; with the red hot piece of metal in one hand, and the fiddly cotton bud in the other...
Right, an hour has passed. I have switched to pumping flux from the pen straight onto the cotton buds, and employing a lot more rubbing force to scrape the last of the ChipQuik off. This, of course, makes a lot of angel-hair bridges. Now that I've finished polishing the board with isopropyl I can still see two left. Booooo.
Next day! Right, let's put the new chip on there. Start off by blobbing some solder on one of the legs to make a tack point.
DAMN YOU TO HELL, SURFACE MOUNT TECHNOLOGY
Okay. It's on the right spot. There's zero room for error as the pads are slightly fatter than the chip. How the shit are you supposed to tack down one corner of the chip without touching it!?
The answer to this question is apparently "try a whole pile of times with the chip cupped with tweezers, instead of pre-placed". Brillo, time to flux up the pin opposite and get this shit tacked!
Sigh. There's a bridge already.
Right; because the definition of madness is to keep trying what isn't working, I'm swapping the iron tip. All the source material on YouTube shows a large chisel tip; originally I used the (pack-in) tiny chisel tip because I doubted I'd be any better at microsurgery with a shovel. This apparently was a mistake; the larger tip has a much bigger thermal mass and is supposedly easier to rake over the chip legs.
Sigh. There's 5 bridges already. (I didn't take a photo, but imagine a scene similar to the mess made with the ChipQuik).
I give up. Every attempt to use the sucker or the desolder braid mushes the solder deeper under the chip legs, making the bridges even harder to remove. Okay. Time out. We'll return to this soon.
Since I wrote that last bit, 6 months have passed. Many things have changed: I'm in a brand new apartment, the sun now goes down at 5pm, I can do almost proper climb-ups if the wall is grippy and there's a strong tail wind, and I've gotten some practice in by soldering up a fuzz factory pedal with the whacking great chisel tip.
I can hardly believe it. It took about 50 goes but I found a way of using solder braid on the SMD chip legs.
Drop some flux on the bridge area with your flux pen. (This encourages all the solder in the nooks and crannies to flow out). Crank your iron to 320-350degC, clean your tip well on a sponge. If the solder is all oxidised and tough, preheat the bridge area with the chisel vertical (maximum surface area over a minimum no. of pins) until the solder is molten. As soon as it starts becoming liquid, apply the end of the braid vertically (as shown) and wait for 5-10 seconds. Raising two middle fingers to logic, the solder will rise up through the braid like a sticky silver phoenix. Once the braid is soaked, cut off the end and continue sucking with a fresh piece.
Afterwards I went and checked every adjacent pair of chip legs with my multimeter's continuity tester, then repeated cleaning and wicking until all the shorts had gone. It took 3 passes to clean it all up; for one really stubborn pair I had to melt a tiny bit more solder on before the braid would wick all of it.
That was definitely near the worst case scenario, and I've proven I can recover from it. Time to solder down the other side!
Done, that went a lot better. See the thing they don't tell you in SMD soldering guides is when raking with your leviathan chisel tip, you should put a miserly amount of solder on the flat part. An amount that would leave a church mouse angry and resentful because of the false hope. An amount so small even Scrooge McDuck wouldn't think twice about giving it away unconditionally to shut you up. The literal smallest dab possible.
This plus the flux will send it where it needs to go.
There's one pair of pins which was bugging me; the pair from the 5V-to-3.3V regulator (5th and 6th from the right, with the meaty traces underneath). No matter how much I wicked it, the continuity tester insisted there was a 1 ohm connection from Vout to the +5V power rail. The datasheet added to the confusion by insisting all of the supply voltage points on the chip were 3.3V, yet I know for a fact the board ran them all on 5V. I'm guessing that's okay then.
This is all fine and dandy, but two big questions remain unanswered.
- How sturdy is this board against trained apes like me reworking it?
- Did I wreck the replacement chip by heating the crap out of it with my iron?
Whatever there is a time for checks and a time for action and THIS IS A TIME FOR TEST RIG 2: THE SECRET OF THE OOZE
PLUGGED IN! No initial response from the J-Link (probably I attached the probes wrong), but no magic smoke from the board or my PC! Wait does this mean... could... could it be?!
[email protected]:~/Tools/JLink_Linux_V502_x86_64$ dmesg -T ... [Tue Jun 14 20:02:10 2016] usb 3-1: new full-speed USB device number 2 using xhci_hcd [Tue Jun 14 20:19:33 2016] usb 3-3: new high-speed USB device number 3 using xhci_hcd [Tue Jun 14 20:19:34 2016] hub 3-3:1.0: USB hub found [Tue Jun 14 20:19:34 2016] hub 3-3:1.0: 4 ports detected [Tue Jun 14 20:19:34 2016] usb 3-3.4: new full-speed USB device number 4 using xhci_hcd [Tue Jun 14 20:19:34 2016] usbcore: registered new interface driver snd-usb-audio
I DID IT
[email protected]:~/Tools/JLink_Linux_V502_x86_64$ lsusb ... Bus 003 Device 004: ID 0944:0111 KORG, Inc. Bus 003 Device 003: ID 05e3:0608 Genesys Logic, Inc. Hub Bus 003 Device 002: ID 1366:0101 SEGGER J-Link PLUS Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
I FIXED THE KEYBOARD
[email protected]:~/Tools/JLink_Linux_V502_x86_64$ ./JLinkExe SEGGER J-Link Commander V5.02 ('?' for help) Compiled Aug 28 2015 19:48:33 DLL version V5.02, compiled Aug 28 2015 19:48:30 Firmware: J-Link V9 compiled Aug 28 2015 17:49:48 Hardware: V9.30 S/N: 269304498 OEM: SEGGER-EDU Feature(s): FlashBP, GDB Emulator has Trace capability VTarget = 5.022V Info: TotalIRLen = ?, IRPrint = 0x..FFFFFFFFFFFFFFFFFFFFFFF1 Info: TotalIRLen = ?, IRPrint = 0x..FFFFFFFFFFFFFFFFFFFFFFF1 No devices found on JTAG chain. Trying to find device on SWD. Info: Found SWD-DP with ID 0x2BA01477 Info: Found Cortex-M3 r2p1, Little endian. Info: FPUnit: 6 code (BP) slots and 2 literal slots Info: CoreSight components: Info: ROMTbl 0 @ E00FF000 Info: ROMTbl 0 : FFF0F000, CID: B105E00D, PID: 000BB000 SCS Info: ROMTbl 0 : FFF02000, CID: B105E00D, PID: 003BB002 DWT Info: ROMTbl 0 : FFF03000, CID: B105E00D, PID: 002BB003 FPB Info: ROMTbl 0 : FFF01000, CID: B105E00D, PID: 003BB001 ITM Info: ROMTbl 0 : FFF41000, CID: B105900D, PID: 003BB923 TPIU-Lite Info: ROMTbl 0 : FFF42000, CID: B105900D, PID: 003BB924 ETM-M3 Cortex-M3 identified. Target interface speed: 100 kHz J-Link>
The little bugger has risen from the dead, working as well as it ever has. It's great when a crazy guess turns out to be vindicated like that. Plus I definitely levelled up on my soldering from this experience.
I suppose we should finish with some Lessons Learned:
- Soldering is a game of mastering surface tension to your own ends. You've probably noticed that surface tension causes large bulbous drops of water to form on dry surfaces and edges, whereas adding water to already-damp surfaces produces tinier thinner droplets. The clown-sized chisel tip is far better at carrying small amounts of solder because of this same principle; because there's a large pre-wetted tip area, the solder won't accumulate in a ball but instead hug closer to the tip surface. As a bonus, you don't have to overcome the large natural surface tension of a ball to get it to flow onto another surface.
- For that reason, if your iron doesn't come supplied with a 2mm chisel tip, buy one on eBay and make it your standard.
- ChipQuik really takes the misery out of desoldering and saved having to buy an expensive board heating/hot air station, but it costs a fortune.
- The one piece of advice I took from YouTube that paid off was to use a smaller gauge of braid (1.5mm) and solder wire (0.5mm), both multicore flux.
- Oh and cover everything in flux too, it gives you more cheat points to beat surface tension.
- Solder suckers are useless. You get a gap of maybe 30 milliseconds between your iron leaving the joint and the solder hardening. Save your money.
- I probably could have bought 3 new microKEYs with the amount I ultimately dropped on tools and consumables. Save your money.
I might return later to explore the rest of this Cortex M3 hardware; all of the interesting code isn't blocked off by the broken USB comms anymore, the key input and wheel ADC routines are up for grabs. Right now I'm just happy to finally clear away this mess of tools that have invaded my workbench, and to have my keyboard back. I knew you would pull through, old chum!
AFTERWORD: The more clued-up people might've noticed that I missed a crucial step; resoldering the first set of legs properly after wicking away the bridges. I didn't realise this would be an issue until after a couple of days of running, when the keyboard would lose USB sync every hour or so:
Jun 17 15:27:12 dangerfield kernel: usb 1-2-port4: disabled by hub (EMI?), re-enabling... Jun 17 15:27:12 dangerfield kernel: usb 1-2.4: USB disconnect, device number 16 Jun 17 15:27:13 dangerfield kernel: usb 1-2.4: new full-speed USB device number 17 using ehci-pci
Port 4 is the Cortex M3, so I guess DM4 and DP4 were hanging on by nothing but the whims of thermal expansion. I re-raked those pins and the dropouts have gone.