Programming Interface

The USBHub2x4 is capable of many features. These features are organized into groups called entities. Through these entities we can access the vast features of the USBHub2x4.

A complete list of all entities and functions can be found in the Module Entities page.


Software Control

Software control of the features of the USBHub2x4 is done with the BrainStem API via a BrainStem link. BrainStem links are done over USB and can be established via upstream port 0 (Up0) and upstream port 1 (Up1). After one or more of these ports is connected to a host machine, a user can connect to it via software API:

stem.link.discoverAndConnect(USB)

When multiple Acroname devices are connected to a host, connecting to a specific hub can be done by providing the hub serial number. Further, all connected devices can be found using

brainstem.discover.findAllModules(USB) (Python)
Acroname::BrainStem::Link::sDiscover() (C++)

Using Multiple Hosts with USBHub2x4

The two upstream-facing host ports can be connected to two different host computers. Due to limitations of USB specification, only one host computer can access downstream USB ports at any time. Through the BrainStem API, the upstream port used can be controlled, or the system can automatically select the upstream port (see USB Hub Upstream Mode). When automatically selecting the upstream port, the USBHub2x4 will default to using Up0 if it is connected.

Device Drivers

The USBHub2x4 leverages operating system user space interfaces that do not require custom drivers for operation on modern operating systems.

Some older operating systems may require the installation of a BrainStem USB driver to enable software control. Installation details on installing USB drivers can be found within the BrainStem Development Kit under the “drivers” folder. For example, Windows 7 requires the supplied INF to communicate with BrainStem USB devices.