From eb8b04d03e5355826a8e4e53274faf24d2320cd3 Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Sat, 9 Jul 2022 12:12:20 -0400 Subject: [PATCH] M48T59Y battery replacement --- content/images/m48t59y-fixed.jpg | 1 + content/images/m48t59y-fixed.yaml | 6 ++ content/images/m48t59y-installed.jpg | 1 + content/images/m48t59y-installed.yaml | 6 ++ content/images/m48t59y-solder.jpg | 1 + content/images/m48t59y-solder.yaml | 7 ++ content/images/m48t59y-terminals.jpg | 1 + content/images/m48t59y-terminals.yaml | 8 ++ content/images/m48t59y.jpg | 1 + content/images/m48t59y.yaml | 9 +++ content/style.scss | 25 ++++++- content/weblog/ultra60-nvram.md | 101 ++++++++++++++++++++++++++ layouts/default.xsl | 45 ++++++++++-- layouts/functions.xsl | 16 +++- lib/helpers.rb | 42 ++++++++--- 15 files changed, 249 insertions(+), 21 deletions(-) create mode 120000 content/images/m48t59y-fixed.jpg create mode 100644 content/images/m48t59y-fixed.yaml create mode 120000 content/images/m48t59y-installed.jpg create mode 100644 content/images/m48t59y-installed.yaml create mode 120000 content/images/m48t59y-solder.jpg create mode 100644 content/images/m48t59y-solder.yaml create mode 120000 content/images/m48t59y-terminals.jpg create mode 100644 content/images/m48t59y-terminals.yaml create mode 120000 content/images/m48t59y.jpg create mode 100644 content/images/m48t59y.yaml create mode 100644 content/weblog/ultra60-nvram.md diff --git a/content/images/m48t59y-fixed.jpg b/content/images/m48t59y-fixed.jpg new file mode 120000 index 0000000..d0f066e --- /dev/null +++ b/content/images/m48t59y-fixed.jpg @@ -0,0 +1 @@ +../../.git/annex/objects/wK/GG/SHA512-s215590--23ec4d09ab8ed674c51d1fa81145f4983e207ca989ec65c3035ba49c876aa01c37df3ca458b80ab7863607ec80ec8ac950bd03e7d83ec493adc40fef80c55f8d/SHA512-s215590--23ec4d09ab8ed674c51d1fa81145f4983e207ca989ec65c3035ba49c876aa01c37df3ca458b80ab7863607ec80ec8ac950bd03e7d83ec493adc40fef80c55f8d \ No newline at end of file diff --git a/content/images/m48t59y-fixed.yaml b/content/images/m48t59y-fixed.yaml new file mode 100644 index 0000000..6038682 --- /dev/null +++ b/content/images/m48t59y-fixed.yaml @@ -0,0 +1,6 @@ +--- +title: M48T59Y-70PC1 With Battery Clip +copyright: 2022 Nick Bowler +license: cc-by-sa-4.0 +description: | + Finished repair of M48T59Y part with external battery clip glued on top. diff --git a/content/images/m48t59y-installed.jpg b/content/images/m48t59y-installed.jpg new file mode 120000 index 0000000..2fa0639 --- /dev/null +++ b/content/images/m48t59y-installed.jpg @@ -0,0 +1 @@ +../../.git/annex/objects/jF/WK/SHA512-s821129--859631534da810c3a29d2246edf97a8d6a61a2ac67c21e18aee2753eb96a38a2856e45278f44db7a7a0ef9bb1c1ae6b00bc32e72b9b143b5d14a8abc7e376a1d/SHA512-s821129--859631534da810c3a29d2246edf97a8d6a61a2ac67c21e18aee2753eb96a38a2856e45278f44db7a7a0ef9bb1c1ae6b00bc32e72b9b143b5d14a8abc7e376a1d \ No newline at end of file diff --git a/content/images/m48t59y-installed.yaml b/content/images/m48t59y-installed.yaml new file mode 100644 index 0000000..2c74fe6 --- /dev/null +++ b/content/images/m48t59y-installed.yaml @@ -0,0 +1,6 @@ +--- +title: M48T59Y-70PC1 Repair Complete +copyright: 2022 Nick Bowler +license: cc-by-sa-4.0 +description: | + Repaired M48T59Y chip installed onto the Sun Ultra 60 motherboard. diff --git a/content/images/m48t59y-solder.jpg b/content/images/m48t59y-solder.jpg new file mode 120000 index 0000000..5d8078e --- /dev/null +++ b/content/images/m48t59y-solder.jpg @@ -0,0 +1 @@ +../../.git/annex/objects/8M/9g/SHA512-s146926--2dd1f0b920387121d4e1f658f151417d55d65dfa27a6b397343deeebde08636236a0e123a9cfa3fdeef8204425c3f7d00a5e5dcee121126535a140a059f6fb04/SHA512-s146926--2dd1f0b920387121d4e1f658f151417d55d65dfa27a6b397343deeebde08636236a0e123a9cfa3fdeef8204425c3f7d00a5e5dcee121126535a140a059f6fb04 \ No newline at end of file diff --git a/content/images/m48t59y-solder.yaml b/content/images/m48t59y-solder.yaml new file mode 100644 index 0000000..dc6253b --- /dev/null +++ b/content/images/m48t59y-solder.yaml @@ -0,0 +1,7 @@ +--- +title: M48T59Y-70PC1 Wire Leads +copyright: 2022 Nick Bowler +license: cc-by-sa-4.0 +description: | + M48T59Y with battery leads connected, after disconnecting the internal + battery tabs. diff --git a/content/images/m48t59y-terminals.jpg b/content/images/m48t59y-terminals.jpg new file mode 120000 index 0000000..795475d --- /dev/null +++ b/content/images/m48t59y-terminals.jpg @@ -0,0 +1 @@ +../../.git/annex/objects/98/V1/SHA512-s186948--c3277cf2aea7e159ee6203e9c7f5330f3a1c79a4d2c347c7637c19f354c7cafe2181b54fd40e84eba434a16340fb9cd3a87e76a636d45278846cb46c3d1f606e/SHA512-s186948--c3277cf2aea7e159ee6203e9c7f5330f3a1c79a4d2c347c7637c19f354c7cafe2181b54fd40e84eba434a16340fb9cd3a87e76a636d45278846cb46c3d1f606e \ No newline at end of file diff --git a/content/images/m48t59y-terminals.yaml b/content/images/m48t59y-terminals.yaml new file mode 100644 index 0000000..806df38 --- /dev/null +++ b/content/images/m48t59y-terminals.yaml @@ -0,0 +1,8 @@ +--- +title: M48T59Y-70PC1 Battery Terminals +copyright: 2022 Nick Bowler +license: cc-by-sa-4.0 +description: | + M48T59Y with internal battery connections exposed. The negative connection + is on the left, closest to pin 14. The positive connection is on the right, + closest to pin 16. diff --git a/content/images/m48t59y.jpg b/content/images/m48t59y.jpg new file mode 120000 index 0000000..40e10d3 --- /dev/null +++ b/content/images/m48t59y.jpg @@ -0,0 +1 @@ +../../.git/annex/objects/5f/mJ/SHA512-s141937--ebbd8a2ad4b6d4f1c6d66d9f7ba76685c5281bff3d0fb34f7e00e3016b8422c4935aa9b87caa1c4f8ed9b1b7f727b4f2c97d49991f483317c8248f536c225620/SHA512-s141937--ebbd8a2ad4b6d4f1c6d66d9f7ba76685c5281bff3d0fb34f7e00e3016b8422c4935aa9b87caa1c4f8ed9b1b7f727b4f2c97d49991f483317c8248f536c225620 \ No newline at end of file diff --git a/content/images/m48t59y.yaml b/content/images/m48t59y.yaml new file mode 100644 index 0000000..7258310 --- /dev/null +++ b/content/images/m48t59y.yaml @@ -0,0 +1,9 @@ +--- +title: M48T59Y-70PC1 +copyright: 2022 Nick Bowler +license: cc-by-sa-4.0 +description: | +

