RS-232 vs RS-422 vs RS-485
RS-232, RS-422, and RS-485 are three serial communication standards that solve different problems. RS-232 connects one device to another over short distances. RS-422 connects one transmitter to up to ten receivers over long distances with full-duplex differential signaling. RS-485 connects many devices on a shared bus over long distances with half-duplex communication. Understanding when to use each one determines which mcserial tools your MCP assistant will reach for.
Physical layer
Section titled “Physical layer”The fundamental difference is how voltage signals are represented on the wire.
RS-232 uses single-ended signaling: each signal is measured as a voltage relative to ground. A logic HIGH is -3V to -15V, and a logic LOW is +3V to +15V (inverted from what you might expect). This means every signal needs its own wire plus a shared ground, and the voltage swings are large.
RS-422 uses differential signaling on two pairs of wires: one pair for transmit (TX+/TX-) and one pair for receive (RX+/RX-). The receiver reads the voltage difference between each pair, ignoring common-mode noise. Because both pairs are always active, RS-422 is full-duplex — you can send and receive simultaneously, just like RS-232, but with much better noise immunity and cable length.
RS-485 uses differential signaling on a single pair of wires (or two pairs for full-duplex, but half-duplex is far more common). The receiver reads the voltage difference between the two wires, ignoring any common-mode noise that affects both wires equally. Because the bus is shared, devices take turns transmitting.
| Property | RS-232 | RS-422 | RS-485 |
|---|---|---|---|
| Signaling | Single-ended (voltage to ground) | Differential (two pairs) | Differential (one or two pairs) |
| Voltage levels | +/-3V to +/-15V | +/-2V to +/-6V differential | +/-1.5V to +/-6V differential |
| Max cable length | ~15 meters (50 feet) | ~1200 meters (4000 feet) | ~1200 meters (4000 feet) |
| Max devices | 2 (point-to-point) | 1 transmitter, 10 receivers | 32 standard, 256 with high-impedance receivers |
| Duplex | Full-duplex (separate TX and RX lines) | Full-duplex (separate TX and RX pairs) | Half-duplex on 2 wires, full-duplex on 4 wires |
| Noise immunity | Low (susceptible to ground loops) | High (differential rejection) | High (differential rejection) |
| Typical connectors | DB-9, DB-25 | Screw terminals, DB-9, RJ-45 | Screw terminals, RJ-45, DB-9 (repurposed) |
Communication models
Section titled “Communication models”RS-232: point-to-point
Section titled “RS-232: point-to-point”RS-232 is always a conversation between two devices. One device (the DTE, Data Terminal Equipment — originally a terminal or computer) talks to another device (the DCE, Data Communications Equipment — originally a modem). They have separate transmit and receive lines, so both can send data simultaneously (full-duplex).
RS-232 also defines modem control lines — dedicated signals for hardware flow control, device presence, and status:
- DTR / DSR: “I’m here and ready” handshake
- RTS / CTS: “I want to send” / “Go ahead” flow control
- RI: “There’s an incoming call” (modems)
- CD: “I have a connection” (modems)
These extra lines are what make RS-232 useful for tasks beyond raw data transfer: you can detect whether a device is connected, pause data flow when a buffer fills up, or pulse DTR to reset a microcontroller.
RS-422: differential point-to-point
Section titled “RS-422: differential point-to-point”RS-422 is a point-to-point or point-to-multipoint standard. One transmitter drives a differential pair, and up to 10 receivers can listen. A separate differential pair carries data in the opposite direction, providing full-duplex communication.
RS-422 has no modem control lines and no direction control. You simply read and write, just like RS-232, but with the benefits of differential signaling: noise immunity, long cable runs (up to 1200 meters), and higher data rates at distance.
RS-485: multi-drop bus
Section titled “RS-485: multi-drop bus”RS-485 is a shared bus. Multiple devices connect to the same pair of wires. Only one device transmits at a time while all others listen. This requires a protocol layer on top of the electrical standard to manage who talks when — Modbus RTU being the most common example.
Because the bus is shared, RS-485 devices need a way to switch between transmitting and receiving. The transceiver chip has a Driver Enable (DE) and Receiver Enable (RE) pin. When a device wants to transmit, it asserts DE to drive the bus, sends its data, then deasserts DE to go back to listening. Some adapters handle this toggling in hardware; others require software control via the RTS line.
When to use RS-232
Section titled “When to use RS-232”RS-232 is the right choice when:
- You are connecting directly to a single device — a sensor, a microcontroller, a modem, or a piece of lab equipment.
- You need modem control lines — DTR for resetting an Arduino, CTS for hardware flow control, DSR for detecting device presence.
- Cable runs are short — within the same desk, rack, or room (under 15 meters).
- You are using a USB-serial adapter — the vast majority default to RS-232 behavior.
When to use RS-422
Section titled “When to use RS-422”RS-422 is the right choice when:
- You need long cable runs with full-duplex communication — industrial sensors, weather stations, satellite dish controllers, or any device more than 15 meters away that needs simultaneous bidirectional data.
- Noise immunity matters but you don’t need a multi-drop bus — RS-422’s differential signaling rejects common-mode noise just like RS-485, but without the complexity of bus arbitration.
- You have a single device (or small number of receivers) — RS-422 supports up to 10 receivers on a single transmit pair.
- You don’t need modem control lines — RS-422 has no DTR, CTS, or other control signals. If you need those, use RS-232.
- Typical applications: industrial sensor links, antenna rotator controllers, CNC machine interfaces, long-distance point-to-point data links, avionics data buses.
When to use RS-485
Section titled “When to use RS-485”RS-485 is the right choice when:
- Multiple devices share one bus — sensor networks, building automation, industrial control. RS-485 supports up to 32 devices (standard) or 256 (with high-impedance receivers) on a single pair of wires.
- Long cable runs — RS-485’s differential signaling works reliably over 1200 meters. RS-232 becomes unreliable beyond 15 meters.
- Industrial environments — factories, power plants, and outdoor installations where electrical noise from motors, inverters, and power supplies would corrupt RS-232 signals. Differential signaling rejects common-mode noise.
- Industrial protocols — Modbus RTU, PROFIBUS, and DMX-512 all run over RS-485.
- Noisy environments — even in non-industrial settings, long cable runs near power wiring benefit from differential signaling.
How mcserial handles the difference
Section titled “How mcserial handles the difference”mcserial tracks which mode each port is in and restricts tools accordingly. This prevents accidentally sending RS-232 modem control commands on an RS-422 link (where they have no meaning) or an RS-485 bus (where they would disrupt direction control). Your MCP assistant uses the set_port_mode tool to switch between modes on an open port, or passes the mode parameter when opening.
Default: RS-232 mode
Section titled “Default: RS-232 mode”Every port opens in RS-232 mode (unless you specify mode="rs422" or mode="rs485" on open_serial_port). The following mode-specific tools are available:
get_modem_lines— read CTS, DSR, RI, CD, RTS, DTRset_modem_lines— set RTS and DTRpulse_line— pulse RTS or DTR for reset sequencessend_break— send a timed break signalset_break_condition— hold or release sustained break
RS-422 mode
Section titled “RS-422 mode”Use set_port_mode(mode="rs422") or open_serial_port(mode="rs422") to switch. RS-232 modem control tools and RS-485 direction control tools are both unavailable. One mode-specific tool is available:
check_rs422_support— detect adapter type and RS-422 capabilities
All common tools work normally in RS-422 mode: transact, read_serial, write_serial, configure_serial, file transfers, and everything else. RS-422 is full-duplex, so you read and write freely without any direction management.
RS-485 mode
Section titled “RS-485 mode”Use set_port_mode(mode="rs485") or open_serial_port(mode="rs485") to switch. The RS-232 tools become unavailable and these tools become available:
set_rs485_mode— configure hardware DE/RE direction controlrs485_transact— send data and receive response with automatic turnaroundrs485_scan_addresses— discover devices on the buscheck_rs485_support— determine hardware capabilities
Shared tools
Section titled “Shared tools”These tools work in all three modes:
open_serial_port/close_serial_portread_serial/write_serial/write_serial_bytesread_serial_line/read_serial_lines/read_untiltransactconfigure_serial/flush_serialdetect_baud_rateset_flow_control/set_low_latency_modefile_transfer_send/file_transfer_receive/file_transfer_send_batch
You can switch modes on an open port at any time with set_port_mode. No reconnection is needed.