Question: Is USB a reasonable choice for a local bus?

what are pros and cons?

what reliability concerns are there?

**Bus spec** device count ~4; peripheral devices are permanently connected to same PCB as host (soldered or via headers).

Some device are puny, e.g. serial port or temperature sensor, some are complex, e.g. an LTE modem or ethernet or wifi. Peripherals are such that are available as standalone USB devices or same chips are used in such devices. Linux is supposed to have all the drivers already.

Ideally I'd use only one bus (with hubs if necessary) for simplicity and eventually modifications without some components and with other low-speed components.

**System spec** ARM, Linux, DC powered, roughly equivalent to an Android tablet.

Answer: 
What you are looking at is a problem I like to call *bus hierarchy*.

You have high speed devices that need a fast low-latency path to the CPU (like the LTE modem) and slow devices like the temperature sensor. Connecting a full fledged LTE modem over I2C will seriously bottleneck the system. And connecting a temperature sensor on USB is a serious overkill. You need to prioritize.

What devices are to be accessed most often? Which ones need to respond quickly? And which don't need that much bandwidth?

Feel free to edit your question.

---

**Edit:**

USB may not be such an overkill after all. Only in the latest versions of it (2.0, 3.0) it has gotten the notion of being targeted to fast peripherals only. Before that, it was simply a *Universal Serial Bus*.

This doesn't change anything on the fact that it's implementation cost is very often too high.
Based on your needs, yes, usb is ideal. Keep in mind, the U does stand for universal. You can have usb nics, wifi, mouse/keyboard/touchpad/touchscreen, sound cards, webcams, hell, even usb displays. It's not the most effecient, but for two nics, a temperature sensore, and a serial device, its designed for it. So much that the majority of computing device manufacturers rely on it heavily.\*\* Not just cheapo sbcs or tablets, but even heavy hitters like Apple and Dell use it for touchpads and keyboards and webcams and wifi and bluetooth and ir ports in all their laptops.\*\*

USB is ubiquitos, easy to implement, and has a very low board cost in terms of routing and parts.

While you can get 4 port arm devices, most have one or two root ports (buses), then connected to a hub ic. Your biggest bottle neck will be mixing High speed devices with Full or Low speed devices on a single hub. Cheap hub ICs have a Single Transaction Translator, that can bring a single low or medium speed downstream device to a high speed uplink. Better ones will have a MTT, Multiple Transaction Translators, so multiple low speed devices can be bridged at high speed speed. Or simply ensure that the low speed are on one hub while high speed on another.

But since you have arm as the intended SOC, you will have access to proper buses for sound or i2c or spi (for the temp sensor or serial) or video or even a built in ethernet driver minus the magnetics. Higher end ARM chips comparable to cheap Android tablets or routers are fully loaded.