Hello Michael,
I'm not trying to steal Mandos' thunder, he deserves all the credit, but I can help you on this little part. The readbytes = ... is a return value from the function call. It is 1. (You can double check this through debug.) So you are only getting 1 byte read correctly because that is the length. There is a sizeof() function that you can use to get the number of bytes.
Congratulations on your success! But most importantly, thanks for sharing your hard work!
Thanks,