This project was released in conjunction with another which programs 2704/2708/MCM6876X EPROMs. More about that here.
It’s no secret that EPROMs have great nostalgic value to me, and even today I include them in my projects where ever I can.
For many years now I’ve had a set of the worlds’ first ever commercially available EPROM – the 1702A, sitting in a piece of anti-static foam, waiting to be used once again.
As I’ve long been aware this would be a tall order, because this is a particularly difficult EPROM to program. There are no commercially available programmers and second hand programmers are practically unobtainable. Even if you could obtain one, you may find that is quite large, heavy and difficult to use, perhaps having to program each byte by hand.
This has turned out to be a very tempting idea for a project – a small, compact, easy to use 1702A programmer which interfaces with modern computers.
Fortunately availability of 1702A type devices is actually quite good. I was able to obtain a number of them from eBay for fairly reasonable sums.
I’m not going to go into the detail of programming these devices. This has been done at length on this page. Instead let’s focus on how my design differs from other two-socket designs of which there are a few already on the internet.
Single power supply
Because reading and writing the 1702A requires a cornucopia of different voltages, D.I.Y. programmers are often found to have perhaps three or four different power supplies hanging off them. This is of course a little inconvenient and certainly something I wanted to avoid. My design achieves this with three on-board switching (step-up + inverting) regulators.
Single socket operation
The reason for using two sockets is that the voltages used for reading and writing are so completely different that it becomes difficult to do both on the same socket.
Clearly it is possible because the original design from Intel did do this, as did others of the day. Mine does not share much in common with that design, except for the drivers for the data pins, a less than perfect, but tricky bit of circuitry which I was not able to improve upon.
SMD or through-hole?
I did consider building this as a through-hole design however with 204 components this was going to end up quite large and difficult to lay out. In fact it would likely end up with more than 220 components in a through-hole design due to some of the dual transistor parts I’ve used not being available in through-hole packages.
Here is an example of a dual socket programmer in through-hole. My single socket design would have been considerably larger.
1702A programmers, whether they be commercially built or DIY, have quite a spectrum of interfaces for entering data – from push-buttons and switches to the XMODEM protocol.
In my particular case I’ve chosen to built a Windows UI closer resembling a modern commercially available programmer with familiar functions such as Blank Check, Program and Read. Mainly because that’s what I find convenient.
Physical form factor
I decided to build it as an Arduino mega shield, mainly so I could use it on my previously constructed 8086 Arduino contraption (The reason it has a DE-9 RS-232 connector fitted, this board does not have USB to serial like the Arduino)
Another reason for this form is because if attached to an Arduino, this reduces the overall size even further.
Building one yourself
If you have a sound understanding of how these devices are programmed, are equipped with a decent oscilloscope and have very good soldering and troubleshooting skills – everything you need to build one is provided below.
I won’t be spending any time supporting anyone without one or more of the above.
- Can be downloaded from here.
- You can also see the schematic for the reader board seen in the YouTube video here.
There are two version of gerbers for this board.
- “Long” version – which has the exact dimensions of the Arduino mega PCB. It’s 101.5mm x 53.5mm in size, which is over the 100×100 limit of seeedstudio’s $4 PCB service. Use this gerber if using a PCB house that doesn’t charge a lot more for exceeding 100mm (image).
- “Short” version – which has the tab at the end of the board cropped a little. It’s 99.95mm x 53.5mm in size (image).
Neither version includes any signatures or graphics seen in my photos. Those are for my boards only 😉
A complete BOM can be downloaded here. Exact part numbers for special components are specified, however generic stuff such as resistors and capacitors are not. Up to you to choose those.
The source code for the programmer is written in C and compiled with AVR-GCC (programmed directly with avrdude). It is located in my eightoduino repository on github. There is no Arduino sketch, therefore it can only be used on AVR Arduino Mega boards (unless ported to something else).