Author Archives: ratranch

Resurrecting a 17″ MacBook Pro with a heat gun

So the dreaded day came when my beloved “late 2011” 17 inch MacBook Pro died.  The screen wigged out while it was in use, then it would only boot halfway before stopping at a gray screen.  From experience, I knew that it was suffering from the dreaded AMD GPU logic board failure.  What commonly happens is that the solder joints in or around the GPU daughter-card fail over time, resulting in a gray, blank or garbled screen.

Ordinarily I would not attempt to repair any board with solder failure but new logic boards are simply not available for the late 2011 models and used ones are absurdly expensive (and may be close to failing anyway).  The repair I describe below worked perfectly for my 17 incher and also applies to the 15 inch models from the same era.

Best MacBook Pro ever?

IMHO, Apple has never made a better laptop for the the specific use case scenario where some limited portability is required and screen real estate is more important than size/weight.  This was the last of the 17-inchers, perhaps forever, and I plan to keep using it until it is pried out of my cold dead hands.  Okay, the last part is a bit of an exaggeration but my MBP does everything I need it to do and is still plenty fast.  Over the years I’ve managed to keep it ticking by upgrading to 16 GB RAM–Apple only officially supports 8 GB, but this works just fine thank you very much–and a 1 TB SSD.

Several people suggested that I should just put the old relic out to pasture and update to a new 15″ MacBook Pro.  “You can fit even more stuff on the new 15 inch screen!” they say.  Indeed, the 17-incher’s 1920 X 1200 pixel native resolution seems puny compared with the current 2880 X 1800 px Retina display.  But my eyes ain’t what they used to be and cramming my workspace into 15 inches just makes everything too darned small.

Non-intrusive repair option

Anyway, back to the repair.  The least intrusive way to make a MBP with GPU failure operational again is to disable the AMD GPU via software.  The built-in Intel GPU will take over but video performance for demanding tasks would suffer greatly.  I use my laptop for photo editing so that wasn’t a viable option.

Logic board repair options, from conservative to crazy

The other common fix is to reflow the solder in and around the GPU by using a heat source.  Multiple techniques, ranging from reckless (and cheap) to professional (and expensive) have been applied, with mixed success.  I hit the web to see what worked best.

During my research, mainly on Youtube, solutions included:  bake your MacBook in the kitchen oven at 350 degrees for an hour (like a cake?), disconnect the fans and leave it running and wrapped in blankets for a couple of hours (so snug and warm), open the bottom cover and hit the logic board with a hairdryer until you smell stuff melting, or (yawn) remove the logic board and put it though a programmed heating profile in an expensive professional reflow oven.  This video was one of my favorites.

So lacking a reflow oven but wanting to be halfway scientific about doing the job, I decided to reflow the GPU using a common hot air gunThis video does a good job at demonstrating the technique and is pretty close to how I did it.  The time/temperature points I chose are a little different based on my review of lead free solder reflow oven profiles, with times and temperatures increased slightly to compensate for hot air heating inefficiency.

Hot air reflow procedure

Note that all temperatures are specified in degrees Centigrade.

  1. Disassemble the MacBook Pro, referring to an online guide like those on ifixit.com, and remove the logic board.
  2. Clean all thermal paste residue off the CPU and GPU, using thermal grease solvent, flux remover, methanol or any other PCB-friendly solvent that works.  Just please do not use rubbing alcohol. It contains water and could create some new problems.
  3. Create a mask for the GPU using two or three sheets of aluminum foil.  You’ll want to cover all of the logic board except for the GPU.  Don’t install the mask yet.
  4. Place the logic board on a heat proof surface.  With your heat gun set to high and held a couple of feet away, heat both sides of the logic board for a couple of minutes to around 100° C.  The temperature isn’t really critical at this stage. The goal is warm up the entire board, but not so much that it cannot be handled by its edges.
  5. Attach the aluminum foil mask that you made in step 3.  If you are using a thermocouple for temperature measurement, affix the end so that it is resting on a corner of the GPU.  (I used a Fluke multimeter with a Type K thermocouple).  An infrared thermometer also works great;  keep it aimed at the middle of the GPU.
  6. In the subsequent steps, stay as close to the recommended times and temperatures as possible.  If your heat gun has high and low settings, select low.  Hold the heat gun about 3 inches from the GPU, moving it closer or further as necessary to hit the temperature targets.
  7. Apply heat until the surface of the GPU reaches 200° C, then continue applying heat for 3 minutes, keeping the GPU at 200°.
  8. Slowly increase heat to 220°, no more than 3° per second.
  9. Hold at 220° C for 2-1/2 minutes.
  10. Increase GPU temperature to 290° C and hold for 1 minute.
  11. Slowly back away the heat gun, decreasing heat by no more than 6° per second until you reach 200°, then turn off the heat gun and allow the logic board to continue cooling to room temperature
  12. Apply new thermal paste to the CPU and GPU, reinstall the heat sink and reassemble the laptop.

Conclusion

So far my success rate with this process is 100% 🙂  During my web research, I saw several comments indicating that this repair should be viewed as only temporary because the original design is flawed.  But if it my trusty 2011 17″ works for another six years, I’ll be more than satisfied with the couple of hours time invested in fixing it.

This repair was performed in March 2018 and I’ll make a follow-up post if the same failure occurs sometime in the future.

Update – December 30, 2018:  The repair only lasted for nine months before artifacts started appearing again whenever the GPU was activated.  At this stage, I had already shifted to a new 15″ MacBook Pro as my main computer and relegated the 17-incher to my workshop, where it is mainly used for slicing 3D prints.  The GPU’s improved graphics performance has no benefit for this application.  Integrated graphics work just fine.

Instead of spending half a day performing another heat gun repair, I installed Cody Krieger’s excellent gfxCardStatus menu bar app to permanently disable the GPU.  gfxCardStatus is free and open-source, but please consider giving Cody a generous donation if you use his app to extend the useful life of your $1500+ laptop.

 

13″ Retina MacBook Pro Retina won’t boot, fan running full blast

So this repair is mildly interesting.  The user’s late 2012 MacBook Pro just wouldn’t start up one morning.  It would get as far as a “missing boot disk” icon and shortly thereafter the fans started running full blast.

Apple Diagnostics recognized that an SSD was installed but was unable to determine any of its attributes like capacity, etc.

The computer would boot from an external USB drive but it ran very, very slowly and mouse cursor movement was erratic.

So the first task at hand was to attempt to recover the user’s data before trying anything else.  Some quick research on ifixit.com revealed that Apple really doesn’t want its customers repairing or upgrading this laptop.  I thought I had every conceivable security bit in my kit, but nope, I had to part with $8  for a P5 Pentalobe driver kit.

Adding insult to injury, for a very short time in 2012-2013, Apple used a proprietary SSD in the Pro and Air laptops.  Just for giggles, it uses the same connector as an industry standard mobile SATA drive but has a different pinout.  There are only a couple of options for replacement/upgrade SSDs and they are really expensive.  But at least you won’t spend a lot on RAM for this machine because it is not user replaceable.

So there went another $16 for a SSD HDD to SATA 22Pin adapter that may never get used again.

Some good news!  I hooked up the SSD to another Mac and it was 100% fine.  I backed up the user’s files to flash drive so he could get back to work while I investigated further.  The initial diagnosis was that the logic board had gone bad and we agreed to a maximum repair budget of $300.

Upon initial inspection, there was no evidence of physical or liquid damage anywhere inside the notebook.

Halfway through the disassembly process, I found one possible symptom source.  When I removed the heat sink from the logic board, I noticed a small spot of rust on the surface of the CPU.  Could this be interfering with good thermal transfer between the CPU and the heat sink, causing the CPU to overheat?

Next problem:  when I removed the I/O board data cable, I noticed some white corrosion on the cable connector and socket opposite the logic board. (See step 12 of the logic board replacement guide on iFixit.)

It took a bit of time under a large magnifier with some sharp dental picks, but I was able to clean all the corrosion off the cable and I/O board connectors.

It appeared that a very small amount of liquid (probably plain water given no evidence of stickiness) had been sucked in by the left fan and blown across the I/O cable and between the CPU and heat sink.  The user never noticed how or when this happened.  Perhaps the laptop was being used on a surface where something had spilled or was briefly used in the rain.

