Sunday, 6 September 2026

ZX81 Repairs - Board 1

When I was getting the Minstrel ZXpand II ready for the previous post, I needed to test on a ZX81 and get some photos.

I have many ZX81s, but I couldn't find any of them, they are all neatly packed away in boxes - somewhere. Somewhere amongst many many other boxes.

I had found a TS1000, which I used for testing and the photos, but I kept looking for a ZX81.

I eventually found a box with one very tatty ZX81 case and three boards.

Three boards, at least one of them is going to work, right?

Well, no, none of them did.

They were all issue one boards, two with full sets of chips.

And one with three empty sockets.

The third board had empty ULA, ROM and Z80 sockets and the alternate RAM option, a pair of soldered 2114 chips.

The RAM was a pair of NEC 2114. 209 could be a date code, 8209, 1982, week 9?

The 7805 is marked 8234 and the UM1233 Modulator is dated 8220, so this looks like a mid 1982 board.

The heatsink is marked "No B-£", which suggests a problem with the membrane, one of the 8 half rows is missing.

I tried that with known working chips and it did absolutely nothing.

Investigating further, there was nothing on any of the busses, which turned out to be due to there being no 5V rail. Dead 7805?

I tried it with 5V from the bench power supply, and it did a bit more, but as with the other boards, black screen, no contents. The ULA was a working chip, as was the ROM and Z80, could be bad RAM?

Looking over the board, the Z80 socket looks to have previously been desoldered. It looks the original type, so was it removed and replaced, or desoldered from another board?

The ZX81 is a very minimal design with just the 4 (or in this case 5) main chips, but they all need to be working to get a picture, if any of them are bad (or not talking to each other), then you get nothing.

You lose.

Good day, Sir.

A common theme with all the chips seemed to be bad contacts, When checking continuity from pin to pin, I was getting lots of intermittent or missing contacts.

The legs of the 2114 RAM chips were showing signs of corrosion, so it is quite possible the contacts inside the IC sockets are in a similar state if they have been empty for a while. There are not the best sockets anyway, single wipe, so you get one chance of a good contact with the pin.

When Sinclair went to the issue three boards (issue two is lost in the mists of time, we assume Rex ate it), they soldered all the chips in. I am sure there was an element of reliability as well as cost saving in that decision.

Desoldering Time

I thought I would start by desoldering that Z80 socket to fit a better one, In doing so, I found some evidence of damage to the pads, several of them were loose or missing. Someone had a bad day the last time it was desoldered. Based on the smell of the old flux, that was probably quite a long time ago. The smell of 80s flux is quite distinct. You don't get that these days, it has probably been banned.

Well, at least that explains why some of the signals were not getting through, there was no through hole plating left on several of the pins, with what turned out to be pointless blobs of solder on the bottom of the PCB not making contact with the top.

I know some PCBs were pretty poor quality in those days, but I had not had a problem with ZX81 boards myself.

As a test, and because it seemed like it needed to be done anyway, I tried removing the other sockets and the two RAM chips.

They all came off cleanly, no damage to the pads or tracks, other than the pre-existing damage to the Z80 socket.

I can't just replace that socket, there was nothing to solder to with the missing pads, previously, some were just optimistic blobs of solder.

I could solder a Z80 chip in directly and flow the pads on the top of the board, but it just seems wrong. I don't think I've ever soldered in a Z80 without a socket?

(ED. I think I did one on a Minstrel kit where the buyer specifically wanted only the ROM socketed for some reason. It looked nice, but felt wrong.)

I prefer to use turned pin sockets for various reasons, one of which is in situations like this where you might have missing tracks or through hole plating, it is useful that the pins are (just about) accessible on the top side of the board.

I had to temporarily remove a resistor array for better access, but with the 6 damaged pads, I was able to get solder to flow on the top side.

To do this, I would hold the board steady and then apply heat from the iron to the pin from the bottom of the board, then with my third hand and second pair of eyes, I would feed in solder to the junction of the pin and the pad on the top side of the board until it flowed.

There was one damaged trace on the bottom, the /M1 line (which is ironic given how many Z80s with bad M1 lines we see on Spectrums). I had to add a small bit of wire to reconnect to the trace on the bottom of the board.

