Skip to content

Repository files navigation

LinuxCNC Motor Control Testbed

A motor control testbed using the open-source LinuxCNC platform integrated with the Mesa Electronics 7i96S and 7I77 interface cards and the igus® dryve D1 motor controllers.

This system was used to develop and validate the control system for a large high-precision 3-axis gantry robot system.

License: CC BY-SA 4.0License: GNU FDL 1.3DOIDocumentation

LinuxCNC Motor Control Testbed Picture

testbed_video.webm

Key Features

  • Real-time Control: Precise real-time multi-axis motion using LinuxCNC with MESA interface cards and igus® dryve D1 motor controllers.
  • Dual Motor System: Stepper and brushless motors.
  • Closed Loop Control: High-precision encoder feedback for accurate positioning.
  • Safety Systems: Emergency stop and limit switches.
  • Visual Indicators: Custom LED status system.

Documentation

  • Technical Documentation: Sphinx documentation sources of the system documentation in docs/. The documentation has been prepared to be built in HTML and PDF formats. To build the documentation follow the instructions below:

    1. Prepare the environment:

      cd docs
      uv venv && uv sync &&source .venv/bin/activate
    2. Build the documentation:

      • HTML: make html

        The HTML documentation index file will be saved in docs/build/html/index.html.

      • PDF (requires a LaTeX installation with LuaLaTeX): make latexpdf

        The PDF file will be saved in docs/build/latex/linuxcnc_motor_control_testbed.pdf.

  • Electrical Schematics: KiCAD electrical schematics in schematics/.

Hardware Components

ComponentModelQuantityFunction
Control ComputerPC running LinuxCNC1Real-time motor coordination
Motor Controllersigus® dryve D12Individual motor control
Main InterfaceMESA 7I96S1Ethernet-LinuxCNC bridge. Stepper motor control. Limits detection
I/O ExpansionMESA 7I771Brushless motor control. Encoder inputs. Emergency stop detection and LED indicators
Stepper MotorSTEPPERONLINE 17HS24-2104-ME1K1Stepper motor with 1000 PPR magnetic encoder
Brushless MotorSTEPPERONLINE 42BLS40-24-01 + CUI Devices AMT102-0512-I5000-S1Brushless motor with 512 PPR optical encoder
Power SupplyAim-TTI EL302RD1Dual output (24V/5V)
Emergency StopPush-button with NO/NC contacts1System safety shutdown
Limit SwitchesPush-button switches2Position boundary detection
LED Indicators24 V panel mount LEDs3System state indication

System Architecture

Prototype System

Repository Structure

linuxcnc-testbed/
├── README.md # This file
├── assets/ # Pictures and videos
├── docs/ # Technical Documentation
├── linuxcnc/ # LinuxCNC configurations
├── schematics/ # Wiring diagrams
├── scripts/ # Example control scripts
└── gcode/ # G-code example

License

General License (unless otherwise specified)

Creative Commons License badge

LinuxCNC Motor Control Testbed © 2025 by Tomás Domínguez Bolaño, Valentín Barral Vales, Carlos José Escudero Cascón, and José Antonio García Naya (CITIC Research Center, University of A Coruña, Spain) is licensed under Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0). To view a copy of this license, see the LICENSE-CC file or visit https://creativecommons.org/licenses/by-sa/4.0/.

Documentation License (docs/)

Copyright © 2000-2022 LinuxCNC.org
Copyright © 2025 Tomás Domínguez Bolaño, Valentín Barral Vales, Carlos José Escudero Cascón, and José Antonio García Naya.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

Acknowledgements

This work has been supported by grant PID2022-137099NB-C42 (MADDIE) and by project TED2021-130240B-I00 (IVRY) funded by MCIN/AEI/10.13039/501100011033 and the European Union NextGenerationEU/PRTR.

Acknowledgements logos

About

A motor control testbed using the open-source LinuxCNC platform integrated with the Mesa Electronics 7i96S and 7I77 interface cards and the Igus dryve D1 motor controllers.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages