Here we have a Wellon VP-390 Universal Programmer. A nice bit of kit for programming EPROM and GAL chips etc. But unfortunately this one is not working properly at the moment. The problem is intermittent (my favourite type of fault).
Sometimes it work fine, other times, it fails to program known good chips, or brings up errors before it starts programming, highlighting which pins it has problems with.
Those unfortunately are not consistent either, usually on the right hand side, but not always the same pins. It seems to happen more when programming ATF16V8B GAL chips, but also sometimes with other things.
Inside, there is a two board construction, connected together by two rows of pin headers.
The top board contains the ZIF socket, and on the back, a load of 74HC595 shift registers, transistors, diodes and resistor arrays.
These presumably select for each pin if it is a data IO pin, or one of the switched programming voltages. I was starting to think it was one of these that was at fault, that's going to be fun to find.
The base board houses two large chips, an ST ARM microcontroller, and an Xilinx FGPA, and all of the power supply generation components.
Everything on there looks OK, nothing obviously damaged. The only oddity is a small 6 pin chip with the markings ground off. Really? Do people still do that?
At this point I did a lot of poking around and testing, and couldn't find anything wrong. I have updated the firmware, and gone through all the self test options, including a mode in the software which generates a series of voltages to test.
5V was OK, a little low, but acceptable.
12V seems fine.
21V is also a little low, but not a problem.
The ZIF socket on these is actually mounted in a socket, I thought at this point, it would be good to rule that out. Programming with a chip directly in the socket worked. Several times. No problems. Hmm. Is it the ZIF socket?
The socket on there is a 48 pin 'universal' ZIF socket (i.e. it can accept both normal 600mil wide EPROMs and narrow 300mil chips), and I had trouble finding an exact replacement for the Aries socket on there.
These are 3M sockets (well, OK, they are probably knock off 3M clones), the only ones I could find that were 48 pin universal.
The only problem with the 3M sockets (even the real ones) is the pins are much thicker than a normal IC, or the legs on the Aries socket. This means unfortunately they do not fit in the nice turned pin socket on the board.
I have found in the past that those ZIF socket pins can be pushed into the cheaper 'standard' dual wipe type sockets, which I don't normally use as they aren't as nice as the turned pins ones.
As a temporary solution, I installed two less good sockets into the good socket, and the ZIF socket plugged into those.
That worked, but was too tall to fit back in the case, so I ended up desoldering the nice turned pin socket and replacing it with an improvised 48 pin dual wipe socket, made from two cut down 28 pin sockets.
The ZIF socket can then fit into that at a suitable height to fit in the case.
I did some more testing like this, and couldn't get it to fail, it seems it was just a bad ZIF socket.
Back in the case, it looks slightly strange as I am so used to seeing it with the black socket, but I'm sure I'll get used to the blue/green one.
First off, I ran it though all the self tests and voltage tests again, I thought I had a problem as the 21V read as 0V, but I had forgotten the 21V is not present unless you are using an external power supply. With that plugged in, everything passed. Time to program some chips.
OK, lets start with a challenge for a modern programmer, a 2732 4K EPROM which needs a 21V programming voltage.
Success. OK, looking good so far. Now a 27C64, 12.5V programming voltage.
Passed again. Something modern now, 5V programming voltage 28C64B EEPROM.
Yes, no problem there, and these had been one of the things that failed more often. On that subject, I then went through a whole tube of 16V8B GALs with no problems. Now you see why it needed a socket that could accept narrow chips.
OK, this is looking good. I next tried a bigger chip, a 27C160 EPROM, 42 pins. Also fine.
And finally, I needed to check an Amiga kickstart ROM, and it read that fine (set as AT27C400 and turn of insertion detection / device ID check).
So, I think that is it sorted, all down to a bad ZIF socket. I guess it has been used a lot, so has probably worn out, although it has had less use than some of my other programmers. Here it is, now matching the Mini Pro TL866CS which I have had for longer and used more and is still going strong with a similar looking '3M' socket.
I don't know how long the cheap 3M copy ZIF sockets will last, but they were only a few pounds each, and I bought a couple so I can just plug in a new one if there is a problem. I will keep a look out for some genuine 3M or other replacements.