I carefully reinspected the MacBook and found no further signs of liquid or corrosion so I decided to just clean up the CPU and heat sink with some solvent and gave both a light polish with a new dollar bill to remove the rust.  I put a dab of Arctic Silver thermal paste on the CPU, reinstalled the heat sink, and reassembled the MacBook.

Bingo!  Everything works normally now.  So for $24 for tools and $0 for parts, the laptop was revived.

30 Second Fix for iPhone not charging

This morning I fixed my sixth or seventh iPhone with this apparently common problem.  Over time, the Lightning charging port at the bottom of the phone can fill up with lint or other debris, especially for people who carry their iPhones in their pocket.  The gunk gets increasingly compacted every time the charging cable is plugged in, until it accumulates to the point where the phone charges intermittently or not at all because the charging pins are no longer making good contact.

You should be able to insert the charging cable all the way into the port.   If you can’t, it is very easy to correct the problem.  First, switch off your phone to avoid any possibility of creating a short circuit.  Using a toothpick or other suitable tool (a tiny flat head screwdriver like you’d find in a precision screwdriver set works perfectly), clean out any junk in the port.  Try plugging in a charging cable and repeat if it still isn’t seating correctly.

 

A USB adapter for the Apple Newton keyboard

Back in the pre-smartphone days, the Apple Newton was the first device in the PDA category.  Newtons were only sold for five years between 1993 and 1998, when Steve Jobs pulled the plug on the program.  Although Apple frequently took a ribbing for problems with the Newton’s handwriting recognition feature, its main problem with achieving market dominance was Newton’s high cost.  Although it beat the wildly successful Palm Pilot to market, Newton could not compete on price.

One of Newton’s accessories was a very compact keyboard (just a hair over 10 inches wide).  I had one rattling around in my spare parts bin and it was the perfect size to use with the SunFounder Display and Raspberry Pi one-piece computer that I recently assembled.

Only one problem, no way to plug it in.  The Newton keyboard outputs a serial data stream and the RasPi (like most other modern computers) requires a USB keyboard.  Further complicating matters, the Newton keyboard does not produce ASCII characters.  Like the legacy IBM XT and AT keyboards, the Newt keyboard outputs a unique scan code for each key.  One code is sent when the key is pressed and another gets sent when the key is released.

I was surprised to find that nobody currently sells a pre-built adapter to do the serial to USB conversion.  (Such adapters exist for IBM keyboards, but are not pin or code compatible with the Newt keyboard).  The only homebrew solution I could locate was from a guy in Japan who posted this video but little else in the way of details.

I was able to piece together the following information from various sources:

  • The Newton keyboard runs at 5V (technically 4.5 volts) and produces a 5V TTL compatible signal
  • Baud rate is 9600-N-8-1
  • We can connect it to a microcontroller using three pins:  pin 2 – +5V, pin 8 – signal, shield – ground
  • The key scan codes are similar but not identical to those use by IBM AT keyboards

To make the Newt keyboard impersonate a USB keyboard, I would need to remap the serial data to USB.  This job calls for a small, cheap, 5V tolerant microcontroller having both serial and USB interfaces.

The Teensy 2.0 board is perfect for this purpose.  It can impersonate all kinds of HID devices like mice, keyboards, joysticks, etc. and it is compatible with the Arduino IDE, which comes with a great keyboard library that can do all the heavy lifting.

If you want to build your own adapter and are familiar with building Arduino projects, feel free to grab the sketch here.  Pinouts are in the readme file and you can install the Teensy (or MC board of your choice) within the Newton keyboard or in an external enclosure.

If you’d like step-by-step directions for my build, please continue reading.

Bill of Materials

  • Teensy 2.0 microcontroller development board (there are several Teensy versions;  make sure you use one that operates at 5 volts).
  • An 8-pin mini-DIN M/F or F/F cable like this one from Cables to Go.  We will be cutting off the female end to connect to the Newton keyboard.  Any similar legacy Apple serial cable would work
  • A suitable enclosure for the Teensy.  Note that there is plenty of room inside the Newton keyboard case.  If you don’t mind opening it up, you can mount the Teensy board inside.
  • A short USB A to mini B cable to connect your computer to the Teensy board

