AN #103 - Serial to GPIB converter



This AN was created by Jan Petersen

The description is from the Serial2Gpib.txt file and when you read 'my' it means 'Jans' because he wrote it!

This soft/hardware is made specific for my Tektronix 4662 flatbed plotter with GPIB (IEE488) interface, and a strange GDU coordinate system..!

Now it communicates with a HPGL device-driver trough a normal RS 232 serial port.

Introduction:


Some years ago I got the idea of making a PCB with a plotter and finally found an old Tektronix A3 flatbed plotter from the early 80'.

But I never really got it to work for that purpose I had in mind, mainly because of the strange old GDU coordinate system used on Tektronix Plot10 and Plot50 graphic work station from that period.

Later on I got a newer Roland DXY990 plotter with Serial/Parallel interface and I have made many fine PCB since.

I plot direct on the copper foil with a permanent ink pen, and the quality is very good.

A quick, easy and clean way of doing some rapidly prototype boards.

Now I have gone a step further doing quick PCB's and for that I needed a X-Y machine.

So the old Tektronix got an Atmel 90S2313 chip implemented, and voila... 

So thanks to MCS electronic for there fantastic compiler. :o)

I now just need to finish the milling machine to replace the pen on the plotter, and I am ready to Countour Milling a board with the Eagle Layout-editor and CAM processor I use. And for that purpose the Tektronix plotter is ideal with it's robust motor system 

and very smooth micro step drive.

Software/Hardware:


I don't think this software is usable in this form for other than myself, but if you can use fragments of it, maybe the GPIB protocol procedure, you are welcome to do so.

In this case, I'll be glad when you post me a message.

I have included lots of comments in the source code, so there isn't much to say about it, except for the size of the hex file generated.! 7EC (2028) is the actual 

ROMIMAGE size, and It took me some time to get it fit in.

Lot of memory was used every time a string needed to be cleared... (Result="") 

By collecting this in a single Sub routine instead, up to 300 byte was saved...!

Download source code in an103.zip