Skip to main content Skip to page footer
Insights

PiBridge: How Communica­tion Between RevPi Modules Works

The PiBridge has been mentioned many times before – but what exactly is its function? What makes this backplane bus so important for communication between the RevPi Core and RevPi Connect base modules, and the RevPi expansion modules?

The PiBridge is the central connection element between the base modules of the RevPi Core and RevPi Connect series, and the RevPi expansion modules. It enables efficient and fast communication between the modules and ensures automated detection and configuration during system startup.

With the PiBridge, up to 10 expansion modules can be connected to a RevPi Core or RevPi Connect base module. In addition to an RS485 interface for I/O modules, the PiBridge features two Ethernet channels specifically designed for connecting RevPi gateways. This allows the Revolution Pi to be flexibly expanded and seamlessly integrated into industrial networks.

Technical Characteristics of the PiBridge

  • Bus coupling of RevPi expansion modules via a 20-pin system connector
  • 4 digital signal lines for controlling the initial module and position detection
  • 2 signal lines for a fast RS485 data channel
  • 8 signal lines for two independent bidirectional 100 Mbps Ethernet data channels, one on each side of the RevPi base module

Functional Process

Startup Phase

When starting the system (or restarting the PiBridge), all connected modules are in a "waiting for configuration state". The process is as follows:

  1. First, only the RevPi expansion module installed immediately to the right of the RevPi base module is enabled for RS485 communication and exchanges status data with the piControl driver.
  2. The driver identifies the module type and compares it with the type stored in the configuration file. – You must create this file with PiCtory beforehand, that's Revolution Pi's graphical configuration tool.
  3. If the types match, the expansion module receives its specific configuration data, including a module address in the system. – Modules that are connected but not included in the configuration are ignored by piControl. However, with „piTest -d“, you can still see that such modules are present.
  4. Once a module has been detected and configured, it enables the next neighboring module to its side via the control lines.
  5. When all modules on the right side have been configured, the RevPi base module continues with enabling, detecting, and configuring the modules on the left side until all modules are recognized and configured.
  6. The bus termination is then activated on the outermost modules, and cyclic RS485 communication with a high transmission rate is started.
  7. At the same time, cyclic communication over the Ethernet channels is started as well.

Cyclic Data Exchange on the Ethernet Channels

The Ethernet channels of the PiBridge are currently used exclusively for the RevPi gateways, transferring up to 512 bytes of data per cycle in both the input and output directions between the RevPi base module and the RevPi gateway.

Our RevPi I/O modules do not use these communication channels; instead, they simply pass them through to the next module via the PiBridge. 

Since the RevPi base module has independent Ethernet channels on both sides, one gateway can be connected per side. Exceptions include the RevPi Connect 4, RevPi Connect SE, and RevPi Core SE, where connecting RevPi gateways is not possible. On the RevPi Connect S, a gateway can only be connected on the left side.

Cyclic Data Exchange on the RS485 Channels

During the system startup phase, status and configuration data are transmitted over the RS485 channel. The transmission rate remains constant at 115,200 baud (115,200 Bit/s) – both during module detection and during subsequent cyclic communication.

Once the last devices on the bus are known, they receive the command to enable the termination resistor (the exception being the RevPi gateways, which always have their bus termination permanently enabled).

After that, all bus participants exchange input and output data cyclically. This data exchange uses a specially developed proprietary protocol that is optimized for small data volumes of just a few bytes per telegram.

For experts: The ratio of payload to total length has been improved through minimal protocol overhead.

This blog post was first published in 2016. Technical specifications may have changed since then.

More Blog Posts

Starting with RevPi Bookworm, you can use Cockpit to configure your Revolution Pi devices, monitor the system status, install updates with one click,…

Since its introduction in 2012, the Raspberry Pi has undergone a remarkable development and has become one of the most popular single-board computers…

An essential part of our Revolution Pi development philosophy is to enable open source in industrial settings. This means not only providing an open…