Serial Buses

In addition to the digital and analog inputs, the roboRIO also offers several methods of serial communication with peripheral devices.

Both the digital and analog inputs are highly limited in the amount of data that can be sent over them. Serial buses allow users to make use of far more-robust and higher-bandwidth communications protocols with sensors that collect large amounts of data, such as inertial measurement units (IMUs) or 2D LIDAR sensors.

Types of supported serial buses

The roboRIO supports many basic types of serial communications:

I2C

The I2C port on the roboRIO.I2C roboRIO port pin specifications.

To communicate to peripheral devices over I2C, each pin should be wired to its corresponding pin on the device. I2C allows users to wire a “chain” of slave devices to a single port, so long as those devices have separate IDs set.

USB Client

One of the USB ports on the roboRIO is a USB-B, or USB client port. This can be connected to devices, such as a Driver Station computer, with a standard USB cable.

USB Host

Location of the two USB ports on the roboRIO at top center.

Two of the USB ports on the roboRIO is a USB-A, or USB host port. These can be connected to devices, such as cameras or sensors, with a standard USB cable.

CAN Bus

Show the location of the CAN bus terminals in the top left corner of the roboRIO.

One of the advantages of using the CAN bus protocol is that devices can be daisy-chained, as shown below. If power is removed from any device in the chain, data signals will still be able to reach all devices in the chain.

A CAN bus topology between motor controllers.

Several sensors primarily use the CAN bus. Some examples include:

More information about using devices connected to the CAN bus can be found in the article about using can devices.