Repair AC version Time Capsule or Extreme

The AC version Time Capsule A1470 and the Extreme A1521. We refer to them as Gen5 TC and Gen6 AE. However Apple dropped using the Generation and if you open the airport utility and check the model it is just listed as
AirPort Time Capsule 802.11ac

Released June 10th 2013 earliest models are now over 5 years old and the design is >6+years.. They are the last airports as Apple have finally pulled the plug on router manufacture. 

Common faults. 

Fan gets clogged with dust and the Airport overheats. Solution is to open it and clean the fan. This is quite a big job so long term you really should find a fairly dust free environment to put the Airport so it doesn't quickly fill up with dust and get clogged. 

Sometimes the Airport overheat turns on and the fan will speed up to 5000rpm from its standard operation around 1500rpm. This appears to be caused by fault in the temperature sensor. 

Power supply (PS for short) now and always are problems. Even if it is a better design than previous models it is still a poor working environment. 

Various network problems particularly with WAN port functionality. This is problem that is not repairable. The Airport will work fine as simple Access Point. You can then plug it into any main router by ethernet from its LAN port instead of WAN once you complete the configuration. 

How to replace a faulty internal power supply and sensor with external supply and sensor. 

You can buy replacement PS on ebay as well as fans readily enough. I suspect many of the PS sold are actually recovered units not brand new. 
My solution is of course to run it from an external PS. They are cheaper and of better quality, if you buy reasonable ones. They are easy to get now with LED lighting making 12v and 3-8Amp supplies ubiquitous. 
This model is so much easier in using a single voltage 12v 5A supply where previous model TC used dual voltage supply. 

So a few pictures. (I will update these in due course with better photos)





Power supply plug on the left has a fairly simple pinout. It has 8 wires. This plug pulls out vertically.. the other plugs you need to lever the wire end up and the plug will disconnect from the socket. They are a pain to put back on so practice now with the case off. 

I will number it from the Left 1-8 (This is for convenience so you know how to wire it).

1-3 + 12v

4,5, and 8 Gnd connection (On the Delta power supply they have a grey sleeve)

The two slightly thinner wires 

6 Temperature sensor +ve
7 Temperature sensor -ve (also with a grey sleeve on the power supply board). 

Now you could just solder the external DC socket straight to the underside of the board and leave it in place but I preferred to fix the whole thing, so removed the power supply completely. 
I cut the wires off.. unsoldering was impossible.. they are fitted with very tight collars. 

Then I connected a standard DC 2.5mm socket with some good quality cables.. I made them longer than was necessary but as you can see from the picture at the bottom they tuck around neatly. 

Now the temperature sensor which confused me until I got a chance to eyeball the supply properly. After much searching the tiny surface mount transistor is identical design to the previous models.

It is using a surface mount equivalent of 2N3904 NPN transistor .. Base joined to collector (BC). and a small ceramic noise filter capacitor across the leads.. typical value would be 0.1uF.. but any size is fine.. I could not get the meter to read it so a poor cap might have something to do with the wrong temperature readings. 

I used a 2N3904 transistor. (BC547 and most GP NPN silicon transistors will work fine) 
Bend the Base lead and solder it to the Collector.  cut the remainder of the lead. I soldered the tiny ceramic capacitor also in between them. Then pin 7 to emitter (-ve) and pin 6 to BC (+ve). Sealed it up with heat shrink tubing.. so that it insulated the leads from each other and the outside of what it touched, which shows in the picture on the left prior to shrinking to make sure it worked correctly.. just as well because there were still problems. 








Not a great picture but you can get the idea. 











Faulty Sensor

Now to explain what the problem was. This TC came to me faulty. The fan was running at full speed within a few seconds of powering on the TC. It showed overheat problem in the airport utility. 
The original sensor seemed to be faulty.. but this replacement transistor although it worked better still did not fix it. 

At normal operation you can see the temperature reading. (see envstat command output below.. email me if you want details of how to get this info.. rayhav@gmail.com)

The original PS sensor reads 127deg C. No wonder the fan was screaming!!

The replacement transistor was reading around 75deg C.. improvement in reading but fan still screaming. 
Plus it was behaving strangely.. if I directed the fan directly onto the sensor the temperature went up not down.. something in the compensation circuit was also bad. 
Rather than dig around for something tightly packed into the main board.. I changed temp sensor from NPN transistor to a PNP transistor. (hoping the change in polarity would also fix the problem) 

The particular one I used just so you know is MPS6563 but any silicon planar type general purpose transistor (eg 2N3906, BC557) should be fine. You still connect base to collector.. but you swap polarity.. Emitter to +ve and BC to -ve. 

