While testing a Bluetooth dongle supporting AT Commands, I receive a 400KB file on the GL-AR150 via ttyUSB0 and ttyATH0 using a protocol hand shake . It takes ~3 min via cell phone to PC. (This is just a reference test) It takes ~3 min via the GL-AR150's ttyUSB0. It takes ~9 min using GL-AR150's ttyATH0 at 115Kbps wired to uart pins of dongle. At this baud rate it should take less then or ~3min: as tested and verified on other uart products. Any ideas why the Linux driver for ttyATH0 would be making it slower? Serial config: tcgetattr(_fd, &options); // Get the current options for the port options.c_lflag = 0; options.c_iflag = 0; options.c_oflag = 0; options.c_cflag = 0; // ignore modem lines like hangup options.c_cflag |= CLOCAL; // allow reads from this device options.c_cflag |= CREAD; options.c_cflag |= B115200; options.c_cflag |= CS8; options.c_oflag = OPOST; //watch hangup line options.c_cflag |= HUPCL; //no wait between char's options.c_cc[VMIN] = 0; //1; options.c_cc[VTIME] = 0; //set new attributes tcsetattr(_fd, TCSANOW, &options); sleep(2); //required to make flush work, for some reason tcflush(_fd, TCIOFLUSH);