The NVRAM module + used in my Sun Ultra 60 workstation. This combines a normal memory with a + real-time clock and an internal lithium primary cell to maintain everything. + However, the internal cell is long dead so this chip is dead too.

diff --git a/content/style.scss b/content/style.scss index 2708bb4..abc6c49 100644 --- a/content/style.scss +++ b/content/style.scss @@ -76,6 +76,16 @@ h5 { @include header_size(60em, 1em); } p.img { margin: 0.5em 0; } } + + @media (max-width: 45em) { + .inline.gallery { + display: block; + p.img { + a { max-width: 24em; } + margin: 1em 0; + } + } + } } p.img { @@ -94,12 +104,22 @@ p.img { border: solid 2px; } + a.left { margin: 0 1em 0.5em 0; float: left; clear: left; } + a.right { margin: 0 0 0.5em 1em; float: right; clear: right; } + a.left, a.right { + @media (max-width: 45em) { float: none; margin: 0; } + + max-width: 24em; + } + small { @include usecolours($color: foreground); - text-align: justify; @media (max-width: 24em) { text-align: left; } padding: 0.5ex; display: block; + display: -moz-inline-box; + display: inline-block; + text-align: justify; font-size: 0.9em; } } @@ -137,10 +157,12 @@ kbd { font-family: monospace; font-size: 0.95em; &:before { content: "% "; } + &.ok:before { content: "ok "; } &>span { white-space: nowrap; } blockquote & { display: block; + & + br { display: none; } text-align: left; padding-left: 3em; text-indent: -3em; @@ -160,6 +182,7 @@ kbd { table { @include usecolour(border-top, ruledefault, 1px solid); border-collapse: collapse; + clear: both; width: 100%; } diff --git a/content/weblog/ultra60-nvram.md b/content/weblog/ultra60-nvram.md new file mode 100644 index 0000000..ec96370 --- /dev/null +++ b/content/weblog/ultra60-nvram.md @@ -0,0 +1,101 @@ +--- +title: M48T59Y-70PC1 NVRAM Battery Replacement +copyright: 2022 Nick Bowler +license: cc-by-sa-4.0 +published: 2022-07-09T12:12:21-0400 +--- + +*[NVRAM]: Non-Volatile Random Access Memory +*[SRAM]: Static Random-Access Memory +*[NOS]: New Old Stock +*[DIP]: Dual In-line Package +*[SOIC]: Small-Outline Integrated Circuit +*[MAC]: Media Access Control + +Thanks to [Mark Henderson's Sun NVRAM FAQ][nvram-faq] for providing invaluable +insight regarding this repair. +{:article-info="article-info"} + +[nvram-faq]: http://web.archive.org/web/20150919135835/http://www.squirrel.com/sun-nvram-hostid.faq.html + +The Sun Ultra 60 workstation uses an ST M48T59Y-70PC1 battery-backed SRAM with +real-time clock. When the embedded lithium primary cell inevitably dies, the +chip is essentially useless. The most noticeable negative effect of a dead +chip is that the workstation always powers up in a default configuration with +diag-switch? true, running several minutes of self tests every time, with +bogus MAC and host ID values. + +<%= floating_img(@items["/images/m48t59y.jpg"], caption: < + +This device was branded obsolescent by the manufacturer in April of 2008 and +has presumably been out of production since around that time. Similar chips +like the M48T58Y are still made but they are expensive (around $40) and slight +differences may result in compatibility problems. It appears that NOS parts +can be found fairly cheap online but these must be almost 15 years old by now +and who knows what state the embedded batteries are in. No thanks. + +One option could be to find the SOIC version of the M48T59Y for which NOS also +seems to be available, although somewhat less readily than the DIP modules, and +then construct an adapter board to fit into the DIP socket on the motherboard. +The SOIC package does not include the battery and crystal; instead, it has +contacts on the top to attach a separate "SNAPHAT" package which are still +made. This would be complicated and somewhat expensive. + +Fortunately, a straightforward (if time-consuming) repair is possible. This +is a literal hackjob: we can dig through the potting to expose the battery +terminals, disconnect the internal battery, and connect a normal battery clip. +This enables the use of readily-available CR2032 lithium primary cells that can +be replaced as needed, just like a normal PC. Since we already have the chip +we need, it is not necessary to source any obscure or expensive components. + +<%= +floating_img(@items["/images/m48t59y-terminals.jpg"], left: 1, caption: '') +%> + +<%= +floating_img(@items["/images/m48t59y-solder.jpg"], left: 1, caption: '') +%> + +The battery contacts are located on the end opposite pin 1, between pins +14 and 15. Looking underneath the chip there is a small well at either end +filled with potting compound. The battery connections are inside one of +these. Using a knife, cut back the plastic outer shell on the battery side, +then begin scraping away potting compound until the terminals are exposed. +You can use a suitable DIP socket to help protect the pins from accidental +damage. + +Once the terminals are exposed, the internal battery must be disconnected. +The thick protruding tabs near the bottom of the module are what we want +to solder to. The vertical strips going up and into the module are the +internal battery terminals. These can be desoldered from the tabs and +lifted out of the way, or simply cut off. + +With the time-consuming parts completed it is a straightforward matter to +connect a normal battery clip to the exposed terminals. As the Ultra 60 has +no clearance issues I simply glued it to the top of the chip. Since this +would obscure the barcode sticker which is useful to restore the original MAC +address and host ID, I moved this sticker to the side of the chip. + +Finally all that remains is to put everything back together and power up +the system. The system will run the full self-diagnostic tests again and +if all goes well, the "NVRAM Battery Detect Test" should no longer display +any errors. At the ok prompt, the memory can now be initialized. Where +"AA BB CC" are the six hexadecimal digits from the orange barcode sticker: + +set-defaults
+setenv diag-switch? false
+8 0 20 AA BB CC AABBCC mkpl
<Ctrl-D><Ctrl-R>

+.idprom
+reset + +<%= gallery_img(@items["/images/m48t59y-fixed.jpg"], caption: < +<%= gallery_img(@items["/images/m48t59y-installed.jpg"], caption: < diff --git a/layouts/default.xsl b/layouts/default.xsl index d5be103..7681933 100644 --- a/layouts/default.xsl +++ b/layouts/default.xsl @@ -222,7 +222,7 @@ - +
@@ -400,18 +400,42 @@

+ + + - + +
-

- Posted - -

+ + +
+ +

+ Posted + + + , last updated + + +

+
+ + + + + + + + + @@ -439,7 +463,14 @@ -