This now reads a little low but the slope is steeper and it will go up quickly if the unit was to overheat.. very unlikely btw with the PS out of there. 
See the edit at the bottom.. in the end this still failed and I was forced to ground the +ve sensor side.. which might offer an easier solution to the above. 

Faulty Fan

Fixing the sensor I thought all should be fine.. put the whole TC back together only to have the fan screaming still. Not good. 
Next problem turned out to be the original fan was in fact faulty. It was easier while testing outside the TC case to plug in a replacement fan. What was foolish was to not test the original fan itself. The fan was running fine but the tacho had failed and so no fan speed was registered. The fail safe much be to kick the fan up to full speed if the tacho is out. So disassemble and replace the fan. 

And just to comment.. i really hate the way this thing is built.. it is fiddly and board plugs are over small and difficult to use. It was clearly designed to fit the form.. leading to even worse plug layout cf the previous Generations. 

The TC is now running nicely. T_external1: now reads 17degC .. a little low cf the other sensors. RPM on the fan is dead right. 

brokentc# envstat

                 Current  CritMax  WarnMax  WarnMin  CritMin  Unit

[accel0]

  Accl X-Axis:      1028        0        0        0        0 none

  Accl Y-Axis:        71        0        0        0        0 none

  Accl Z-Axis:       -11        0        0        0        0 none

    Accl Temp:        17        0        0        0        0 none

[applfan0]

      Fan_rpm:      1569                                      RPM

        T_hdd:     0.000                                     degC

      Fan_dcy:        57        0        0        0        0 none

[emc141x0]

   T_internal:    39.500                                     degC

  T_external1:    17.000                                     degC

  T_external2:    45.750                                     degC

  T_external3:    46.875                                     degC


The other correctly working TC  readings so you get a comparison. 

tcgen5# envstat

                 Current  CritMax  WarnMax  WarnMin  CritMin  Unit

[accel0]

  Accl X-Axis:      1049        0        0        0        0 none

  Accl Y-Axis:        41        0        0        0        0 none

  Accl Z-Axis:        -8        0        0        0        0 none

    Accl Temp:        19        0        0        0        0 none

[applfan0]

      Fan_rpm:      1743                                      RPM

        T_hdd:     0.000                                     degC

      Fan_dcy:        57        0        0        0        0 none

[emc141x0]

   T_internal:    40.500                                     degC

  T_external1:    38.750                                     degC

  T_external2:    45.625                                     degC

  T_external3:    46.625                                     degC


And just so you know how bad it was.. here is the original numbers on the broken one. 


[emc141x0]

   T_internal:    25.750              degC

  T_external1:   127.875              degC

  T_external2:    27.500              degC

  T_external3:    29.000              degC


The fan was doing 5000rpm. 


Final shot below of the whole thing screwed together.. before the base plate is popped back on. 

Mounting of the hard disk is even bigger pain than wires.. this is such a difficult way to build so the hard disk needs removal before the main chassis.. I think I am going to do some redesign here. 




So now you plug in a standard external 12v power supply. 

It draws only 8.5W with the disk spun down.. so I would say a supply of around 3A for most purposes will be plenty. 

This also runs a lot cooler and has less need of the fan.. in fact you can probably run it without but you will get a fan error. 

EDIT 19th Aug 2017


Just a brief extra note. 
This post still needs a clean up but I am still in testing discovery stage. 

The fan started running fast yet again.. with the temperature off the scale. Not real.. totally false reading. 

I could not stand the noise and opened the TC again to check.. but there was nothing apparently wrong and I could not readily fix it. 

To preserve my sanity I grounded +ve side of the sensor.. which totally killed the temp reading, ie it is now and forevermore 0deg.  This brought the fan back to normal speed. 
This is totally OK..  reads original power supply which is gone. 

brokentc# envstat

                 Current  CritMax  WarnMax  WarnMin  CritMin  Unit

[accel0]

  Accl X-Axis:      1029        0        0        0        0 none

  Accl Y-Axis:        80        0        0        0        0 none

  Accl Z-Axis:       -16        0        0        0        0 none

    Accl Temp:         9        0        0        0        0 none

[applfan0]

      Fan_rpm:      1706                                      RPM

        T_hdd:     0.000                                     degC

      Fan_dcy:        57        0        0        0        0 none

[emc141x0]

   T_internal:    29.875                                     degC

  T_external1:     0.000                                     degC (Grounded so no reading)

  T_external2:    35.625                                     degC

  T_external3:    37.125                                     degC


This router has given me headache after headache.. at times I just wanted to throw it in the bin. 

