Choosing Flow Control on a USB RS232 Serial Adapter
A serial link can move bytes perfectly and still lose data when flow control is wrong. The USB RS232 serial adapter carries both data and control lines, but not every device uses them the same way. Some expect RTS/CTS handshaking, some pause with XON/XOFF signals, and some ignore flow control entirely.
Quick Answer / Summary
Use RTS/CTS when the device drives hardware control lines and the cable carries them, because the adapter asserts and monitors those lines at wire speed. Use XON/XOFF when only TX, RX, and GND are wired and the device understands the flow bytes. A three-wire link with no flow control works only when the receiver is always ready and its buffer never fills.
Hardware Flow Control with RTS and CTS
RTS and CTS are the request-to-send and clear-to-send pair. The adapter raises RTS when it has data to send and waits for CTS before it pushes bytes onto the line. When the far end is busy it drops CTS and the adapter pauses. This happens in hardware, at wire speed, with no data characters wasted.
Because USB is not a real-time bus, the adapter must generate that timing itself. A well-built USB RS232 serial adapter handles RTS/CTS internally, so USB latency does not stretch the pause window.
Wiring RTS/CTS to the Device
RTS on the adapter connects to CTS on the device, and CTS on the adapter connects to RTS on the device. If a device expects the pair looped, a jumper can tie them together, but a passive loop defeats the purpose of flow control.
Reading the DB9 Signal Map
A full DB9 carries DCD RX TX DTR GND DSR RTS CTS RI. Flow control uses RTS and CTS. The other lines handle carrier detect, data terminal ready, and ring indication, which many consoles still need.
Software Flow Control with XON/XOFF
XON/XOFF uses data bytes instead of dedicated wires. The receiver sends XOFF to pause the sender and XON to resume it. It needs only TX, RX, and GND, so a three-wire cable is enough.
The cost is that the control bytes share the data channel. Binary payloads can contain the same byte values by accident and trigger a false pause. Text consoles tolerate this better than file transfers.
When Three-Wire Links Fail
A three-wire link with no flow control assumes the receiver never falls behind. That holds for low baud and slow devices. Raise the baud rate from 300 to 921600 and the same link may overflow during a burst.
The symptoms show up in the data stream. Bytes vanish, lines merge, or a download stalls partway. Adding handshaking or lowering the baud often resolves it.
Configuring Handshaking in Terminal Software
Terminal programs expose a flow control setting. Choose RTS/CTS, XON/XOFF, or none to match the device. The setting changes how the host treats the adapter, so both ends must agree on the same mode.
Common Terminal Settings
Set the baud rate, the framing to 8N1, and the flow control together. A mismatch on any one of them produces the same symptom: characters appear, then stop.
Comparison Table
| Method | Lines used | Data overhead | Best fit |
|---|---|---|---|
| RTS/CTS | RTS and CTS plus TX, RX, GND | None | Devices with hardware lines |
| XON/XOFF | TX, RX, GND | Control bytes in stream | Text consoles |
| None | TX, RX, GND | None | Slow devices always ready |
| DTR/DSR | DTR and DSR | None | Legacy modems, some consoles |
Table: Flow control methods compared
Practical Application Scenarios
- A label printer stalls mid-job on a three-wire cable at high baud, and enabling RTS/CTS keeps the sender in step with the print buffer.
- A network switch console accepts XON/XOFF but has only three pins wired, so software flow control keeps the session usable without extra wires.
- A firmware upload stops at eighty percent over a no-flow-control link, and lowering the baud rate ends the overflow and completes the transfer.
- A test rig uses a null modem cable between two adapters, and crossing the RTS/CTS pair restores hardware handshaking between them.
Related Products and Further Reading
- USB RS232 serial adapter products – Browse adapters with full handshake line support.
- talk to our engineers – Ask which handshaking mode suits your device.
- serial adapter FAQ – Find answers on cabling and pin assignments.
- USB to RS232 adapter cable – A ready-made cable option for full-pin consoles.
Frequently Asked Questions
What is the difference between RTS/CTS and XON/XOFF?
RTS/CTS uses two dedicated wires to pause and resume the sender in hardware. XON/XOFF sends control bytes inside the data stream, so it works with only TX, RX, and GND.
Why does my three-wire link drop characters?
A three-wire link has no way to pause the sender. At higher baud rates the receiver buffer can overflow and bytes are lost. Add flow control or lower the baud rate.
Can I use both flow control methods?
You can configure either, but running both at once is not recommended. Pick the method the device supports and leave the other disabled to avoid conflicting pauses.
Do I still need a null modem adapter?
Sometimes. A null modem swaps the TX and RX pair and the handshake pairs between two DTE devices. If your converter already presents the right pinout, a straight cable is enough.