During the last month or so, I’ve been trying to set up an HP7475a with Windows 7 so I could make an etcher to produce micrometer sized regions on a glass slide. This proved to be a little bit tricky and there was very little help available on the internet, so I thought I would write a short guide for setup now that I’ve got it working. I’m making the assumption that the RS232-C port on the back is being used.
There are a couple of tricky steps to getting the machine to work. You need:
- The right connecting cable
- The computer’s communication port is set up correctly
- The switches on the back of the HP7475a are set correctly
We’ll take these in turn. First, you need a specific cable configuration for the HP7475a. This is a lot trickier than it sounds. What you need in a DB9 to null modem converter, but you have to be careful. There is more than one type of null modem cable. The official pinout is given below. I recommend you either make your own, or buy the HP 24542G cable, which has the correct pinout.
Once you have the correct modem cable, just make sure it’s connected to a serial port on your motherboard. Usually this is listed as COM1, but you should check the manual for your motherboard just to be sure.
I was able to establish communication with the printer by setting up the communications port with 9600 baud, no parity, 8 data bits, 1 stop bit, and CTS/DSR handshaking. You might want to try this setting for a first test, or you could take a look at the manuals for the part over at the HP Computer Museum.
In Windows, you can set COM1 to these settings by the command
after which you should see the following screen:
Once your serial port is set up, all we have left to do is set the switches on the back of the machine.
In order to figure out how to set the switches, you should really reference the manuals over at the HP Computer Museum. However, I can give a quick rundown of what each switch does, which might make the job easier.
B1 through B4 are used to set the baud rate. If you used the mode command above, then the baud rate you’ll want to set will be 9600. The manual contains a table of how the switches need to be set for baud rate, which is reproduced below.
You can see that I’ve set my plotter for 9600 baud. The next two switches, A3/A4 and MET/US select the default paper size. The table from the manual of how they’re supposed to be set is shown below. “ANSI A” corresponds to the typical 8.5”x11” sheet of paper, while “ANSI B” refers to ledger paper. “ISO A4” refers to a paper size larger then letter, but smaller then ledger, while “ISO A3” refers to a much larger sheet of paper. The Wikipedia article on paper sizes has a nice graphic that compares the different sizes of standard paper sizes. You can see that I’ve set my printer for standard 8.5”x11” paper.
The next switch, the Y/D switch, is a little outdated. It’s used to either put the plotter in a “wait for program on signal” state (the Y state) or “I’m ready to be programmed” state, or D state. We don’t have much use for the Y state today, so just set it to D. That means that you don’t have to send a command to it for it to understand that it need to start printing what you send it; it will just do it automatically.
The last two bits are the parity bits. I didn’t end up using parity bits, so I just set them to zero.
This pretty much sets up the plotter. The only thing we have left to do is program the darn thing. It uses a programming language known as HGPL. There are numerous guides on how to program in HGPL on the web, so I won’t reiterate here. But it’s an old format that many programs do not support anymore. Luckily, Eagle does, so if you want to print your own circuit layouts, it’s a good choice as any!
To test the plotter, there’s a test mode programmed into the hardware. If you hold down the P1 and P2 buttons on the front while turning it on, the plotter should print a test plot. After you’ve checked that it’s working, you can send some simple HGPL to the plotter.
What I did is I sent the following code:
What this does is initialize the printer, put back the pen the printer is currently holding, and then pull out pen 1 from the carousel. To send it over, I saved it as a text file, cd’d into the directory where the file was stored, and then used the command
copy test.txt COM1
upon which the printer immediately started moving. This is all you have to do to get the printer working. After that, any HGPL code you send to the printer should print correctly.
I’m going to post a video soon of the printer working on something extensive, so you can see what it looks like while running. But today, I’ll end with an amusing story. My mother used to work with these devices back in the mid 80’s, before printers were commonplace. (And if you look at the HP Computer Museum, you’ll see they used to cost ~$2000 in 1980 dollars!) She needed to print out some documents for an important presentation, but their printer broke. They absolutely needed to print these documents, but no one else had a printer, so they called their office in France which had a printer, printed it off there, and then flew someone on a Concorde jet to the US to deliver the printed documents, which they got on time.
Technology is amazing!