How to control an old Roland DXY-800A plotter with an arduino

Hello. I've recently received this ancient plotter, the Roland DXY-800A. Struggling to find any information about it on the internet, I write this here.
The plotter has a serial and parallel interface. Is there a way for me to control this plotter and give it commands trough the serial port (and what commands exactly)? The one on the plotter has 27 pins, but as much as I know for serial communication you only need 2 (RX & TX)?
How can I control this old piece of plastic?
If nothing works then I'll just connect the 2 steppers to my arduino and try to make it myself manually.

Sounds like a fun project. I had a similar HP plotter in the office aeons ago.

Serial connectors used to have either 9 or 25 pins.

As well as Rx and Tx there may have been hardware flow control connections - read up about how the serial port was implemented. The Arduino does not do hardware flow control - though you may be able to mimic it.

You will only be able to use the serial connector if you have the datasheet that explains all of the commands that the plotter understands. (Assuming, of course, that it is still capable of understanding anything).

...R

Well it's 25 pin then, my mistake. Anyways, you're saying that I can't just connect the RX and TX of my plotter (pin 2 and 3 according to this type of connector's documentation)? I can hardly even see any mentioning of this plotter online....I ended up with this thing: HPGL but that didn't have any connection with my model of plotter whatever. I'll try to transmit some of these commands to the plotter connecting the RX to TX on the arduino and TX on the RX (pin 2 and 3 again on the serial in) and see if it works, but I'm still waiting for my arduino to ship to me so I've got a little bit of time to think of better solutions.

KingOfAllChunks:
Anyways, you're saying that I can't just connect the RX and TX of my plotter (pin 2 and 3 according to this type of connector's documentation)?

I did not say that. I tried to point out that the plotter MAY rely on some of the other pins.

This is a case for suck-it-and-see.

But without knowing what messages to send to the plotter the hardware is irrelevant. How could you know whether the hardware was working?

You also need to know the serial data format. 8N1 was common, but by no means universal. I recall many frustrating hours trying to get new printers to work.

...R

I would guess it uses the same commands as the HP's. Try sending "PU" and "PD" which, IIRC, were Pen up and Pen down.

KeithRB:
Try sending "PU"

With or without CR/LF, CR only, LF only ?

I have a vague recollection that Roland did not use HP commands - but I am no more than 5% confident of that. It's certainly worth trying - but a negative result may not be informative.

...R

Okay I opened the electronics to see which pins from the serial connector are used. Surprisingly, pin 3 is not soldered to anything. The soldered pins are: 1, 2, 4, 5, 6, 7, 8, 19 and 20. As much as I know the 25 pin serial port pinouts, you need pins 2 and 3 to ( RX and TX ) to make a serial connection. How the hell can I connect this piece of junk? Other than that the plotter features a parallel in port with 36 pins I think. Is that any useful?

I'm assuming you've got RS232 level shifters?

This may help a little with the plotter control language:

oldvetteguy:
This may help a little with the plotter control language:
Plots about plotters.

Thank you! That will help a lot once I actually establish a connection with the plotter. But as pin #3 on the serial connector I see is not used on the plotter, I don't know from where to begin with the connection.

AWOL:
I'm assuming you've got RS232 level shifters?

Why would I need that?

Because a serial interface of that era could easily damage your Arduino.

KingOfAllChunks:
As much as I know the 25 pin serial port pinouts, you need pins 2 and 3 to ( RX and TX ) to make a serial connection.

I'm sure Google will have no trouble finding a description of all the pins.

I reckon the serial connection will be easier to work with than the parallel connection.

Think of this as computer archaeology.

...R

So I need to get a 25 to 9 pin serial cable, then use this ( http://www.banggood.com/5V-MAX3232-RS232-Serial-Port-To-TTL-Converter-Module-With-4Pin-Cable-p-914007.html ) to connect it to the arduino? And it will work even if the used pins of the 25 pin serial port on the plotter are only 1, 2 , 4-8, 19 and 20?

Sorry but I don't understand a lot about electronics as of now since this is my first arduino project. And no, I can't make something simpler for start because I need to get something done in time.

From what I was able to find on Google (various reviews from the late 80s) your plotter appears to use the proprietary DXY-GL command set. This manual (for a different model) apparently documents that command set on page 28:

http://support.rolanddga.com/Docs/Documents/departments/Technical%20Services/Manuals%20and%20Guides/UMDXY1350a.pdf

As others have described above, you'll need to translate the Arduino TTL level serial RX & TX to RS-232 levels. It's not clear from the manual whether the printer wants the hardware flow controls as well, but for getting started, it may not matter.

Edit to add:

KingOfAllChunks:
Okay I opened the electronics to see which pins from the serial connector are used. Surprisingly, pin 3 is not soldered to anything. The soldered pins are: 1, 2, 4, 5, 6, 7, 8, 19 and 20. As much as I know the 25 pin serial port pinouts, you need pins 2 and 3 to ( RX and TX ) to make a serial connection. How the hell can I connect this piece of junk? Other than that the plotter features a parallel in port with 36 pins I think. Is that any useful?

The lack of connection at pin 3 suggests that the plotter doesn't send serial data back to the terminal.

Connections at 4-8 suggest that the plotter does care about hardware flow control and something will have to be done with these signals.

I used to do a lot of plotter programming on HP and Houston Instruments plotters. Here is a wiring diagram that I used for the HP serial input, hardware handshaking, but will also work with Xon-Xoff. Try it on a PC with a real serial port (if you can find one) first, then worry about the TTL levels on the Arduino.

Okay thank you all for the replies and making it more clear for me :slight_smile: !
So let's recap what I will need to do in order to control the plotter from the arduino:
1- Get a RS-232 to TTl level shifter like this one (http://www.banggood.com/5V-MAX3232-RS232-Serial-Port-To-TTL-Converter-Module-With-4Pin-Cable-p-914007.html)
2- Make the serial communication using only pin #2 on the serial in of the plotter, since pin 3 is not used
3- Listen for pin #4 (hardware flow control) and if it is high, stop sending data to the plotter until it's pulled low again

Did I understand everything or I missed something?
Again, sorry for not being really good with electronics as of now.

There are 4 control pins DSR DTR RTS and CTS.

You need to figure out the role of each of them to be sure you have the connections and signals correct. And it can be a bit confusing trying to figure which end of the communication link is the data SET and which is the data TERMINAL.

...R

All right. Before my arduino arrives I tried to pair the plotter with a computer as I happened to found one with a 25-pin serial port on it. I connected pin 7 (plotter) to pin 7(pc) and then pin 2 (plotter) to pin 3(pc). As I mentioned above, I don't connect plotter pin 3 as it's not used in the plotter. I used a program called realTerm as a serial terminal and left it on the default settings except for the part with the baud rate, which I set to 9600. Now here is the problem: On the back I have a 10-switch DIP, with the first 6 switches marked as 'baud rate' and the rest are 'mode'. I couldn't find anything online on the diferent combinations for the setting of baud rate so I set the first switch to off and the 5 rest to on, hoping that it sets it to 9600.

However, sending commands like "M 5, 5, 10, 10" which should move the plotter, or just "H" do not result in anything. I'm suspecting baud rate conflict but I can't say for sure. Any help on that?

Could be your remaining DIP switches are setting stuff like software/hardware handshaking, and your PC side is not using the corresponding handshaking.

Without a manual, this is all just guesswork.

AWOL:
Without a manual, this is all just guesswork.

And a lot of guesswork with 10 dip switches to play with.

If the plotter was designed to send data you could, perhaps, analyze that to figure out baud rates etc. But you say it is designed not to send anything.

...R