2025-03-24 21:33:48 +01:00
2025-03-24 17:31:27 +01:00
2025-03-17 11:05:18 +01:00
2025-03-24 21:33:48 +01:00
2025-03-24 17:24:43 +01:00
2025-03-24 13:10:37 +01:00
2025-03-17 14:04:38 +01:00
2025-03-19 11:19:05 +01:00
2025-03-21 14:34:52 +01:00
2025-02-09 18:31:26 +01:00
2025-02-06 18:56:04 +01:00
2025-02-07 12:56:37 +01:00
2025-03-17 19:50:46 +01:00
2025-03-20 17:00:13 +01:00
2025-03-17 14:04:42 +01:00
2025-03-17 19:50:46 +01:00
2025-03-17 19:50:46 +01:00
2025-03-24 17:24:43 +01:00
2025-03-24 21:33:48 +01:00

QiTech Control

QiTech Control is an industrial control panel software for the next generation of QiTech recycling machines built on top of Beckhoff Automation hardware.

Repo Structure

Frontend

  • /electron: Frontend code for the control software built with React and Electron.

Backend

  • /server: Glue between Beckhoff and Electron. Implements machine logic.
  • /stepper-driver: Generic stepper driver for absolute, relative & speed movements with PID controllers.
  • /ethercat-hal: Hardware abstraction layer for Beckhoff (and possibly other EtherCat) devices and protocols.
  • /ethercat-hal-derive: Macros for ethercat-hal
  • /ethercrab: Fork of ethercrab for ad-hoc changes.

Operating System

  • /nixos: Custom Linux with realtime kernel & preconfigured for touchscreens.

Other

  • /docs: Documentation for the project.

Technology Choices

Dev Setup

Machines

Machine Type Version Release Date Description Change to Previous Version Vendor ID Machine ID Implemented Docs
Winder V1 ??? Winding Filaments & Similar - 1 (Qitech Industries GmbH) 1 Reserved -
Winder V2 2025 Winding Filaments & Similar Reengineered Traverse 1 (Qitech Industries GmbH) 2 In Progress
Extruder V1 ??? Single Screw Extruder - 1 (Qitech Industries GmbH) 3 Reserved -
Extruder V2 2025 Single Screw Extruder PT100 Thermometers, Optional Additional Heating Zone 4 1 (Qitech Industries GmbH) 4 Not Yet [
Waterway V1 2025 Filament Water Cooling - 1 (Qitech Industries GmbH) 5 Not Yet

More Docs

  • Architecture & Data Flow

    • Example Winder V2
  • Machine Implementation Guide

    • Link: How to create a Device
    • Link: How to create an Actor
    • Link: How to create a Machine
      • API (SocketIO + REST)
      • Creation/Validation Logic
        • Optional/Mandatory Devices
        • Validate Devices
      • Business Logic
    • Link: How to create Machine Abstraction (Like Traverse/Puller/...)
    • Forward act in winder.
  • Electron

    • Folder Structure
    • Routing with TanStack Router
    • Design with Tailwind & Shadcn
  • Interfacing with Electron/Server

    • SocketIO
      • Rooms & Caching
      • Joining leaving rooms
      • RoomId
      • Our rooms vs native socketIO rooms
      • Caching
        • Serverside Caching
        • Clientside Caching
      • Machine Room
      • Main Room
    • REST
      • Machine Mutations
      • Write Device Identification
  • Server

    • Control Loop Setup
      • Control Loop Thread
        • Realtime
      • Maindevice
      • Group
      • Extracting Device Identifications
      • Identifying Groups
      • Validating Machines
      • Run Control Loop
    • Control Loop
      • Ethercat TX/RX
      • Reading Inputs
      • Calling Actors
      • Writing Outputs
    • Machine/Device Identification
      • SubDevice Identity
      • Identification design choices
      • Machine/Device Identification Values
      • Device Identification with EEPROM
      • Grouping Devices
      • Validating Device Groups to Machines
      • How to: Identify a New Device
        • Find free EEPROM words
        • Get identity values and add them to pattern matching
    • Machines
      • When to create a new Machine?
      • Creating/Validating a Machine
        • Validation
        • Configuration
  • Ethercat HAL

    • Devices/PDO
    • CoE Theory
      • Parameters
      • PDO Assignment
    • PDO Theory
      • PDO Objects
      • PDO "Primitives"
        • Limit
      • Tx / Rx Meaning
      • Presets
      • Mapping
    • IO
    • How to: Full Device Implementation Guide
      • Create Port
      • implement IO Device Trait
      • Create IO
      • Create Tx/RxPDO
      • Create PDO Assignment
      • Create CoE
      • Implement ConfigurableDevice
  • Ethercat Basics

    • State Machine
    • Network Topology Packets
    • Master / Slave
    • Terms of Communication
      • SDO
      • PDO
      • Mailbox
      • CoE
      • Commands
    • EEPROM
  • Ethercat HAL

  • Ethercat Devices

    • Buscoupler
    • Digital Input
    • EL2000er
    • Digital Output
    • EL1000er
    • Analog Input
    • EL3000er
    • Temperature Input
  • PDO

  • Operating System

    • Why
    • How
S
Description
Next Generation Machine Interface
Readme
118 MiB
0 Stars 1 Watchers 0 Forks
Languages
Rust 62.3%
TypeScript 36.1%
Nix 0.9%
Shell 0.4%
CSS 0.2%