How do I set the baud speed for a specific tty (in this case a serial port)? I tried using

stty -F /dev/tty.iap ispeed 19200

But get the error Invalid argument for every speed I try (2400, 4800, etc.) except 9600 (the default). I can successfully change the speed in a C program using cfsetspeed. Do I need to make a change somewhere else, like the ttys file?

  • Why the iphone tag? are you really using iPhone?
    – enzotib
    May 5, 2012 at 13:41
  • well actually a jailbroken ipod touch, basically the same. (iap is ipod access protocol.) I figured this question would fit here better than the apple stackexchange site. It is a Unix/Linux question, have the same problem on my mac. May 5, 2012 at 14:17
  • 1
    Try just leaving out the "ispeed" word.
    – Keith
    May 5, 2012 at 21:19
  • @Keith, then I don't get an error message, but I run stty -F /dev/tty.iap to get details, it still says speed 9600 baud;. May 5, 2012 at 22:26
  • 1) «I can successfully change the speed in a C program using cfsetspeed» — have you verified it with stty then? 2) «like the ttys file?» ­— what ttys file exactly? :)
    – poige
    Oct 11, 2012 at 21:47

3 Answers 3


I use the command stty -F /dev/ttyUSB0 9600.

  • Perfect. Now I can echo commands out over serial, at the correct baud rate, as follows: echo -ne 'my message to send over serial\n' > /dev/ttyUSB0 Jan 30, 2019 at 18:16

I use screen for this purpose

# screen /dev/ttyUSB0 38400

works like a charm

  • 1
    I think the goal here is to set the baud rate for the device so you can then echo commands straight over serial. Ex: echo -ne 'my message to send over serial\n' > /dev/ttyUSB0. I think screen is great too, but @Kotte has the correct answer on how to do what is being asked. Jan 30, 2019 at 18:15
  • 1
    Yes, Kotte has correct answer for the question. Still often the problem is not just in baud rate, but also in other parameters. In my case setting baud rate with stty was not enough, but screen /dev/ttyUSB0 115200 has automagically configured all parameters and it just worked. Mar 8, 2021 at 10:44

On my machine, neither stty -F /dev/ttyUSB0 9600 or screen /dev/ttyUSB0 9600 worked for me, but sudo stty speed 9600 was successful.

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.