Limitations of legacy hardware and software
Here’s where I feel compelled to deliver some bad news. You may not always have a choice in which hardware, connectivity methods, or buses your solution leverages. The long-term supportability of your solution may force you and your team to implement something less than ideal in order to maintain backward and forward compatibility (a perfect example is the CAN bus).
Older, legacy hardware wouldn’t be so bad if there wasn’t a common practice for deprecating driver support for extremely old or unsupported chipsets. This means that one could be forced to use unsupported drivers that are not included in your operating system, that may not have been updated for a significant amount of time, or that come from an unreliable source. Unsupported drivers (software) may also mean that there are risks and vulnerabilities that are not addressed. It’s a ticking time bomb.
A compounding problem is that newer operating systems...