-
Notifications
You must be signed in to change notification settings - Fork 30
Home
Welcome to the QiTech Control documentation. This wiki provides comprehensive information about the open-source industrial machine control framework built with Rust and React.
QiTech Control is a real-time industrial control software designed for EtherCAT-based automation systems. It features a Rust backend for deterministic control loops and a React/Electron frontend for machine operation and monitoring.

For New Users:
- Start with the Getting Started guide to set up your development environment
- Follow a Hardware Example tutorial for hands-on learning
- Understand the Architecture Overview to grasp system design
For Developers:
- Review Code Style Backend for Rust conventions
- Learn how to Add a Machine configuration
- Explore the REST API reference for integration
For Machine Operators:
- View the QiTech Machines catalog
- Check Troubleshooting for common issues

Understanding the system design, control loop implementation, and architectural patterns.
- Architecture Overview - System design and component interaction
- Control Loop - Real-time control loop implementation
- Threading - Threading model and concurrency
- Actors - Actor-based architecture patterns
EtherCAT protocol fundamentals, device integration, and hardware abstraction.
- EtherCAT Basics - Introduction to EtherCAT protocol
- Devices - Supported device catalog
- PDO (Process Data Objects) - PDO configuration and usage
- CoE (CAN over EtherCAT) - CoE protocol details
- IO Configuration - Input/Output setup and management
- Mitsubishi Inverter - Mitsubishi inverter integration
- Wiring Mitsubishi - Wiring diagrams and setup
Core system capabilities, APIs, and operational features.
- REST API - HTTP API reference
- Logging - Logging system and debugging
- Identification - Device identification system
- Troubleshooting - Common issues and solutions
Resources for developers working on or with QiTech Control.
- Getting Started - Development environment setup
- Adding a Machine - Creating new machine configurations
- Adding a minimal machine e.G. for WAGO 750-531 - Step by step instructions on how to use the boilerplate templates for adding a minimal machine
- Code Style Backend - Rust coding conventions
- Performance & Stability - Performance optimization guide
- Testing (Memtest) - Testing procedures
- Presets - Configuration presets
- Xtrem Protocol - Xtrem communication protocol
- Wago 750-671 & 750-672 - Wago Stepper Controllers
Minimal working examples for common EtherCAT devices.
- EL2004 - Digital output terminal (4-channel)
- EL3021 - Analog input terminal (1-channel)
- EL7031 Motor - Stepper motor control(1-channel motion interface)
- WAGO 750-455 - Analog input module (4-channel, incremental encoder)
- WAGO 750-402 - Digital input terminal (4-channel)
- WAGO 750-430 - Digital input terminal (8-channel)
- WAGO 750-460 - Analog input module (4-channel, Pt100 RTD)
- WAGO 750-1506 - Digital input/output terminal (8-channel each)
- WAGO 750-530 - Digital output module(8-channel)
- WAGO 750-501 - Digital output module(2-channel)
- WAGO 750-553 - Analog output module (4-channel, 0–20 mA)
- WAGO 750-671 & WAGO-750-672 - Stepper Controllers
- WAGO 750-652 - WAGO serial interface
- WAGO 750-430 + 750-530 - Digital I/O separate machine (8-ch input + 8-ch output)
Machine-specific configurations and documentation.
- Laser DRE - Laser DRE machine documentation
QiTech Control | GitHub | Video Demo | Open Source Framework for Industrial Control
- Getting Started
- Adding a Machine
- Adding a minimal machine e.G. 4CH DO
- Code Style
- Performance
- Testing
- Adding Presets to Machines
- NixOS
Beckhoff:
WAGO:
- 4 Digital In (750-402)
- 8 Digital In (750-430)
- 8 Digital In + 8 Digital Out (750-1506)
- 4 Analog In (750-455)
- 2 Digital Out (750-501)
- 8 Digital Out (750-530)
- Stepper (750-671 & 750-672)
- Power Supply (2789‐9052)
- Serial Interface (750-652)
- 4-channel Analog input module Pt100 RTD (750-460)
- 8 Digital In + 8 Digital Out (750-430 + 750-530)
Elrest:
WAGO: