mstdn.io is one of the many independent Mastodon servers you can use to participate in the fediverse.

Administered by:

Server stats:

371
active users

I've been working for a few days to restore an Amiga 3000 from 1990 which was owned by an art professor from Philadelphia.

Part 1: mstdn.io/@codewiz/113561527808

Part 2: mstdn.io/@codewiz/113562074864

TL;DR: The Varta battery leaked concentrated potassium hydroxide over the vital region between the three chips which define the Amiga architecture: Denise (video), Paula (audio) and Agnus (blitter, copper and DMA).

Extracting Denise and Paula reveals some corrosion on the pins.

Fat Agnus appears to have been spared, but I don't have a proper PLCC extractor tool and I'm not going to risk prying it out with kludgy methods.

Against best advice, I took the risk to power up the board in its present state.

The power LED flashing 6 times means that the Kickstart's diag routines failed somewhere, and a red screen signals a ROM checksum failure:
amigalove.com/viewtopic.php?t=

This is actually great news: the 68030 was able to execute some ROM code and even write into some of Denise's registers.

The checksum error could also be caused by a fault on either the data bus or the address bus.

Today I received the first batch of components for my A3000 board. Just a few DIP sockets, common logic IC, diods and capacitors.

I couldn't find 48-pin DIP sockets for Denise and Paula, so instead I bought 24-pin sockets to be used in pairs.

I scrubbed most of the green goo with a combination of sand paper and fiberglass pen.

I frequently cleared the dust from the PCB with an ESD-safe brush, distilled water and isopropyl alcohol.

I should probably also wash the entire board with soap water, but I'm not sure which soap is safe for PCBs, and which components need protection.

And this is what was underneath all the corroded metal oxide.

Most of the copper directly under the battery has been completely corroded, exposing a dark fiberglass layer.

This was actually lucky: that big ground plane neutralized most of the leak, reducing the damage on the rest of the PCB.

It's time to clear the corroded components, starting from the RTC circuitry south of the battery.

I used a $30 electric vacuum pump iron on the back of the board to suck most of the solder from the pins.

Then I pulled gently from the front while heating the area with a heat gun.

Most solder would melt easily, but pins attached to GND or heavily corroded would need more heat.

Bernie

Except for the Ricoh RTC, the components I pulled are cheap to replace and can be cut in place to minimize damage to the precious 3000 board.

I went to Microcenter and bought full assortments of resistors and capacitors, each for $9.99:

microcenter.com/product/618896

microcenter.com/product/632685

I had already ordered some DIP sockets and ICs at Mouser, but I forgot the common 14-pin sockets, which are on their way.

Luckily, I have with me a debug tool from the future: the Z3660 is an open hardware accelerator which can optionally emulate a full 68040 CPU with UAE's open-source JIT running on a modern ARM core:
github.com/shanshe/Z3660

I bought this baby at AmiWest for my A4000, but now it will come handy to probe the A3000 PCB from a working system.

The Z3660 can load Kickstart files from an SD-card and map them to the ROM region, allowing me to use the awesome DiagROM to test RAM, I/O ports, audio and more:
diagrom.com/

Those vertical bars flash on and off. They're probably caused by a faulty data line between Denise and Fat Agnus, or perhaps between Fat Agnus and the Chip memory bank.

The Chip RAM banks pass all memory tests, so we can exclude them.

The Z3660 can also boot off an emulated SCSI controller, loading hard-disk images from the SD card.

The OS image that came preloaded with my board throws a recoverable guru while booting, but then boots to Workbench.

There are a couple of hardware diagnostic tools, including SysInfo and WhichAmiga.

Overall, the system is really unstable, hanging every few minutes. Tapping on Denise is a reliable way to trigger a crash.

Also, rebooting with Ctrl+Amiga+Amiga results in a permanent black screen. I inspected the reset logic, and /CPURST remains low forever.

I can't tell whether there's a problem with the A3000, but other Z3600 owners confirmed it shouldn't happen.

Debugging all these quirks would be much easier with an oscilloscope. I should take this project to a shop with proper lab equipment...

Tonight I'm going to the Artisans Asylum, a huge and workshop co-op in Boston:
artisansasylum.com/

Their electronics shop has all the tools I need for my 3000 restoration project and several experts who can advise.

Artisans AsylumArtisans AsylumAn inclusive, non-profit community makerspace dedicated to advancing the learning, practice and culture of do-it-yourself (“DIY”) fabrication

One of the issues leading to instability seems to be the 4MB bank of on-board fast RAM.

You can see it fail a memory test in this screenshot, and often it gets misdetected by DiagROM.

The 3000 fast RAM uses the infamous Zig-zag In-line Package (ZIP).

The pins were very easy to bend when installing the chips. Indeed, I found one with a bent pin! Was it like that from the factory? ...or did someone already try to fix this several years ago? 😱

Anyway, re-seating all the ZIP chips didn't improve stability, so I ended up removing all of them.

The Z3660 uses the Z-Turn can map 128MB of its own RAM to the Amiga address space.

Using modern hardware to sidestep hardware issues on the A3000 board feels a bit like cheating, but ZIP RAM modules are rare, expensive, and... a stupid idea even back in 1990! 🙂





With on-board Fast RAM disabled, the system is stable enough to run Lotus Turbo Challenge... up to a certain point!

This crash is 100% reproducible. I don't know whether it's caused by a hardware problem with the ECS chipset or this game is simply incompatible with the 68040.

Last friday I started debugging the ZIP RAM bank.

Someone on the Acill Classics repair chat suggested running ziptest, an awesome tool probes each ZIP slot to debug issues like mine:
aminet.net/package/util/misc/Z

I populated the first 4MB of ZIP slots populated, and booted OS 3.2.2, which didn't recognize any Fast RAM in the expected range, $07000000-$07FFFFFF.

The output of ziptest makes me think that the entire bus is busted. Perhaps I have a broken Ramsey?

Meanwhile, I also checked the reset logic, which I suspect to be quirky.

The A3000 uses a PST518, a small 3-legged IC which looks like an ordinary transistor, but monitors the +5V power line to assert a _FAIL signal when it's too low.

This capture shows what happens when the power supply is switched off: _FAIL (above) drops sharply when +5V (below) falls below 4.4V. Looks good.

On power up, +5V (still below) raises quickly to its stable level, while /FAIL (above) looks like the typical capacitor charging curve.

Am I seeing the effect of R112 (3.3kohm) C112 (47uF)?

Ugh, I need to refresh my high-school electronics on RC circuits:
electronics-tutorials.ws/rc/rc

So the time constant (τ) is 3.3 * 10^3 * 47 * 10^-6 = 152 ms

The scope captured only 350 ms of the curve, which grows to ~4.2V. Looks about right.

But is this what a good reset signal looks like? I expected it to be driven sharply between 0 and 1 logical states.

I found the PST518 datasheet here:
alldatasheet.com/datasheet-pdf

My understanding is that the PST518 output is meant to be fed into a Schmitt-trigger to get the sharp power up reset signal that I'm looking for.

But on the A3000 PCB, /FAIL rruns to Gary's and Ramsey's POWERUP pins.

Perhaps they have an internal comparator for this purpose.

The Kickstart 3.2.2 roms arrived today, and I swapped them on the board.

Oddly, these EPROMs are 1 pin too long for the A3000 sockets. The seller clipped pins 1 and 42 to suggest the correct alignment.

Now I can tell the Z3660 to use the on-board ROMs and... IT BOOTS!

This confirms that the original ROMs had indeed gone bad, while Gary and other bus logic still works... which is very lucky 😅

With the new 3.2.2 ROMs in place, I can even pull out the Z3660 and use the on-board 68030 and its companion 68882 FPU, both running at 25 MHz.

Since there's hard-drive, I'm welcomed by the bootscreen, except the familiar Amiga "rainbow checkmark" logo has been replaced by the Escom-era "boing ball" :amiga:

But I forgot to cover how I fixed the stability issues.

Testing the corroded traces around the battery, I found that DRD9 was open between pin 46 of Denise and pin 5 of Agnus.

That's one of the data bus lines; it's surprising anything worked at all! Restoring DRD9 (white alligators) fixed the vertical lines as well as the frequent crashes. Woot! 🎉

The yellow alligators reconnect Paula's INT6 to Even CIA.

The trace was badly corroded around U190, the Ricoh realtime clock, and my clumsy attempts to clear those pads finally killed INT6 for good, causing AmigaOS to hang at boot 😢

Since I couldn't find a suitable pad beyond the Varta blast area, I'll re-route INT6 all the way across the motherboard to CIA.

As a side note, the test clips I got from Amazon for $6.89 a dozen won't attach firmly to DIP pins, and the tiny copper hooks keep bending and breaking.

I was told I should have bought these fancy Tektronix IC grabbers, but they cost a whopping $29 for a bag of 10:
ebay.com/itm/274793389279

I wonder which alloy they used for the hooks?

Anyway, this is my first attempt at repairing traces with thin rigid wire.

I used polyimide tape (aka Kapton tape) to hold it down while soldering, but I should probably glue it firmly to the PCB.

I'm not sure which glue is safe to use on a vintage board, but I can ask the experts on Acill Classics.

@codewiz can you socket the RTC on an Amiga 3000 to turn it into a clock port? On my Amiga 1200, the clockport it can be used as a port to do some incredibly cool things, almost like a mini zorro bus. I have a music/mp3 playback card attached to my clockport to let my Amiga basically have a soundcard.

