USB hubs and dedicated-function devices–issues that may be of concern
There are many of the USB hubs that allow multiple USB devices to be connected to the one USB port. As well, some devices like external hard disks and keyboards are being equipped with their own USB hubs.
The use of a USB hub is also used as an approach for creating multiple-function USB peripheral devices. Similarly, a device with multiple USB sockets for connecting peripheral devices would have the socket collection seen as a “root hub” if one controller chipset looks after that socket collection. It can also appeal to dedicated-function devices like routers, NAS devices, home entertainment or automotive infotainment setups offered in the aftermarket context where the manufacturer sees these devices as the hub of a system of devices.
USB hubs are divided between the “bus-powered” types powered by the host device and the “self-powered” types that have their own power-supply. The latter type can be a USB device like a printer or external hard disk that has its own power supply or a “bus-powered” USB hub that has a DC input socket for a power supply so it can become a “self-powered” hub.
The idea of implementing a USB hub with a dedicated-function device can have a strong appeal with a variety of device types and combinations. For example, a router would implement a USB port for connecting a USB Mass-Storage Device like an external hard disk so it can become its own file server but also see this port for use with a USB mobile-broadband modem as a failover Internet-connection option. Or a business-grade printer which supports PIN-protected “secure job release” may use a keypad compliant to USB Human-Interface-Device specifications connected to its USB port which facilitates “walk-up” printing from a USB memory key. Even a Smart TV or set-top box may use the one USB port for viewing files from one or more Mass-Storage devices and / or work with a Webcam and a software client to be a group videophone terminal.
To the same extent, this could be about a setup involving a multifunction peripheral device. An example of this would be a USB keyboard with an integrated pointing device like a trackpad, trackball or thumbstick being connected to a games console or set-top box, with this setup allowing for the pointing device serving to navigate the user interface while the keyboard answers text-entry needs.
A problem that can occur with using USB hubs or hub-equipped USB peripherals with dedicated-function devices like printers, NAS devices or consumer-AV equipment is that such devices may not handle USB hubs consistently. For example, a USB keyboard that has a hub function may not be properly detected by a set-top box or games console.
This can happen due to a power limit placed on the host’s USB port, which can affect many devices connected behind a bus-powered USB hub. Or a very common reality is that the firmware for most dedicated-function devices is written to expect a single USB device having only one function to be connected to the device’s USB port.
What needs to happen is for a dedicated-function device to identify and enumerate each and every USB peripheral device it can properly support that is connected to its USB port whether directly or via a hub. This would be based on how much power is comfortably available across the USB bus whether provided by the host or downstream self-powered USB hubs. It is in addition to the device classes that are supported by the host device to fulfil its functions.
I previously touched on this issue in relationship to USB storage devices that contain multiple logical volumes being handled by dedicated-function devices. This was to address a USB memory key or external hard disk partitioned to multiple logical volumes, a multiple-slot memory-card adaptor presenting each slot as its own drive letter or devices that have fixed storage and removeable storage. There, I was raising how a printer or a stereo system with USB recording and playback could handles these USB devices properly.
Then the device may need to communicate error conditions concerning these setups. One of these would be a insufficient-power condition where there isn’t enough power available to comfortably run all the devices connected to the USB port via the hub. This may be with situations like external hard disks connected to the host device via a bus-powered hub along with other peripherals or a self-powered hub that degrades to bus-powered operation due to its “wall-wart” AC adaptor falling out of the power outlet or burning out. Here, such a status may be indicated through a flashing light on a limited-interface device like a router or a USB “too many devices” or “not enough power” message on devices that have displays.
If the USB bus exists with the hub in place but none of the connected devices are supported by the host’s firmware, you could see an error message with “unsupported devices” or “charging only” appear on the device. Otherwise, all supported devices would then be identified and enumerated no matter where they exist in the USB chain.
In this kind of situation, there would be an emphasis on using class-driver software for the various USB Device Classes that are relevant to the device’s functionality although there are some situations like USB modems may call for device-specific software support.
What would be essential for the USB hub or multifunction device to work properly with a dedicated-function device is that the device’s firmware has to support the USB Hub device class, including providing proper and consistent error handling. To the same extent, AC-powered devices like printers or home-entertainment equipment would need to provide a power output at its USB ports equivalent to what is offered with a regular desktop computer’s USB ports.