3

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

1

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 '16 at 7:20
0

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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