@GabeMoralesVR The A3000 RTC circuitry has a 4-bit data bus and 16 addressable registers. The CPU can directly read/write any of them, but there are no interrupts and no DMA.

The official PCB schematics are here:
amigawiki.org/doku.php?id=en:s

I've been using KiCad to view the gerbers, but the schematic diagrams seem to have some mistakes so I don't trust them.

@codewiz you may be able to get a cheap 25 to 40 MHz CRT scope on Craigslist or other such site. It's good to have. Basic household thing like a screwdriver, you know.

@Kazinator But I wanted a USB oscilloscope with open-source software for Linux, and they're either too expensive or useless low-bandwidth toys! 😭

@codewiz I remember getting rid of a 386 that used that memory.

@codewiz imo there is not such thing as cheating when it comes to usability.

Zip ram doesn’t work and is rare? Just use modern ram!

@abletheabove Yes, but I could keep going like this until the A3000 case contains only a Raspberry Pi running UAE.

The Z-Turn mounted on top of the Z3660 is a hybrid approach where you keep using the original Amiga hardware for I/O.

@codewiz Nah cause that destroys the spirit of retro computing.

Replacing dead ram or dead capacitors with modern ones doesn't violate the spirit IMO.

@abletheabove I totally agree.

Right now this A3000 can't even get to the Early Startup menu without the Z3660. Until last week, it used to flash the power LED 6 times, bring up a red screen and reboot. Now it won't even do that 😟

Anyway, I bought a set of Kickstart 3.2.2 ROMs from a shop in Ireland and I'm waiting for them to arrive to see if the old ROMs were really bogus.

@codewiz
With WHDLoad, it must be compatible with the 68040. It was one of the purpose for developing WHDLoad 😉

Hope you'll find the problem! 🤞

@batteman One of the Z3660 devs suggested uncommenting NoCache in the tool types, but it didn't help.

They also provided a newer Z-turn beta firmware, which I'll test tonight.

@codewiz My idea to debug this would be to swap parts with a known good A3000 - but that needs of course a box to donor/test with..

@globalc So far I haven't found any Amiga users here in Boston.

Even a broken A500+ would have a lot of chips in common with the A3000, and they're much more common.

@codewiz Have you tried compatibility with Games (especially those what will only work under Kickstart 1.3 and also those what require AGA or Kickstart 2/3 for example

@AmigaBoing I tried booting the original SCSI hard drive that came with the machine, and even that wouldn't load with Kickstart 3.2.2 because workbench.library and icon.library were moved from ROM to disk to make room for other features.

I will need to find the 3.2.2 versions and copy them to LIBS: in order to fix Workbench... but even if it works, it won't be Workbench 2.0 any more.

@codewiz @AmigaBoing ah man… I’d love to find one of these for the Amiga 600 or 1200

@codewiz @AmigaBoing woah that thing is cool! Any idea when/where it might be available?

I’d also pay good money for an A1200 version.

@codewiz The Boing Ball came back with Amiga Inc. and the H&P AmigaOS releases, I’m pretty sure. Before that the Escom/Amiga Technologies logo was capitalized Amiga with a little red ♦️ over the I and the checkmark remained in the shadows. I was not a fan of the change which is why I remember being mildly upset at Amiga Inc. for taking that direction. (The least of their poor decisions, honestly…)

@trezzer You're probably right.

My memory about the boing ball logo adoption wasn't clear, so I checked Wikipedia and found there reference to Escom here:
en.wikipedia.org/wiki/Amiga#Ma

However, the article linked as citation doesn't even mention Escom! Someone should edit that paragraph, possibly citing a better source.

en.wikipedia.orgAmiga - Wikipedia

@codewiz ...measuring pin 3 on U112. Looks like the same. I doubt, that reset is your problem as the amiga basically runs...

What happens if your amiga is running and you "bend" the board slightly?

We can do a videocall if you wish. But that would be a lot of camera handling involved:-)

@trebroNdotnet I tried blowing hot air on the board, and I can get it to crash when I warm up Agnus and Denise. The rest seems stable.

I'd have some big updates on the A3000 repair, but no time to blog about them... hang on 😉

@codewiz yep. rare and expensive. It took me forever to fully populate my A3000 with those guys...and that was 20 years ago

@kwramm Do you know if the A3000 ROM could boot with no Fast RAM at all, like an A2000 would?

I'm trying to understand why I don't see any activity when I power up the board without the Z3660. Before, it would red screen and reboot, which was at least a sign of CPU activity.

@codewiz it should work without fast ram, I think. But when you remove any accelerator, make sure to change all the motherboard jumpers that tell it to use everything onboard

@codewiz oh an make sure the Zorro riser card is installed - my A3000 never boots without it

@codewiz The forbidden monoliths ... the capacitor fence was a warning...