It has now annoyed me so much but I kept having a hack at it to see if I could beat the problem. 

Major modification. 

Edit 29th Oct 2018.

The fan control simply will not be fixed.. So I figure unplug the fan.. but to do that I need to either massively modify the TC to get decent cooling.. but the case is not really suited to it. Or mount the TC in a totally new case.. which is very difficult due to the 45deg angle on the ethernet ports. 
So here is my new solution.. a simple Aluminium open case. 




I trimmed the fins on the heatsink to fit into a plastic case but it did not work out due to silly angle on the ethernet ports.. 

So you do not need to do that. 

On the Aluminium I made mounting holes for the hard disk and the original steel plate (cut off from original U shaped) 























At some point I will mount the 2.5mm dc socket and the main indicator properly onto the Aluminium frame.. 

As proof of concept this works fine though. 



















I certainly intended to replace the antennas but nothing I tried was anywhere near as good as the original .. so just left it in place. 
The unit is sitting behind the TV so invisible. 

Obviously you cannot do this if you power it from AC.. only safe with 12v dc external power supply.. but the temperatures are fine. 

BTW.. I tried to use a different hard disk.. in this case a 5TB WD green which I have currently in a Gen4 TC.. but the drive worked very poorly sitting vertically. 
In theory you can use drives at any angle.. but I have discovered before some drives prefer to be mounted flat.. some are fine flat or on their side but not vertical. 
It was not something I considered before but if looking for a bigger drive you should test if the drive is happy in vertical mount position. 









I get very good temperatures. 

tc5c# envstat

                 Current  CritMax  WarnMax  WarnMin  CritMin  Unit

[accel0]

  Accl X-Axis:      1035        0        0        0        0 none

  Accl Y-Axis:        51        0        0        0        0 none

  Accl Z-Axis:       -18        0        0        0        0 none

    Accl Temp:        15        0        0        0        0 none

[applfan0]

      Fan_rpm:         0                                      RPM

        T_hdd:     0.000                                     degC

      Fan_dcy:       255        0        0        0        0 none

[emc141x0]

   T_internal:    36.000                                     degC

  T_external1:  -125.000                                     degC

  T_external2:    42.500                                     degC

  T_external3:    44.250                                     degC


Other than the T-external1 which is now showing an even more ridiculous -125 degC. 


The fan duty cycle is still max.. 255.. if you bothered to plug in the fan which of course is unnecessary without the case.. these temperatures are the same as with the fan running inside the sealed TC case. 

The trick was how to get rid of the overheat warning. 


What I did was reset the NVRAM values for temperature. 



pci/1/0/gainctrlsph=0

pci/1/0/tempthresh=120 (changed to 130)

pci/1/0/tempoffset=255 (changed to 128)

pci/1/0/rawtempsense=38 (changed to 10)

pci/1/0/measpower=0x7f

pci/1/0/tempsense_slope=0xff

pci/1/0/tempcorrx=0x3f (changed to 0x01)

pci/1/0/tempsense_option=0x3

pci/1/0/xtalfreq=65535

pci/1/0/pa5gbw4080a1=0xffff,0xffff,0x2222,0x1,0xffff,0xffff,0xffff,0xffff,0xffff,0xb0b8,0x5050,0x6060

pci/1/0/phycal_tempdelta=40

pci/1/0/temps_period=10

pci/1/0/temps_hysteresis=5



Now you might wonder how I chose those values.. pure trial and error. I altered them one at a time.. I did not explore any further once I got it working. 
But there is another trick to it.. if you power off and on the overheat warning will return. 


We definitely must get rid of this warning for the TC to work properly. 

So after making the changes to NVRAM.. I can change any minor setting on the TC in the airport utility.. I use DNS on the Internet tab. 


So I add 8.8.8.8 as secondary DNS.. next time if needed I remove it.. all completely irrelevant to the TC operation. 

When the TC reboots the warning message is gone. 


And it does work fine for weeks after that.. until you have a power outage or something. 

No changes I made to the NVRAM could fix it.. sadly.. but once I had a method of getting rid of the warning I did not pursue further. 


Ok.. the last bit is how do you change NVRAM values.. well you have to turn on SSH access.. and you will need help to do that.. 
I cannot give a lot of info here.. so talk to me directly
rayhav@gmail.com

Once you have SSH access it is easy. 

for example I want to change the value of the variable.. pci/1/0/tempoffset from current value to 60. 

tc5c# acp static pci/1/0/tempoffset=60


tc5c# acp static pci/1/0/tempoffset

pci/1/0/tempoffset=60


Changes made in NVRAM will not be read until the next reboot of course. 





Comments