The serial device returns error codes whenever an operation is attempted. SerialIO->IOSer.io_Command = SDCMD_SETPARAMS; /* Set parameters */ if (DoIO((struct IORequest *)SerialIO)) printf("Set Params failed. Error: %ld ",SerialIO->IOSer.io_Error); The error is returned in the io_Error field of the IOExtSer structure. SERIAL DEVICE ERROR CODES Error Value Explanation ----- ----- ---------- SerErr_DevBusy 1 Device in use SerErr_BaudMismatch 2 Baud rate not supported by hardware SerErr_BufErr 4 Failed to allocate new read buffer SerErr_InvParam 5 Bad parameter SerErr_LineErr 6 Hardware data overrun SerErr_ParityErr 9 Parity error SerErr_TimerErr 11 Timeout (if using 7-wire handshaking) SerErr_BufOverflow 12 Read buffer overflowed SerErr_NoDSR 13 No Data Set Ready SerErr_DetectedBreak 15 Break detected SerErr_UnitBusy 16 Selected unit already in use