Repairing and upgrading ZX Spectrum 16K

Going back into retro computing. Recently got little bit nostalgic and purchased two used non working ZX Spectrum machines. One was 16K, SN 001-201230.

Tested some voltages using this guide and it seemed like everything is more ore less normal. Plugged it to TV antenna, tuned to channel 35, turned it on and as expected it didn’t work. As usual biggest suspects were 4116 lower RAM chips:

I had two options, first was to cut those IC`s out and desolder leads that were left using regular soldering iron. But doing that I would destroy those chips and I had a feeling that only some of them are not working and I could use others later. So, I bought cheap desoldering pump with a heater and spent some time desoldering those eight 4116 RAM chips. Actually, before that I have never used such desoldering pump and now I can say it does magic and I cannot imagine how I did all my electronics tinkering before without it.

Then I just took eight 16 DIP sockets and soldered them in places where those IC`s were:

Next thing was to find something to replace 4116 chips. I could not found 4116 somewhere around and buying them online takes time and actually they are quite expensive and, talking the truth, not so reliable. Another option was to replace them with newer 4164 chips. But then one slightly modification will be needed on PCB or chips itself as 4164 do not need +12v voltage and only are powered with +5v. And, I did not find 4164 around also, but found some old Russian clones K565RU3, RU5 and RU6.

K565RU3 is exact clone of 4116 so it is also not reliable and also expensive.
K565RU5 is exact clone of 4164, has 65536 bits.
K565RU6 is similar to 4164 but just have same amount of memory as 4116 i.e. 16384 bits.

So, I got some K565RU5 and K565RU6 chips. Decided that RU6 will go instead 4116 lower ram and RU5 chips will go to upgrade this 16K ZX Spectrum to 48K.

Regarding modifications needed to replace 4116 with 4164 ( or K565RU6 in my case ).

As we see pins 1 and 6 on RU6 are not used.
Pin 8 on RU6 is +5v and on 4116 is 12V.
So, the idea is to get rid of the pin 1 and power pin 8 from pin 9 on K565RU6 .
One way to do this is to cut some traces on board and add couple jumpers but I wanted to preserve original PCB as much as possible so went another way: just cut pin 1 away and bent pin 8 up and connected it with pin 9 using short wire.

After preparing all eight RAM chips the moment of truth came. First I have checked all the voltages in a dip sockets without inserting any chips. Only after, when everything seemed alright I inserted all of them in to the sockets and powered up.

Yes, and to my disappointment, it didn’t work. Picture was a little but not much different as with previous ones. Rechecked the board, voltages and my soldering and all seemed right. So, as previously I was guessing that some 4116 where good, I started playing with putting some 4116`s with some K565RU6 with hope to find faulty ones. And to my surprise after some time I got this screen:

Then, when I knew which of those IC`s are ok it was easy to check every other chip and to find bad ones. At the end I found one 4116 and one K565RU6 were to blame.
Trying to be as much authentic as possible I decided to keep all 4116`s in the board and just use one new K565RU6:

Next step was to upgrade this baby from 16K to 48K. This ZX Spectrum Issue 2 board already had all slots needed for upgrade. To upgrade You have to:

  • Install the 4164 RAM (in my case it was K565RU5) Chips into the eight sockets marked IC15-IC22
  • Install the74LS32 chip into socket marked IC23
  • Install the 74LS00 chip into socket marked IC24
  • Install the 74LS157 chips into the sockets marked IC25 and IC26
  • And add one jumper wire:

Issue TWO boards – On the right of IC1 (the large ULA chip) there are 3 pads, the top is marked
“+5v”, the centre is unmarked and the bottom is marked “0v”. Either the top or bottom pad should be connected to the centre pad
It was easy peasy, no other modification were needed. The result:

Then tested the amount of ZX Spectrum RAM with this small basic program and the result was 65535:
PRINT PEEK 23732 + PEEK 23733 * 256
The value printed should be:
(a) for a 48k unit – 65535
(b) for a 16k unit – 32767

*also during tinkering with the pcb i have replaced some of the electrolytic capacitors, everyone recommends that, but actually i did it probably mostly because i wanted to just to use my new desoldering pump few more times… 😉

Next post is going to be about repairing ZX Spectrum+ 48K

Be the first to comment

Leave a Reply

Your email address will not be published.