Home - turag-ev/TURAG-Feldbus GitHub Wiki

The TURAG-Feldbus protocol is a serial single-master bus protocol designed to be simple yet feature-rich. It is particularly suitable for controlling sensors, IO boards or smaller actuators such as servo motors running on 8 bit or 32 bit microcontrollers like AVR or STM32.

In addition to electrical requirements, packet framing and device addresses, it defines a Basic protocol which all devices need to implement. It provides access to status information for all devices, device querying, etc. Additionally devices implement an application protocol, which defines the actual functionality. This way a wide variety of device classes can be controlled via a common bus.

Table of Contents

Overview

Attribute Description
electrical basis variable, but designed for RS-485 busses
mode Single-Master
number of devices 1 - 127 devices, exactly 1 Master
max. packet size variable

Intended use

To increase flexibility, the specification and the reference implementation allow to select only required features, meanining universal compatibility is a non-goal. Instead it is targeted at smaller development groups as a utility to quickly deploy small networks of devices which need to communicate with a bus master.

The focus of the protocol is on smaller devices that can do with a simple, stateless protocol and whose communication needs are small to medium in size. The firmware of these devices can usually also be updated using a bootloader.

Protocol layers

Device protocols

The following table lists pre-defined device protocols which cover common communication needs.

ID protocol name description
0x01 Flexible IO protocol IO protocol which works by defining an IO table with configurable data types (originally named Stellantriebe protocol).
0x02 reserved
0x03 Simple IO Protocol Simple IO protocol supporting binary and 16 bit analog in-/outputs (originally named ASEB protocol).
0x04 BMaX Protocol Bootloader protocol.
0x05 reserved
⚠️ **GitHub.com Fallback** ⚠️