Thanks for the comments everyone. I'm still working on the bootloader which has had a lot of road blocks and detours. It's important to get the bootloader ready because it is the way that you'll be able to update the software when I develop new features. The original one I intended to use turned out to be incompatible. I tried to get a commercial one to work, but it lacked support for USB hubs. So now I'm adding USB host support to the manufacturer's bootloader.