New issue with A1355 Gen 3 TC

A1355 that is dead shorted.

Fix is possible.. sometimes... 
A few Gen3 TC have come in that are dead shorted. Measuring with a meter across the main plug I get 0 ohms..or close to.. and even a low ohm meter could not track the fault. Eventually discovered the high value ceramic capacitors XR5 type are shorted.. these are grouped around the power converters and in a few other places on the board. It is almost impossible to figure out which is shorted.. unless you remove every one and test it.. long and difficult process for surface mount stuff. 

For the moment if you have a Gen 3 that fails.. measure the ohms across the board plug from +5v pin to Gnd.. if it is very low or 0 ohms consider it might be possible to repair.
If the board does not measure shorted 5v to Gnd and still does not work with a known good power supply.. it could also be shorted on one of the voltage rails although it is unlikely to be anything but 3.3v. I have found just one TC shorted on 3.3v. 

You will need a multimeter if you don't have one go and buy one.. they are just a few dollars. 

Another useful tool I use now is a small wattmeter.. these are used to measure power consumption by appliances in your house.. very useful as you will see if a power supply is working or not. 
I tested a dead TC.. the wattmeter shows it is consuming 6W but not starting.. that means one of the converters has a shorted capacitor. 

Burn it out. 

One of the usual methods to find dead capacitors is to use a high current supply and see what gets hot. All the caps are in parallel so it is impossible to measure which is bad. 
With the help of Chris Fackrell in UK.. who has now also tested the method.. we have both burned out the short circuit.. 

Chris used a motorcycle battery.. I used a pair of Li-ion batteries. So a power supply with voltage of between 4-6v and not switch mode.. that can supply several amps. It is really important that you don't exceed the voltage.. so using unregulated supply.. be very careful.. that is why a high current battery like SLA, or any lead acid.. or Lithium cells say from a laptop battery pack.. (buy a new one for defunct out of date laptop on ebay.. so batteries are still good.. you can get them for a few dollars.. break open the pack.. and assemble the batteries in parallel.. they are usually paired anyway.. and voltage is 4.1 when charged is perfect value. )

I would not start trying to short stuff without taking great care the right things get shorted the right way.. Just thinking an old speaker front panel cable or a CD sound cable from a computer, that will fit the TC power socket would be nice.. !
For the 3.3v I soldered on the gnd lead and used a crocodile clip to touch the inductor. 

Remove hdd.. disconnect the top and fan.. and ethernet connections.. obviously the power supply out and disconnected. For 3.3v remove the board. 

Wire gnd to gnd and momentarily touch + side wire to the battery.. or power supply output.. a tiny spark and a bit of smoke will come out. Somewhere on the board a ceramic capacitors will have fizzed, glowed red hot and the magic smoke come out.. Mostly.. the ones beside the hard disk drive marked C2987-2983.. it is different on each board. so this may happen again. 
I also found a dead cap in the 3.3v rail when the 5v measured ok. So measure each inductor output.. the grey squares.. with the TC off on ohms.. it was immediately obvious that the 3.3v was shorted. That short prevented 1.0v, 1.1v and 3.3v supplies from starting .. only 1.8v was working. 


This board has suffered a lot of work scraping bits off to try and locate the problem.. but the photo is clear enough you can see the area where the caps live.. . I tried to pull it off with soldering iron but really need a hot air soldering equipment.  

But just to say that so far the reliability of the TC I burned the short out of is still working..  no issues have come up. I am confident if the issue is a dead cap this burning out process, whilst crude did achieve what we wanted.. a working and reliable TC.  

Anybody who comes across this issue who would like to tell me of their investigation please do email me. 
rayhav@gmail.com

Bad or unreliable TC

Another problem also cropped up but seems not so common.. again poor ceramic caps but not shorted this time.. they have failed and no longer have much capacity. 

The symptom in this case was bad ethernet.. I realised as long as ethernet wasn't actually plugged in TC worked fine.. I could access it by wireless no trouble. Ethernet worked until hot then failed to connect.. over time the issue became worse so the ethernet only worked for a few minutes from cold startup.. it was about an hour before. 

Not the first time I have seen dead capacitors on router cause ethernet problems.. linksys routers were always having this issue.
I thought the issue could be an on board power converter. This model has 4 of them, producing 1v 1.1v 1.8v and 3.3v
1.8v is the highest current demand supply and most likely to break.. (after that the 3.3v).. 1.8v runs memory, processor and switch chip.
It was impossible to pick this up on a meter.. the fluctuation on the dc side was from 1.86 to 1.85v and I would have discounted it.
But it was clear on the scope that the power supply (5v to 1.8v converter) was suffering when the switch chip was turned on during boot.
And especially when I plugged in the ethernet cables it jumped to almost 0.3v ripple .. It is now about 0.1v which may explain why the voltage is set a little high.

Anyhow it is fixed.. the solution turned out to be fairly easy.
I soldered one of my normal Rubycon 1200uF Low Esr 6.3v caps across the 1.8v power supply.. this killed the bad ripple that was effecting the output of the supply.. I have now got it setup again.. doing TM backups and using both lan and wan cables..
The 1.8v converter supplies a lot more current than the others.







    When you remove the board, undo all the screws and the 3 posts that support the bottom cover.
    Carefully press in the steel spring clips (second one not pictured on other end of the steel frame) after you unplug the the rather tiny plug that goes to the LED.

    Lift the board over so you can see the bottom.












    The various power supply converters.

    There is a 1v on top, next to the board plug.
    Three on the bottom. Again adjacent to the board plug is 1.1v.
    Above it and just under the wireless card, 3.3v
    And just above the processor is the 1.8v.












    Well here is my fix.. crude maybe but it worked fine. Too much hash on the 1.8v line.
    Rather than try and remove and replace all those surface mount capacitors.. for which I do not have the equipment.
    I measured there is exactly enough room for the capacitor to fit. Solder gnd side to the gnd ring around the processor.
    And positive to the end of the inductor.. use enough heat to get a good solder joint but not excessive for the inductor to come off.
    I did resolder it with components leads as short as possible... but make sure the cap can sit flat to the board.
    I used a high grade 1200uF 6.3v I use for power supply repairs.. actual spec is not a big deal. Use a LOW ESR cap though.. >1000uF.. any motherboard one should be fine.
    If any of the silicon rubber heat sink materials come off carefully position them as you place it back.






Now something new. Serial Console access. 






    The next step in the journey.. since I had a faulty but possibly repairable Gen3 I was asked about serial and jtag.. well I have seen the port there under the power supply.
    Credit to Mikhail Emelchenkov
    He took up the suggestion and found Tx output on the board of the Gen2.
    The 20pin connector under the power supply includes serial port .. maybe two of them but one is not connected.
    Pins used are 11 Tx and 13 Rx. You can get 3.3v from pin 19 & 20. Gnd I just used the connector pad. (this is isolated in Gen1 and possibly Gen2 boards. )
    I glued in a piece of connector strip.. so once the cables were soldered no pressure would be put on the contacts..
    Those surface mount solder pads will come off if you breathe on them.
    I used 28AWG enamelled wire.. to make the connections.. it is more convenient to use than tinned copper being insulated, and this one is special enamel that comes off with soldering iron heat.
    This is as tiny as I would ever want to go.. the 20pins have 0.5mm spacing. You need to take huge care. A large magnifying glass.. and a lot of measurement to clear any shorts.
    Jtag is there as well but I am not really interested at the moment. It was hard enough to solder a couple of pins.. soldering 6 of them I think I would try and find the proper socket and solder that on.



BTW finding a suitable serial terminal on the Mac has been a pain. I used hyperterminal on XP PC and frankly it was far better than anything I could find that was easy to setup on the Mac.
I did find this one though.
http://www.furrysoft.de/?page=goserial
Still doesn't work as well as I think hyperterminal or putty does on a pc.. but at least it works.. zterm.. which was the only other terminal I could find that allowed me to set serial port correctly, 115200 8N1 no flow control, crashed the Mac at critical points. Don't go there.

What you get out of course is ttl - lv which need a usb to ttl or serial to ttl converter.
You can get them readily on ebay.. some do not need to be powered using 5v from the usb. That means you only need Rx Tx and Gnd.

In the meantime here is a taste of things to come.
With Root console access.. NetBSD is not dissimilar to Linux router firmware I am used to.
# l
total 65
drwxr-xr-x  15 root  wheel    512 Jan 18 21:58 .
drwxr-xr-x  15 root  wheel    512 Jan 18 21:58 ..
-r--r--r--   1 root  wheel     54 Mar 10  2011 .editrc
-r--r--r--   1 root  wheel   2002 Mar 10  2011 .profile
drwxr-xr-x   3 root  wheel    512 Jan 18 21:58 Library
drwxr-xr-x   4 root  wheel    512 Jan 19 07:26 Volumes
drwxr-xr-x   2 root  wheel    512 Mar 10  2011 bin
drwxr-xr-x   2 root  wheel  21504 Mar 10  2011 dev
drwxr-xr-x  10 root  wheel   1536 Jan 18 21:58 etc
drwxr-xr-x   3 root  wheel    512 Mar 10  2011 lib
drwxr-xr-x   3 root  wheel    512 Mar 10  2011 libdata
drwxr-xr-x   2 root  wheel    512 Mar 10  2011 libexec
drwxr-xr-x   5 root  wheel    512 Jan 18 22:00 mnt
drwxr-xr-x   2 root  wheel   1536 Mar 10  2011 sbin
drwxr-xr-x   2 root  wheel    512 Jan 18 21:58 tmp
drwxr-xr-x   7 root  wheel    512 Mar 10  2011 usr
drwxr-xr-x  11 root  wheel    512 Jan 18 21:58 var


# env
PWD=/etc
HOME=/
PATH=/sbin:/usr/sbin:/bin:/usr/bin
TERM=vt100
TERMCAP=vt100:snip snip.
USER=root
HOSTNAME=
LOGNAME=root
SHELL=/bin/sh

Here is a neat command..
# envstat
 Sensor temperature    MLB temperature          Fan speed     Fan duty-cycle
               degC               degC                RPM            integer
              39.50              44.00                  0               0.00

There is a pdf of the serial and bootloader output that I captured. Please download and read it but not post it elsewhere.
I am currently working on a modification Apple made in Gen 4 to turn on the fan..

# i2cctl r 0x18 0x00 32
0x77 0x2F 0x00 0x20 0x98 0x00 0x84 0x00 0xFF 0xFF 0x2C 0x27 0x00 0x00 0x00 0x00 0xFF 0xFF 0x00 0x00 0x50 0x00 0x7F 0x00 0x41 0x00 0x50 0x7F 0x34 0x50 0xFF 0xFF

A different day and time.. slightly different numbers. Some will be temperature measurements.
i# i2cctl r 0x18 0x00 32
0x77 0x2F 0x00 0x20 0x98 0x00 0xC7 0x00 0xFF 0xFF 0x2D 0x29 0x00 0x00 0x00 0x00 0xFF 0xFF 0x00 0x00 0x50 0x00 0x7F 0x00 0x41 0x00 0x50 0x7F 0x34 0x50 0xFF 0xFF

Ok, turning on the fan is as simple as resetting to default.
i2cctl w 0x18 0x00 11010100

So this command writes the first register 0x00 but you need to use binary value. (reads hex writes binary).
But the values are not stored.. any alteration is lost on reboot. I was thinking the values are written and held until a rewrite but it isn't so.
In fact the default value at turn on is what is causing the fan to run at power on.. several sec after boot the fan is turned off. this is the point when the processor writes the values to the fan chip.. shutting it off.
Turning the fan back on then just consists of writing the values to the fan chip again.. but we can do much more interesting things.

I still cannot see rpm of the fan in the evnstat command.

A picture of the old way.. 
Total control. no onboard voltage converter left. Still working a year or more after I did it. Uber crazy!!



Ċ
Ray Haverfield,
18 Jan 2012, 21:04
Comments