Hardware Assembly

  1. Cut off the female end of your serial cable leaving at least a couple inches of wire.
  2. If you are using the Cables to Go cable, solder the brown  wire to VCC (+5 Volts), the purple wire to D2, and the uninsulated shield to GND (ground) as shown above.  Use a piece of shrink wrap tube or tape to cover the shield wire so it doesn’t short anything on the Teensy.

    If you are using a different mini-DIN connector, use a multimeter to find the wires attached to pins 2, 8 and the connector outer case.  Pin 2 gets soldered to VCC and pin 8 gets soldered to D2.  Looking at the female connector that you will plug the keyboard into, pin 8 is on the upper left.  Here is my sketch of the connector that will surely end up hanging in the Louvre:

  3. Connect the keyboard to the connector you just soldered on and connect a USB cable to the Teensy.  Mount it either inside the keyboard case or in a suitable enclosure.

Programming the Teensy

  1. Install the latest Arduino IDE, if necessary.  It can be downloaded here.
  2. Download and install Teensyduino, which is an add-on for the Arduino software that adds Teensy support to it.
  3. Download the Apple Newton Keyboard to USB Converter library  (Mac users:  please Ctrl-click and choose Save As to prevent the ZIP file from automatically unpacking)
  4. Launch Arduino and install from the ZIP file by selecting
    Sketch–>Include Library–>Add .ZIP Library
  5. Open the Sketch named NewtonKeyboardToUSB, which is located in the folder Arduino/libraries/newtonKeyboard/examples
  6. Upload the sketch to the Teensy.  If this is the first time you are uploading a sketch from the Arduino IDE, you will need to
  7. Your computer should immediately recognize that a new keyboard has been plugged in

Further improvements

There are lots of digital inputs and outputs available on the Teensy.  It might be nice to use one of the outputs to drive an LED that indicates Caps Lock state.  Or perhaps it would be useful to assign some inputs to keyboard macros.

 

A nice display for Raspberry Pi

I needed a compact computer setup for my cramped electronics workbench.  The SunFounder 10.1 inch display is both space- and cost-efficient.  Instead of using molded parts for the case, SunFounder uses laser cut acrylic sheets, presumably to keep the cost of production down.  A Raspberry Pi computer can be mounted behind the screen.

Although it has a few minor quirks, the SunFounder screen represents a great value.  Recent price on Amazon was $110.99.  Add a $25 RasPi, keyboard and mouse and you’ve got a very capable little one-piece computer for under $150.

What I like about this display:

  • 1280 X 800 pixel resolution is more than adequate for running a browser or a few terminal sessions
  • As claimed, the IPS LCD screen has a very wide viewing angle.  I also found the color saturation and contrast to be excellent
  • Built-in speaker
  • It has VGA and composite inputs in addition to HDMI

And a few deficiencies:

  • The monitor arrived with several loose screws.  Seems whoever assembled my unit didn’t have a screwdriver that day
  • I needed to dremel one of the acrylic plates that holds the RasPi in place to make it fit properly
  • An onboard source of power for the RasPi would be welcomed.  I suspect that a 5V connector that taps internal power could be added for less than the IR remote control that comes with the display.  What possible use is a remote anyway?  I can’t envision ever being more than arm’s length away for a screen that’s only 10 inches wide.

    My kludgy solution was to velcro an extension cord to the back, connecting separate power bricks for the display and RasPi:

  • Out of the box, I was getting no sound from the display.  The printed instructions that came with the it said to run raspi-config and choose the option to force audio out through HDMI.  But that did not work because the computer was detecting the SunFounder screen’s interface as DVI, which is not audio capable.  The solution was to add the line hdmi_drive=2 in config.txt to force HDMI mode.

These minor nits aside, for the price of a cheap Chromebook, the combination of the Raspberry Pi and SunFounder display provide several features that are useful on my workbench and would not be available on other similarly priced platforms like a  built-in serial port, gpio pins and the ability to display HDMI, VGA or composite video.

Next project, a perfect companion for this setup:  let’s dust off an Apple Newton keyboard and add USB connectivity to it.