Array 3311 RS-232C to TTL Adapter for Array 364X/371X
Product Code: 3311
Overview Image Placeholder — Array 3311 RS-232C to TTL Adapter Array instruments expose a TTL-level serial port. The 3311 translates PC RS-232C to TTL, ensuring correct logic levels and robust communication for scripting, automation and data logging. Where It Fits 3644A/3645A/3646A Array 364X PSU series 3710A/3711A/3715A Array 371X DC loads Why It Matters Feature Why It’s Important What You Gain Correct Level Translation RS-232C uses bipolar signalling; Array ports expect TTL. Reliable framing, fewer comms errors, safe operation. Array-Specific Pin-Out Matches instrument wiring and addressing conventions. Drop-in setup; no custom harnesses. Binary Command Frames Simple 26-byte frames for control and readback. Deterministic timing and easy parsing. DB9 Connectivity Standard cabling with strain relief. Good EMI immunity and serviceability. Choosing Alternatives in the Series If you require USB on the PC side, choose Array 3312.
For multi-drop or long runs, use
3313
(RS-232↔RS-485) with
3314
(RS-485↔TTL). For GPIB racks, see
3315.
Competitive Landscape
Type
Example
Notes
When To Prefer 3311
Brand-specific RS-232↔TTL
Array 3311
Matches Array manuals and pin-outs.
Controlling 364X/371X without rewiring.
Generic RS-232↔TTL
MAX32xx-based converters
May need custom wiring; variable quality.
When you need guaranteed Array compatibility.
Other brand adapters
e.g., Maynuo, B&K kits
Sometimes isolated; different pin-outs.
Use 3311 unless isolation or other brand required.
Getting Started
Set instrument address and baud (e.g., 9600 8-N-1) via the instrument menu.
Use a straight-through DB9 RS-232 cable PC ⇄ 3311. The 3311 connects to the instrument’s TTL-level port.
Send a status query frame to confirm communication, then enable remote control and output/load as needed.
Wiring Quick-Start (364X & 371X)
Important: The instrument port is TTL level.
Do not connect a PC RS-232 port directly to the instrument. Always put the 3311 in-line.
Minimum Signals You Need
PC (DB9 DTE)
Signal Direction
Through 3311
Instrument Port (TTL)
Notes
Pin 3 (TXD)
PC → Instrument
Level-shifted
RXD (TTL)
Transmit from PC arrives at instrument RXD.
Pin 2 (RXD)
Instrument → PC
Level-shifted
TXD (TTL)
Instrument TXD returns to PC RXD.
Pin 5 (GND)
Common
—
GND
Shared reference; keep cables short and shielded.
RTS/DTR hardware flow control is not used by these models; leave it disabled in software.
If you get no replies, swap to a null-modem RS-232 cable only on the PC⇄3311 leg and retest.
Serial Defaults (Factory)
Model Family
Baud
Data
Parity
Stop
Address Range
364X Power Supplies
9600 (menu-selectable 4800–38400)
8
None
1
0–31
371X Electronic Loads
9600
8
None
1
0–254
Image Placeholder — Simple DB9 ⇄ 3311 ⇄ Instrument Wiring Diagram
Command Frames & Code Snippets
These models use a simple 26-byte binary frame (header 0xAA, address, command, payload, checksum).
Checksum is the unsigned sum of bytes 1–25 (mod 256). Below are safe “first actions” you can send to verify comms
and toggle control.
364X Power Supplies — Read Status & Enable Output
Query status: Command 0x81 (26-byte frame). Returns V, I, P and flags.
Set control: Command 0x82 with Byte4 bits: b1=1 Remote, b0=1 Output ON.
# Python 3 + pyserial
import serial
def make_frame(addr, cmd, payload=b""):
frame = bytearray(26)
frame[0] = 0xAA
frame[1] = addr & 0xFE # instrument address
frame[2] = cmd & 0xFF
payload = (payload or b"")[:22] # bytes 4..25 available
frame[3:3+len(payload)] = payload
frame[25] = sum(frame[:25]) & 0xFF
return bytes(frame)
def send_recv(port, frame):
with serial.Serial(port, 9600, bytesize=8, parity='N', stopbits=1, timeout=1) as s:
s.write(frame)
return s.read(26)
ADDR = 0x00 # default
# 1) Read PSU status
resp = send_recv("COM3", make_frame(ADDR, 0x81))
# bytes 4..11 carry I (mA), V (mV), P (mW) little-endian groups
I_mA = resp[3] | (resp[4] & 0xFF) << 8
V_mV = (resp[5] | (resp[6] & 0xFF) << 8 | (resp[7] & 0xFF) << 16 | (resp[8] & 0xFF) << 24)
P_mW = resp[9] | (resp[10] & 0xFF) << 8
# 2) Remote + Output ON (Byte4 = 0b00000011)
resp = send_recv("COM3", make_frame(ADDR, 0x82, bytes([0x03])))
print("PSU status read; output enabled.")
To set limits and a voltage setpoint, use command 0x80 (max current, max voltage, max power, Vset).
Start by reading status first to confirm framing and checksum handling.
371X Electronic Loads — Read Status & Turn Load On
Query status: Command 0x91 (returns I, V, P and limit fields).
Set control: Command 0x92 with Byte4 bits: b1=1 Remote, b0=1 Load ON.
# Read 371X status then enable load
ADDR = 0x
Visit the Debug Store website for more information on Array 3311 RS-232C to TTL Adapter for Array 364X/371X