Add a timeout to readChannel, it returns 0x8000 when it times out