Old school IC tester

Old school integrated circuit tester/programmer, 100% open source, fully DIY and connectable to anything that provides 11 digital GPIOs

Similar projects worth following
What if you need to test some old logic IC? Or program some ROM? And you don't want to buy a brand new USB-programmer with Windows only proprietary closed software for $500 or more? Or may be you need to test some custom piece of hardware sending there some patterns and analyzing responses? I can help you with that ;)

Additional constraint: Lets pretend that it's 90s now and we will start with 32-pin ZIF-socket as showed on the project picture on the left. So task is to build a public domain tester/programmer around that ZIF using only discrete logic components. Also I should start an open source software for one or two old computers (it could NOT be PC at all) that will be capable to control that tester/programmer through simple parallel interface (with 8 input/outputs for data transfer and at least 3 additional outputs for controls).

P.S. Finally host machine could be a PC as well, but not right now ;)

For now assume that all tested ICs are having GND at the left-bottom pin (I know it is not always true, but we may add support of other classes of chips later), all ICs will be installed to the bottom of ZIF-socket and we may have DIP14, DIP16, DIP20, DIP24, DIP28 and DIP32, so optional VCC could optionally appear in 5 different places (and pin 32 will have VCC permanently):

========= 32-pin ZIF-socket =========PIN#
1VPP (opt)DIP32 top (memory 512K or 128K)VCC (permanent)32
2X7 (IO)Y1 (I)31
3X6 (IO, opt.VPP)DIP28 top (memory 32K or 8K)Y0 (I, opt.VCC)30
4X3 (IO)R3.7 (IO)29
5R2.7 (IO)DIP24 top (memory 2K or any other IC)R3.6 (IO, opt.VCC)28
6R2.6 (IO)R3.5 (IO)27
7R2.5 (IO)DIP20 top (any IC)R3.4 (IO, opt.VCC)26
8R2.4 (IO)R3.3 (IO, opt.VPP)25
9R2.3 (IO)DIP16 top (any IC)R3.2 (IO, opt.VCC)24
10R2.2 (IO)DIP14 top (any IC)R3.1 (IO, opt.VCC)23
11R2.1 (IO)
R3.0 (IO)22
12R2.0 (IO)R1.7 (IO)21
13R1.0 (IO)
R1.6 (IO)20
14R1.1 (IO)
R1.5 (IO)19
15R1.2 (IO)R1.4 (IO)18
16GND (perm)R1.3 (IO)17

As you can see we need at least 3 8-bit registers (R1,R2,R3) plus 5 additional bits to set remaining inputs of tested chip (Xn,Yn). Optional VCC could be handled manually by jumper switches...

Also in parallel it may have header female receptacle with enough IO-pins to test any of NEDONAND modules :)

  • Backplane

    SHAOS05/31/2016 at 04:57 0 comments

    I decided that interface between ZIF-socket and host machine will be implemented with help of this antique ISA backplane manufactured in 1984 (I bought it for about $20 last month):

    I cut out it a little to remove part with pull-up resistors, because it shortened power to the ground somewhere. On the back we can see all signals go through so technically this board could be easily used to implement any custom backplane solution:

    For my task I will use part of upside-down ISA-socket where quasi-disks and peripherals (including tester/programmer) will be inserted:

    I marked places A,B,C,D,E and F. Also I cut wire that was used as CLK in ISA - now it will be repurposed as individual /CS for every board. Pinout of the socket in this case uses only 42 contacts from socket and most of them repurposed, so it is NOT an ISA bus anymore (I only kept +5V, ground and partially address on their usual locations):


    All signals are shared across all sockets except for /CS that individually wired to every slot (8 CS generated by X0,X1,X2 and that's why those 3 bits are not routed into the socket).

    You can ask why tester needs quasi disk interface? I think it's cool when device may provide software to control itself right away - so ROM disk C may have a program with component library to run (I can do this program capable to work on many 8080 compatible machine, not only Soviet clones of ZX-Spectrum) and RAM disk A may be used to store test results...

  • Host Machine was Chosen

    SHAOS05/31/2016 at 03:57 0 comments

    I think it's time to reveal the host machine that I will use to control the tester/programmer. As I mentioned in previous log, it will be some sort of interface that I designed in 90s for my home computer, but never actually built it in full. It was quasi-disk and other peripheral device interface for my Spectrum-compatible machine called URAL 8/64K (УРАЛ 8/64К) that was industrially manufactured in the last days of USSR in my home Russian town. That machine was gone a long time ago, but recently I accidentally found the same machine on ebay (in Slovakia!) and I was not able to resist :)

    It was born in February 1991:

    and was priced as about 4 monthly salaries of an engineer in that time...

    Hardware was completely original, built out of Russian parts (except for Z80A processor and ROMs), but ZX-Spectrum compatible:

    Instead of edge connector, as regular Sinclair machine usually had, this one has a cloned 8255 chip with 24 general IO lines on the back (and third of it was used to implement Kempston joystick) and I used this IOs to extend the machine with quasi-disks and other peripherals - now it's time to finish that activity :)

    I threw away a power circuit because it's 220V and I'm in US now, instead I bought new 5V power adapter in RadioShack and connected it to the machine directly:

    Another problem was to find TV that could recognize PAL/SECAM timings and usually it's a lottery because TVs in US may officially do NTSC only and you need to try to make sure that it may or may not be adjusted to recognize different video system:

    This one was good (thanks to V-HOLD potentiometer on the back of the TV) and machine actually works now as if it was NOT 25 years since it was manufactured :)

    I think it's important to say that this machine was completely illegal because it used modified copy of ZX-Spectrum-48K ROM image with a change of boot prompt from Sinclair copyright to (R) УРАЛ 8/64К and also it had second Russian font to print this new message...

  • Current Progress

    SHAOS05/31/2016 at 03:10 0 comments

    I didn't go too far unfortunately :(

    It will be another smaller board connected to it and then they will be connected to some sort of interface that I designed in 90s for some micro computer that didn't exist in real life :)

  • Main idea

    SHAOS05/30/2016 at 19:24 0 comments

    Main idea of the design is to read value from every pin through buffer and put zero on input pins by selectively connecting it to the ground while it's pulled up by default (with optional short circuit to +5V to provide optional power on some pins):

    READ is a signal that connects one out of 4 octal buffers to data bus (OUTPUT). ZERO BIT is a signal from one bit of one out of 4 octal registers storing data for every single input pin of tested device. Resistor 100 Ohm is a kind of protection against accidental connecting output pins of device to ground. Pull-up resistor 10 KOhm is making sure that all pins will have at least "1" on them (also it will work for open-drain outputs of the tested device).

View all 4 project logs

Enjoy this project?



Yann Guidon / YGDES wrote 05/29/2016 at 00:19 point

> (it could NOT be PC at all)
But you just gave the pinout/capabilities of the PC's parallel printer port  :-D

  Are you sure? yes | no

SHAOS wrote 05/29/2016 at 04:47 point

Actually on PC it will be old LPT when data is always out, so in order to support data in I'll do nibbles and it will be 8O+4O+4I ;)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates