The title may be a little confusing but i'll explain the situation:

We have the following situation:

ARM MCU -> UART -> FTDI chip -> USB -> PC -> Tera Term terminal

The FTDI chip has built-in hard- and software to handle software flow control (XON/XOFF) internally. So i expect that when you select software flow control in Tera Term that it will send commands to the FTDI chip to enable flow control.

This means that Tera Term will not handle flow control itself but only enables/disables it on the FTDI chip by sending commands at initialization?

If so, is there a terminal program which do handle flow control on PC?


if you downvote, tell at least why.

  • \$\begingroup\$ The downvote was probably a result of the question being somewhat off-topic. Its not about electronic design but more about the use and behavior of a specific PC software. \$\endgroup\$
    – Rev
    Commented Jun 16, 2014 at 9:29
  • 2
    \$\begingroup\$ This question appears to be off-topic because it is about advice for PC software. \$\endgroup\$
    – Rev
    Commented Jun 16, 2014 at 9:30
  • \$\begingroup\$ @Rev1.0: If the question were interpreted as being about "terminal programs such as TeraTerm" rather than TeraTerm in particular, then it would seem on-topic. Basically, "is 'software' handshaking actually handled by software [such as TeraTerm] or by hardware"? Such a question is relevant in the design of hardware that needs to talk to a PC using an FTDI cable, since it affects how much data the device must be prepared to handle after sending an XOFF. \$\endgroup\$
    – supercat
    Commented Aug 15, 2014 at 17:24
  • \$\begingroup\$ @supercat: You have a point, voted for re-opening. \$\endgroup\$
    – Rev
    Commented Aug 17, 2014 at 18:21

1 Answer 1


There is no standard "command" one side can send to enable or disable flow control on the remote side. Hence, your terminal will not send anything when you enable or disable handling of (software) flow control.

What you do enable is the handling of the XON and XOFF bytes by the terminal. This means that the terminal program will be aware that XON (0x11) and XOFF (0x13) when received are not to be shown in the terminal window but mean to resume or pause, respectively, transmitting data to the other side.

Or, in other words, XON/XOFF is only sent by either side when that side is currently receiving data.

Edit: The misunderstanding may be in that "XON" does not "turn on" flow control, but is itself a flow control command signalling to the other side to turn "transmission on", i.e. go on sending data; "XOFF" is sent to the other side to tell it to turn "transmission off", i.e. to pause sending.

  • \$\begingroup\$ This can actually depend on the software and drivers a bit, if you look at the DCB structure that gets handled by the device driver it's possible it could send a command to an external device instead. Although I'm not sure if Tera Term uses that feature and how the FTDI drivers handle it. \$\endgroup\$
    – PeterJ
    Commented Jun 16, 2014 at 8:59
  • \$\begingroup\$ @PeterJ: If xon/xoff were handled by software, there would be no way to avoid having the FTDI send 2ms worth of data following an xoff. In fact, the FTDI includes hardware support for xon/xoff, thus allowing it to be used with software handshaking at high baud rates even when talking to controllers whose buffers have space for only 3-4 bytes of data when they send xoff. \$\endgroup\$
    – supercat
    Commented Aug 15, 2014 at 17:51

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