Upgrading a 16K Spectrum to 48K

Upgrading a 16K Spectrum to 48K is normally fairly straightforward and is mostly plug and play. Do check first whether or not your machine falls into one of these two camps though:

  • Your machine is an Issue 1 – in this case a daughterboard is required to carry the extra 32K of RAM as no provision is made for it on the main PCB. These are only very sporadically available on eBay, and can be quite expensive, so your only viable other option may be procuring a 32K RAM pack (don’t use one from a ZX81, they’re not compatible).
  • There is anecdotal evidence that 48K machines that failed factory testing with faulty upper RAM were packaged and sold as 16K models. Open the machine up to check first – if the upper RAM is present and not socketed, then a repair of the faulty RAM is more appropriate, and will be covered in another article.

Assuming that you have a genuine 16K Issue 2 or above machine, then you’ll need the following parts:

  • 4164 Dynamic RAM, 150ns or faster (x8)
  • 74LS157/74HCT157 Logic IC (x2)
  • 74LS00/74HCT00 Logic IC (x1)
  • 74LS32/74HCT32 Logic IC (x1)
  • Some thin wire (capacitory/resistor lead offcuts are perfect for this)

Kits are readily available (here and here) with all of the above IC’s you’ll need. You’ll also need a good quality soldering iron, and some solder wick or a desoldering pump.

Here’s an annotated overview of the PCB:

Upper RAM IC’s are within the red marked area, logic IC’s are within the green area. This board is a 48K – on a 16K machine the relevant positions will have sockets.

Step 1: Insert the RAM IC’s

Take your eight 4164 RAM IC’s, and locate the upper RAM sockets (a group of eight at the bottom centre of the PCB, with designations IC15-IC22). Insert each RAM IC carefully into its respective socket, taking care to ensure that the notch on each IC is pointing upwards (in the same direction as the other IC’s on the board).

Step 2: Insert the logic IC’s

Again, locate the sockets for your logic IC’s, located at the top centre of the PCB. Insert the IC’s carefully as follows:

IC23: 74LS/HCT32
IC24: 74LS/HCT00
IC25: 74LS/HCT157
IC26: 74LS/HCT157

Step 3: Solder wire link(s)

As the Spectrum was designed to use 4532 RAM (32Kx1bit RAM, which is by definition half faulty 4164 RAM), links are provided on the PCB to allow the correctly functioning ‘half’ of the RAM to be set at the time of manufacture. Since we’re using fully working 4164 RAM, it doesn’t matter which half is selected, but it must be set to either the bottom or top half to ensure that the upper RAM in use doesn’t ‘float’ between bottom and top halves – unintentionally paging out the contents!

The steps require differ between Issue 2 PCB’s and Issue 3 or later.

3a: Issue 2 PCB

This has a single wire link that needs to be soldered which sits between the ULA and IC5. There are three solder points, top marked +5v, centre unmarked and bottom marked 0v. You need to solder a wire link either between +5v and centre, or 0v and centre. Do not solder the link between +5v and 0v.

Link for upper RAM selection highlighted in red. The link is set to 0v in this example.

3b: Issue 3 or later PCB

These have multiple links located to the right of the EAR/MIC sockets – these are marked TI, L, H on the first column and OKI, 3, 4 on the second. If these are already present there is no need to change them, otherwise install wire links in the TI and 3 positions. The following combinations are also acceptable:

  • TI, 4
  • OKI, L
  • OKI, H
Issue 3 and onwards upper RAM links highlighted in red.

Clearing wire links

Most of the time, the wire link locations will already have solder in them from the factory, so you will need to clear this using solder wick or a desoldering pump before adding the wire links. Ensure that you clean up the PCB afterwards and there are no solder splashes in the area.

Step 4: Testing

Plug in the keyboard membrane, replace the top half of the case and power on the machine. If all is well you should see the machine initialise to the copyright message, and take a little longer doing so. You can confirm that the upgrade works by issuing the following command:


…which should return 255 if the upgrade is working properly.

Back to Technical