Addition of extra error checking and reporting in firmware upload, as well as adding a timeout counter.