I have a serial device set to raw mode with stty -F /dev/ttyS0 raw. When i try to send any data through it with echo 'hello' > /dev/ttyS0, following happens:

  • No data is recieved by the other side; oscilloscope shows no data is being sent

  • No prompt appears for approximately 40 seconds, terminal seems to be hanging

What could be the reason for this behaviour?

P.S. The serial port settings as output with stty -F /dev/ttyS0 -a are:

speed 9600 baud; stty: /dev/ttyS0 line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = < undef>; eol2 = < undef>; swtch = < undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -iutf8 -opost -olcuc -ocrnl -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

2 Answers 2


If one uses RTS/CTS hardware flow control then the serial will block waiting for the RTS (Ready-To-Send). You probably want to enable software flow control instead by disabling CTS and RTS:

stty -F /dev/ttyS0 -crtscts
  • That did not help, sadly
    – Srv19
    Apr 19, 2016 at 7:20

After long search for the possible reason, i happened across the solution. It had to do with a certain error during initialisation of my hardware under linux. Solution was to manually (well, from a program run with elevation) set a flag that controlled signal level for interruptions.

After that was set, serial port started working as expected.

I have found solution here: linux.org forums. It references superiotool as inspiration

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .