Skip to content

Flexxbotics Developer Guide

Zac Chupka edited this page Jan 14, 2026 · 3 revisions

Devices, Transformers, APIs, and Runtime Concepts

This guide describes the core architectural concepts of the Flexxbotics platform, including how Devices, Transformers, Protocols, Scripts, and Adapters work together inside the FlexxCore runtime.


1. Core Architecture Overview & Studio

Flexxbotics is built around Devices and Transformers, with supporting concepts such as Extensions, Protocols, Scripts, and Adapters.

Together, these components enable:

  • Communication with industrial equipment
  • Runtime execution of automation logic
  • Visualization and monitoring
  • Autonomous and closed-loop control

All of these entities are fully editable through the Studio development environment.

Accessing Studio

  • Open Flexx Edge
  • Top-right menu → Devices & Transformers
  • Select the Studio tab

2. Devices

What Is a Device?

A Device is the top-level runtime object created from the Devices screen in the Flexxbotics UI.

Devices represent physical or logical equipment, including:

  • Robots
  • PLCs
  • Machines
  • Safety systems
  • Cameras
  • Inspection systems
  • Complete work cells

Device Creation & Assignment

Devices are created based on Machine Model options.

Machine models define:

  • Equipment OEM
  • Equipment model
  • Controller type
  • Which Transformer is used for communication

3. Machine Models

Machine Model Definitions

Machine models are defined in JSON files located in the transformer's models folder.

Each machine model specifies:

  • OEM
  • Equipment model
  • Controller
  • The transformer responsible for communicating with the equipment

Machine models act as the configuration layer that binds physical equipment to a specific transformer implementation.


4. Transformers

What Is a Transformer?

A Transformer is the software component responsible for communicating with equipment.


Transformer JSON

Each transformer includes a JSON definition containing:

  • Transformer metadata
  • Python file name
  • Python class name

Runtime Behavior

When a device is created:

  • Its transformer is assigned to the device
  • The transformer is instantiated in the runtime environment

Transformer methods become execution points for:

  • Status reads
  • Variable reads and writes
  • Commands
  • Polling logic
  • Additional automation behavior

5. Extensions

What Are Extensions?

Extensions are external software components that run outside the Flexxbotics runtime.


Common Characteristics

Extensions are typically:

  • Installed on:
    • Equipment controllers
    • PCs controlling equipment
  • Implemented as servers
  • Used to translate native equipment data into the Flexxbotics API

When Extensions Are Used

Extensions are commonly required when:

  • Native protocols are not externally exposed
  • Equipment communication is only available via:
    • OEM APIs
    • SDK-based software
    • Third-party developer tools
  • Highly specific functionality is needed, such as:
    • File manipulation
    • TCP clients
    • Custom data adapters

6. Device Assignment to Layouts

Machine Layouts

  • Machine layouts are defined in Flexx Control
  • Equipment placed in a layout can be assigned a device

Purpose

Device-to-layout assignment:

  • Enables visualization of device status
  • Links runtime devices to physical cell layouts
  • Is primarily used for monitoring and UI representation

7. Key Concept: Primary Device & Polling

Primary Device Concept

Only one device should be marked as the Primary Device.

The primary device:

  • Represents the main controller of a work cell
  • Drives status events
  • Determines overall work cell status

Work Cell Transformer

A Work Cell Transformer is a generic transformer use