Fix an A1466 MacBook air charging circuit after water damage? Challenge accepted!
Explicit Warning: There is no time series database at all in this article. Just electronics on closed source hardware.
This article does not describe an easy fix, but a complex one. It can save time to repair professionals or talented hobbyists.
Macbook Air symptoms:
- When the AC adapter is attached, there is no green nor orange light on it.
- When the AC adapter is attached, you can boot the MacBook air, but it doesn't charge anymore. The battery is slowly dying... just a few percent remaining.
- No fever.
- No caught.
This happened after water damage on a rainy day: the computer was in a colleague's backpack, and the rain was strong enough to wet everything inside, including the computer.
After letting the MacBook dry up during the night, it is not charging anymore. (If you know a good waterproof backpack, tell us!)
In this situation, if you are the only electronic engineer in the company, there is a very high chance that your colleague asks you to look at the problem.
OK. Fix a A1466 MacBook air charging circuit.
To fix a MacBook Air, all you need is...
... A digital microscope. Your eyes won't be really useful with 0.35mm pitch component and 0.1mm PCB tracks.
A good iron solder, flux, tiny 0.3mm tin solder, solder wick, tweezers, flux-off (I really like the Chemtronics one, but if you're comfortable with pure isopropyl alcohol, keep it).
You also need a multimeter. An oscilloscope is also a good companion to check the power supply and communication lines. A hot air gun is also useful to remove tiny SMD components, but you can do without.
Remember high end tooling will never replace soldering practice.
To open the laptop, there is tons of available videos on youtube.
A1466 MacBook air has a mainboard, and a small daughter board called "Left I/O board" by Apple. This small board has the MagSafe connector, a USB connector, and an audio jack connector.
Between the motherboard and the I/O board, there is a flat ribbon cable (it is a shielded multi-layer FPC, no a straight simple cable that connects pin 1 of the motherboard connector to pin 1 of the I/O board).
The first obvious culprit was the connector: just look at the corrosion!
These are gold plated connector. Read "100 nanometer gold layer".
The first thing is to carefully clean this connector. I used a 0.7mm flat screwdriver + flux off to remove most of the corrosion. But do not expect to have something clean at the end, gold is gone. Changing this connector is possible, but it is a pain.
After the corrosion cleanup, I thought the job was done. But no, the AC adapter MagSafe light kept off. I told you this won't be an easy fix.
Looking for documentation
Apple is not fond of open hardware, or easy to fix hardware. It is really easy to find high-end audio amplifiers schematics, but hard to find apple schematics. You will find the motherboard schematic easily. But don't expect to find the ribbon cable schematic, or the left I/O board schematic.
This is the most useful video I found on the subject. Thank you, Mr. Louis Rossmann. This man has obviously gathered all the schematics available on the internet, his repair shop is well equipped, but he has not the left I/O board one.
The AC adapter, like every other laptop brand, is talking to the motherboard through a one-wire bus. In nearly all the brands, it is the central pin of the barrel connector. On the MagSafe, it is the middle pin.
With the battery and AC adapter connected, looking with an oscilloscope, there was no life on this bus. 0 volt. This kind of bus has a pull-up, but obviously, it was not powered.
Same guess as Mr. Louis Rossmann: all the MagSafe computers may have the same architecture. Indeed, looking closely at the PCB, there are two circuits that look like MAX9940 one wire protection (datasheet here), and the TC7SZ08AFE logic gate (datasheet here).
The MAX9940 has a 13µA quiescent supply current, which is a bit high and will contribute to battery draw when the AC adapter is not connected. That's why Apple choose to drive the power of the MAX9940 with the TC7SZ08AFE, whose quiescent supply current is around 1µA only. The mainboard put SMB_BC_ACOK high, it turns on the MAX9940 output, and the 2 kOhm pull up of the one-wire bus.
Measures to do
So the first thing is to look at the MAX9940 supply (VCC).
Tip #1: It is so small you better have to weld a 32AWG wire on a test point to do the measure, that risking a short circuit with your multimeter probes. Do not trust your fingers when dealing with 0.35mm pitch components.
Tip #2: disconnect the AC adapter and the battery.
Tip #3: also disconnect the ribbon cable each time you sold on the I/O board. It could avoid an electrostatic discharge in the very sensitive lines.
Result: 0 volt.
If there is nothing here, check the PP3V42_G3H line. It should be around 3.3volt, as soon as the battery is connected, without connecting the AC adapter.
Result: 0 volt.
So, there is no more permanent 3.3volt on the left I/O board. Up to Mr. Rossmann's video, this 3V3 output is located close to the WiFi board.
Take your oscilloscope, plug in the battery, and check that you have 3.3V on the big capacitor, here:
On Louis Rossmann's video, there was nothing here, so he removed all the components of the regulation stage and changed them. On the computer, I do have a stable 3.3Volt on PP3V42_G3H.
Fix the one-wire communication of the MacBook
So, it won't be difficult to take the 3.3Volt to the I/O board... Just need to route wire between both cards. There is already a decoupling capacitor on the I/O board, it should do the job.
Now, the led on the MagSafe connector turn green! But... It should be orange, charging, as there is just a few percent left in the battery. Looking at the battery voltage, it remains at a dreadful 7.3volt, not rising at all.
So... The communication with the AC adaptor exists but is not OK. Maybe the pull up just wake up the one wire chip in the AC adapter, and it turns on the green led.
Worst: in this state, the MacBook refuses to boot. I assume that when there is no one wire communication at all, bios enter a downgraded mode that power the MacBook air without charging the battery. But when the communication is messy, then it keeps on retrying to communicate, and never allow computer power.
Looking at the one-wire bus, there is a weird noise on it. Looking at the MAX9940 supply, it is really noisy too. The SMB_BC_ACOK command is stable, with some regular high to low transitions. The software may be trying to reset the bus. So, the culprit might be the logic gate in between.
Remove the logic gate, and short circuit pins 4 and 5 (VCC and output) together, connect the other wire end to the 3.3 Volt on the motherboard:
MagSafe led turns on, green, then orange. Battery voltage is now slowly rising... The problem is fixed!
The last thing is to tap the wires where you can, for mechanical stability. There is so little free space in a MacBook air that I was afraid to glue the wire with a glue gun.
Here are the full resolution images of the fix. Click to enlarge:
Charging icon is working too. Perfect!
Negligible consequences of this repair:
- Your computer will draw 13 µA @ 3.3 volts more. 43 microwatt. Not really an issue.
- The one wire pull up is always on. Not an issue if you do not short circuit the MagSafe connector.
Working as an independent repair shop with so few documentation is really a pain. I hope that one day, a law will force manufacturers to release public schematics and layouts, maybe with a one year delay to avoid copy... Seriously Apple, take a look at high-end audio amplifiers. Schematic is always provided in the service manual, and service manuals can be found easily!
There is no link with Warp 10 database, but if you work with sensor data and you need a time series platform to store data (industrial, IoT, location data), take a look at the other articles on this blog.
Build a simple Raspberry 3.5 inch dashboard with Warp 10, controlling the framebuffer from WarpScript instead of using X.Org and heavy stuff!
Logs, all those memories could be lost in time, like tears in the rain. Learn how Warp 10 and its UDP Plugin and WarpFleet Resolver can be used to collect, store and analyze log messages in GELF format.