Disclaimer: I'm a novice at electronics and even more so to working with USB, please bear with me if I misunderstand some of the essentials behind how USB works. Any correction welcome!
The scenario: with a group of friends we are building a robotic sailing boat. We are managing all the on-board sensors through a µC (AVR) but the sailing AI is done on an embedded linux system. The electronics is connected to the the AI hardware via USB, and I am looking for advice on what protocol to use for the transmission.
We already tried both the serial-over-USB and using HID, and both worked good enough™ in our short, near-coast tests but before settling for one or the other, I'd like to know if there is some non-trivial but nevertheless important differences between the two that I missed to consider. For our project the most important characteristics are:
- Reliability: our robot is due to sail autonomously for a few days. Is either of the two protocol inherently "safer" / with better error handling / self-recovery functionality?
- Throughput: although in normal operating situations our throughput could well be under 1Kb/s, under certain conditions we will need to harvest data nearly real-time. Serial is limited to 115Kb/s, does HID have a speed limit other than the 1500Kb/s of the USB 1.0 protocol?
...but as I said: I'm pretty new to electronics/USB, so if you feel I am missing a key parameter, I'll be glad to hear.
Thanks in advance for your time and expertise!