0
\$\begingroup\$

Objective: interface to an HPLC pump via the RS-232 interface described in the manual. Communication protocol is well described. Pinout is not described at all. Can I guess the pinout based on voltages?

Information: I have a LKB Bromma 2150 pump, and am trying to use an Arduino to control it. The manual states that it has the following RS-232 parameters, and has an entire page of simple enough commands.

enter image description here

I have numbered the pins on the 6-pin connector in the following way, and by measuring their pair-wise voltages, was able to figure out the voltage of each pin while the device is on but not communicating.

enter image description here

The voltages are as follows:

  • Pin 3 (4.93V)
  • Pin 1 (1.26V)
  • Pin 2 (0.04V)
  • Pin 4 (0.00V)
  • Pin 5 (0.00V)

What I need help with: does someone with more RS-232 experience think they can guess which pins are what? I am assuming its a 5-wire RS-232 protocol with gnd, tx, rx, cts, and rts. I really only need to determine the gnd, tx, and rx.

Note: the Arduino is communicating through a Sparkfun Level-Shifter designed for RS-232 communications--no need to worry about blowing up the Arduino.

Additional Information: the instrument has a BNC connector that goes to a chart recorder. The ground on this connector is shorted with Pin 5 on my diagram.

Another commenter also pointed out that the manual states the communication protocol is RS-232C.

Update (15 AUG 2016): Still messing around with this pump, but haven't been able to get it to work yet. Switched to a MAX232 based TTL logic shifter, and that got another piece of instrumentation going, but this pump is still a puzzle.

Update (16 AUG 2016): Scope in hand, still trying to figure it out. Using PIN 5 as ground and PIN 2 as probe, I see that PIN 2 appears to be a 0-5 VDC signal going high only when the pump is in "Run" mode. Having trouble figuring out how to prompt the pump to send data over the Tx line (whichever pin that is) that I can detect with my scope.

Update (16 AUG 2016 Later): I think I've got it. This pump can be operated in standalone mode, or using a LKB Bromma 2152 controller. I found the manual for the next generation controller (LKB Bromma 2252), and it gives a pinout for the connections to the "LKB Bromma 2250" pump. Uses a 6-pin connector with a NC pin for control, and a 6-pin connector with 2 NC pins for the 'recorder' leading me to believe the pinouts are the same.

LKB Bromma 2252 remote controller pinout

Further, the manual states that the LKB Bromma 2252 controller is compatible with my LKB Bromma 2150 pump--meaning the connection has to be the same. The confusing bit is that the pin labeled "PULSE"--what I had thought was ground--would be tied to the ground of the BNC connector. Strange.

\$\endgroup\$
  • 1
    \$\begingroup\$ These do not look like RS-232 levels. But I am pretty sure the manual should have a pinout somewhere. \$\endgroup\$ – Eugene Sh. Jul 25 '16 at 17:23
  • 1
    \$\begingroup\$ I've looked at manual. It is RS-232C, not RS-232 (page 9). There is a difference and you better know it before using your converter. So with a high level of confidence one can tell Pin1 is TXD, Pin2 is RXD. And likely 3 is GND. \$\endgroup\$ – Eugene Sh. Jul 25 '16 at 17:26
  • \$\begingroup\$ @EugeneSh. You realize his pins are not numbered in order; he is measuring Pin 3 at 4.93V which is not ground. \$\endgroup\$ – tcrosley Jul 25 '16 at 17:30
  • 1
    \$\begingroup\$ Um.. sorry. It's 3,1,2 of course. 3=TXD, 1=RXD, 2=GND. \$\endgroup\$ – Eugene Sh. Jul 25 '16 at 17:31
  • 1
    \$\begingroup\$ @EugeneSh. As far as I know, RS-232 and RS-232C is the very same thing. C refers to the original EIA standard from dinosaur times, while D and E refers to revised versions with minor differences. Thus I believe your comment "It is RS-232C, not RS-232" is misleading nonsense. See this \$\endgroup\$ – Lundin Aug 16 '16 at 6:22
1
\$\begingroup\$

First all, you shouldn't need a MAX232 based TTL logic shifter for this setup, as you are already dealing with logic level signals (0 to 5V). I assume your Arduino is also 5V; otherwise you will need to do level shifting between 5V and 3.3V. There are lots of posts already on this forum re that so I won't repeat them (search for level shifter 5v 3.3).

I assume you are looking for the labels as they come out of the connector, i.e. TXD means the pump is sending the Arduino and connected to it's UART RXD pin. Vice-versa for RXD (transmit from Arduino TXD to pump).

I would try: 3 is TXD, 1 is RXD and 5 is GND. I would put a 330 ohm resistor (or similar value) in the RXD line just in case I'm wrong. Even if shorted, this will limit the maximum current to 15 mA, which shouldn't harm your Arduino.

After connecting up the line to the Arduino, both sides of the resistor should be close to 5v (instead of the 1.26v) since the RXD input should be drawing very little current.

If pin 1 doesn't work for RXD, try pin 2 or 4 (again with the resistor).

\$\endgroup\$
0
\$\begingroup\$

Measuring voltages is nonsense and doesn't say anything. You have to use an oscilloscope to see if some manner of digital protocol is coming out or not. With 9600 baudrate you should see 100us long pulses. The pulses should be at > 3V (logical 0) and < -3V (logical 1). Otherwise the specification is wrong.

I don't believe the pump should have TTL UART levels unless it was designed by amateurs, as any form of EMI would instantly screw up the signal. It rather sounds as if you are trying to measure a digital signal with a regular volt meter...

If you do confirm a TTL level digital protocol with your oscilloscope, then prepare for all manner of ECM nightmares. Shielded cables is a must etc etc.

\$\endgroup\$
  • \$\begingroup\$ That would be the obvious plan if I had a (multichannel) oscilloscope handy. What I had on hand was just a multimeter, and I figured someone with some hands-on experience would have an idea. I'll see if I can get a scope, and then the answer is obvious. \$\endgroup\$ – Michael Molter Aug 16 '16 at 6:34
  • \$\begingroup\$ @MichaelMolter If you have no scope, you cannot possibly work with electronics. \$\endgroup\$ – Lundin Aug 16 '16 at 6:38
  • \$\begingroup\$ @Michael Molter you don't need a scope. A simple RS232 tester with LEDs should be enough to see what's happening. conserver.com/consoles/Tracers/tracers.html \$\endgroup\$ – Bruce Abbott Aug 16 '16 at 7:51
  • 2
    \$\begingroup\$ @Lundin: That's simply non true. I had many, many years of successful hobby electronics building digital and analog projects before I had access to a 'scope. Sure, some measurements and debugging are impossible without them but none of the electronics periodicals assumed access to a scope for debugging. I've also done much RS-232 work using a multimeter or/and LED monitor. \$\endgroup\$ – Transistor Aug 16 '16 at 21:32
  • 1
    \$\begingroup\$ @Transistor There's quite a difference between hobbyist tinkering with all the time in the world and professional engineering where you get paid for your time spent. In any line of work, you can usually fix things with the wrong tools. Just takes a lot longer and sometimes gives worse results. \$\endgroup\$ – Lundin Aug 17 '16 at 6:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.