The ZX81 has two sets of outlines for the RAM, either two 18 pin sockets for the 2114s, or a 28 pin socket for a 24 pin 1K or 2K RAM chip.

I am not sure what the plan was, I have never seen a 28 pin RAM chip with that footprint, pin 1 is connected to /Refresh, not sure why you would need that unless there was some kind of DRAM?

(also side note, I went down a rabbit hole of wondering why the only connections to /Refresh were the Z80, the edge connector and that pin. No connection to the ULA? On the ZX80, /Refresh is important for muxing the address lines and generating several of the control signals. The ZX81 didn't have the mux chips, just more resistors to overdrive the address lines from the ULA when it wanted to. It must presumably have been able to work out when to do that without /Refresh ?)

I think this board is heading towards being a test board, so I may as well fit both sets of sockets and a jumper for L1/L2.

The L1 / L2 links are used to set pin 19 of the 24 pin outline to A10 for a 2K chip or 5V for a 1K chip. I am not aware of any ZX81s that came with 2K, but I think most of the TS1000s did.

I initially tested with a 6116 2K RAM chip (the same type used on the VIC20 CR), and the jumper set to L2, for 2K RAM.

I had confirmed the 7805 was dead, so I fitted a switching regulator replacement.

With all the sockets replaced, and the new regulator, time to give it a go.

OK, looks promising, but I don't think I can keep using RF output, my TV isn't very good at tuning in and I don't have the time or space to dig out an analogue TV.

I fitted a temporary composite mod, to save having to use RF. Not the best circuit, more on that later I am sure.

Ah, that's better.

(at least for a few minutes, then it faded out, blame the composite mod and ULA)

I tried some more of the original chips, none of the ULAs worked, I was hoping the 2C210E would, as that is the better type, but unfortunately it didn't.

The best of them give a sort of rolling screen with a K but no keyboard response.

I will stick with my test one (8135) for the moment.

I did try the 2114 chips, and they worked after cleaning up the legs, always handy to have more of those.

Since that was working, I did a few extra things to the board.

The keyboard connectors were showing signs of corrosion, green pins on the outside, and probably the inside, which was also full of bits of broken of membrane tails.

Time for some new connectors there.

I also fitted a connector for a Minstrel keyboard, so I can use one of those on the test bench instead of a membrane.

I am also using a Minstrel Expansion Bus powered backplane to get 9V into the ZX81 board, so I have a power switch (inline with the cable) and a power LED, and I can monitor current consumption on the bench power supply.

I ran a few of the usual tests, all the keys worked, and I was also to confirm it was seeing 2K of RAM (18432 - 16384 = 2048 bytes)

Along with my usual test screen for checking the composite mod.

I got used to typing that in blind sometimes when the screen has gone too dark, but I still want to check what the output is doing.

The signal did not seem to change when it went dark. It is well out of spec in several ways, so I can't blame the TV for not coping.

The top trace is the ULA output, about 4V peak to peak, with no back porch to set the black level, and a very high black level of about 60% rather than 30% of the signal height as it should be.

The bottom trace shows the output to the monitor, only about 300mV peak to peak when it should be 1V.

I did quite a bit of fiddling with different circuits, I will have to come back to this.

I did find some PCBs for two different versions of a ZX81 composite mod / back porch board I had designed in the past. I don't think either of these was good enough, I can see I designed a few versions after these with different circuits, but I don't think I even get those made.

Further Testing

I was able to do what I started out to do, test the new Minstrel ZXpand II.

That worked nicely.

I was able to load 1K programs, like 1K Chess (amazing to think the fitted chess into 1K).

And with 2K fitted, I could load my character test program.

I fitted ZIF sockets to go through the chips from those boards and see what was working. Several of the chips from the other boards were dead, but if I can find another working ULA, there is enough for one more board.

Next Time

That's a good start, one board and some known working chips, time for another one?

Next time I will be looking at one of the other boards, and getting that repaired, upgraded and ready to go back into a ZX81 case.

But for now, Rex lies in wait as I can't load 3D Monster Maze with 2K of RAM.


All items are still available, and I can ship worldwide.

Including the Minstrel 2 and 3 which are available in versions which will fit in a ZX81 case as a drop in replacement for the ZX81.

The Minstrel 2 is ZX80 level, no NMI compute and display (slow) mode, but 16K of RAM.

The Minstrel 3 is ZX81 compatible, with slow mode and 32K of RAM to allow high resolution graphics.

The Minstrel 2, 3 and Minstrel 4th (Jupiter Ace / ZX80 / ZX81 / Lambda 8300 / RC2014,) are available with built in keyboards

All versions are available in kit form, or pre-built, and optionally the new Minstrel ZXpand II SD card and joystick interface.

International shipping is a bit complicated at the moment, so if you want to order from outside the UK, please contact me using the contact link at the top of this page.

See here for more information:

Sorry to have to do this, and I know this is going to affect sales, but please understand it is the only option I have right now.


Patreon

If you enjoy posts like this, you can support me via Patreon, and get access to advance previews of blog posts, and exclusive posts. Paid Patreon supports have already got the second part, and a part three will follow if there is any interest

You also get progress updates on new projects and other behind the scenes updates, as well as access to my Patreon only Discord server for even more regular updates, and to discuss your own projects.

Sunday, 30 August 2026

Minstrel ZXpand II

Introducing the new Minstrel ZXpand II.


Designing a new product wasn't actually on the plan.

This was one of those, oh, "I wonder if ..." type moments, and I happen to have space on the bench and most of the bits to hand so I thought I would give it a go.

So What Is It?

Well, it is an SD card and joystick interface for the Minstrel 2, Minstrel 3 (and also ZX81 / TS1000 with caveats).

It overloads LOAD and SAVE, and adds CAT, DELETE and CONFIG commands to make it easy to work with files on the SD card.

The Commodore / Atari style 9 way D joystick can be read in three ways:

  1. The ZXpand interface
  2. Via an updated INKEY$ command
  3. As a Kempston compatible joystick interface

There is an FTDI style serial header that can be used to load files over serial from a PC.

The big change with the Minstrel ZXpand II is it now includes the overlay ROM, so it does not need the extra wire connecting to the host board that the original Minstrel ZXpand did.

The ROM chip is squeezed in on the right, so there are now two chips with labels on. Minstrel ZXpand II. Get it?

Build Options

The Minstrel ZXpand II is available as a kit or assembled.

There are versions with edge connectors or pin headers, either vertically in the Minstrle Expansion Bus socket, of horizontally soldered direct to the host.

It can be fitted to a variety of machines in a variety of different ways to suit your needs.

I will write a separate post going through all the options in more details.

DIP Switches

The jumpers on the previous Minstrel ZXpand have been replaced by DIP switches.

There are four switches:

Switch 1 disables the Kempston compatible joystick interface.

Switch 2 disables the ZXpand interface.

Switches 3 and 4 select the ROM.

The ROM overlay needs to match the host device. There were going to be three ROM overlay images:

1 - Minstrel 3 8K BASIC with NMI slow mode

2 - Minstrel 2 8K BASIC without NMI slow mode

3 - Minstrel 2 4K BASIC

I think I might use the fourth slot to add another ROM. No George, not a Forth slot. Not this time, sorry.

4 - ZX81 / TS1000

This should work on a ZX81 or TS1000, although you will really need an internal RAM upgrade or an external RAM pack, there is no RAM on the Minstrel ZXpand II.

Something like this as shown in one of my most popular blog posts showing a 16K internal RAM upgrade (it currently has almost 16K views, which is rather appropriate)

It will not work on a ZX80 as there is no ROM_CS line on the edge connector, and it's also on the wrong side. Get a Minstrel 2 instead.

The current ZXpand ROMs bypass the power-on RAM test, as they are expecting to be connected to a Minstrel 2 or 3 with it's normal complement of RAM. That way you get straight to the boot screen.

To work properly, for the ZX81 version I have reinstated the RAM test to properly set RAMTOP.

This is on my TS1000.

Ah, RAMTOP is 18432, that's ... err ... hang on ... carry the three ... the sound of counting on fingers followed by shoes being removed ...

I know, let's ask the TS1000.

I know the answer, I am just checking, I am sure you understand?

Ah yes, there it is, 2048 bytes, 2K installed (they never made much of the 2K RAM on the TS1000, presumably because it was too late to call it the TS2000).

RAMTOP holds the address of the byte above the last valid byte if RAM. RAM starts at the $4000 / 16384 mark, with ROM and RAM or ROM mirrors below.

On the Minstrel 2 and 3, it is set to 32768, 16K of RAM, the maximum BASIC normally sees.

The Minstrel 3 actually has 32K of RAM, with 8K below the 16K mark, and another 8K above the 32K mark, but BASIC is usually restricted to the standard 16K region.

How Did This Happen?

The Original Minstrel ZXpand kit included the board itself and a separate ROM chip.

This would replace the ROM in the Minstrel 3, and it would be controlled by a bit of green wire.

That wasn't ideal, although if you were doing a permanent install, you would solder the wire on the back of the boards.

The original ZXpand by Charlie Robson had onboard ROM and RAM, so didn't need the extra wire and ROM swap.

It also had space for an AY-3-8190 (or in this case a Yamaha compatible).

When I produced the first Minstrel version, I was going for the minimal approach.

The Minstrel already had RAM, so that wasn't required, and with that one wire link, I was able to share the main ROM on the Minstrel so I didn't need a second ROM chip.

That did mean it wasn't suitable for a ZX81 or a Minstrel in a ZX81 case, as it wasn't practical to connect the wire.

There was a sort of work around, when I added the Minstrel ROM cart, one of the uses I suggested was hosting the ZXpand ROM.

This meant you could leave the original ROM in the Minstrel and add this and the ZXpand without the need for the wire.

It also opened up the possibility of using it on a ZX81 or TS1000, as long as you have an internal RAM upgrade, or external RAM pack.

There was a small caveat of doing it that way, there was no option to disable the ROM.

There was now no connection between the ZXpand board and the ROM interface, so the control signal which disables the ROM was not connected.

Most of the time this wouldn't make a difference, unless you wanted to use a ZX Printer (or Alphacom 32 etc.) or had some software which needed the original ROM.

My test case for that is the 25th Anniversary demo (which celebrated it's 20th Anniversary this year).

When used with the ZXpand, some of the high-resolution graphics demo parts do not work.

This is meant to say A HOT ZX81, but it is just noise.

When loading, you should be able to append ";X" to the filename to disable the ZXpand ROM after loading.

With the ROM correctly disabled, you can see the difference.

You can get around that by connecting the wire from the Minstrel ZXpand to the ROM cart A15 jumper.

Or a wire connected to the ROM select block on the host ROM.

An Idea

I didn't think much more about this, until a couple of people recently asked about using the Minstrel ZXpand with Minstrel 3 boards in ZX81 cases. Whilst it's not impossible, it is a bit fiddly to run the wire out of the edge connector slot.

I wonder if I could modify the ROM board to check the control input, so the ROM could be disabled if required?

Oh look, there are all the bits I need handily arranged on the bench. What a bit of luck.

I needed an extra couple of logic gates to combine the signals, but I wired it up and it worked.

Great, now what?

Well, is there a way I can fit all of that onto one board?

So let me get this right, without making the board larger, you want to add a ROM, two more logic chips for that and a third extra logic chip to do the switching?

Oh, and whilst you are at it, get rid of the jumpers and add some DIP switches.

Oh, and the current theme is round all the corners, so do that as well.

Making It Fit

I fairly quickly concluded I couldn't fit all that on the same board.

To make it fit, I managed to fit most of the logic into a GAL chip.

The chip count is now the microcontroller, the ROM, a GAL, a 74HC10 triple 3 input NAND gate, a 74HC540 inverting buffer (for the Kempston joystick interface that runs in parallel with the ZXpand), and the 4050 to level shift to 3.3V for the SD card.

I am quite pleased with how that turned out, sticking to the horizontal on one layer, vertical on the other worked well.

Thanks to Charlie Robson (Sir Morris) for designing the original ZXpand and letting me do the Minstrel version.

How To Get A Minstrel ZXpand II

The Minstrel ZXpand II is available from my Tindie store:

You might also want a Minstrel Expansion Bus to plug it.

If you are outside the UK, you will need to contact me direct if you want to order. See last week's post for more information


Patreon

If you enjoy posts like this, you can support me via Patreon, and get access to advance previews of blog posts, and exclusive posts, and there was a much longer version of the "how did this start" in the Patreon Preview version of this post a few weeks ago.

You also get progress updates on new projects and other behind the scenes updates, as well as access to my Patreon only Discord server for even more regular updates, and to discuss your own projects.