<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.cpr-robots.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=OLT</id>
	<title>Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.cpr-robots.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=OLT"/>
	<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php/Special:Contributions/OLT"/>
	<updated>2026-08-08T13:54:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Vision_App&amp;diff=1089</id>
		<title>Vision App</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Vision_App&amp;diff=1089"/>
		<updated>2026-08-05T11:30:38Z</updated>

		<summary type="html">&lt;p&gt;OLT: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:VisionJars.png|thumb|250px]]&lt;br /&gt;
&lt;br /&gt;
The Vision App is created for 2D Object Detection. The app uses a standard USB camera which can be connected to your robot. [https://wiki.cpr-robots.com/images/8/88/VisionApp_Examples_EN.pdf This] &lt;br /&gt;
document describes what the Vision App can be used for and what objects can be detected.&lt;br /&gt;
&lt;br /&gt;
= Downloads =&lt;br /&gt;
Download calibration sheet: [https://wiki.cpr-robots.com/images/c/c3/CalibrationSheetV3.pdf CalibrationSheetV3.pdf]&lt;br /&gt;
&lt;br /&gt;
Download user manual: [https://wiki.cpr-robots.com/images/c/cd/VisionApp_Manual_EN.pdf UserManual_VisionApp_EN.pdf]&lt;br /&gt;
&lt;br /&gt;
Download App (free version): [https://wiki.cpr-robots.com/images/1/11/Vision2d.zip Vision2D.zip]&lt;br /&gt;
&lt;br /&gt;
Download App (pro version): [https://downloads.cpr-robots.com/Software/igusRobotControl/Apps/VisionApp/VisionAppPro_V1.0.zip VisionAppPro.zip]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: You will need [[License_Request | License]] in order to run the pro-version, which you can get via [https://rbtx.de/de-DE/components/software/vision-app-pro-for-igus-robot-control-irc RBTX]. &lt;br /&gt;
Pro-features include: &lt;br /&gt;
* Detection of different objects&lt;br /&gt;
* Size determination&lt;br /&gt;
&lt;br /&gt;
Download STL of measuring tips: [https://wiki.cpr-robots.com/images/6/6f/Messspitzen.zip Delta_and_Rebel.STL] &lt;br /&gt;
&lt;br /&gt;
What has changed: [https://wiki.cpr-robots.com/images/1/1c/ChangeLogVisionApp.txt ChangeLog]&lt;br /&gt;
&lt;br /&gt;
= Tutorials =&lt;br /&gt;
There are three Video Tutorials how to use the Vision App:&lt;br /&gt;
* Calibration: [https://youtu.be/fpbPiadYieQ?feature=shared English] / [https://www.youtube.com/watch?v=RV6W3cHTwMs German]&lt;br /&gt;
* Settings for Object Detection: [https://youtu.be/Nw9391sffrk?feature=shared English] / [https://www.youtube.com/watch?v=L-CbLLiDD8E German]&lt;br /&gt;
* Progamming: [https://youtu.be/llvEa73kQYw?feature=shared English] / [https://www.youtube.com/watch?v=CjtXqH9r4zI German] &lt;br /&gt;
The .xml File of the example programm you can download [https://wiki.cpr-robots.com/images/1/11/Tutorial.zip here]&lt;br /&gt;
&lt;br /&gt;
In the video and for tests we used the 	ELP-USB4K03-SFV (5-50 mm). You can use all USB Cameras (Type A oder 3.0), which do not have an auto focus or wide angle.&lt;br /&gt;
&lt;br /&gt;
[[Category:Apps]]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=IRC_Operator_HMI&amp;diff=1088</id>
		<title>IRC Operator HMI</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=IRC_Operator_HMI&amp;diff=1088"/>
		<updated>2026-08-05T11:27:41Z</updated>

		<summary type="html">&lt;p&gt;OLT: /* Download */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:OperatorHMI_Zelle.png|image|right|200px|link=]]&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;iRC Operator HMI&#039;&#039;&#039; app is a clear and user-friendly interface for HMIs that enables simple operation of the robot system.&lt;br /&gt;
It is the middle ground between limited control via button panels and complex control via iRC software.&lt;br /&gt;
&lt;br /&gt;
The interface runs as a standalone web service directly on the embedded controller and can therefore be accessed using any standard web browser via an HMI, PC, tablet, or smartphone.&lt;br /&gt;
&lt;br /&gt;
By separating it from the iRC PC software, a two-level operating concept is created, ensuring that each user has access to exactly the functionalities they need.&lt;br /&gt;
&lt;br /&gt;
= Features =&lt;br /&gt;
[[File:IRC_Operator_HMI.png|thumb|350px|link=]]&lt;br /&gt;
* Clear and easy operation of the robot&lt;br /&gt;
* Complete startup sequence (activation, referencing, program start)&lt;br /&gt;
* Program selection&lt;br /&gt;
* Protection against unauthorized program modifications&lt;br /&gt;
* Speed adjustment&lt;br /&gt;
* Overview of the robot status&lt;br /&gt;
* Comprehensive program execution statistics&lt;br /&gt;
* Dynamic error analysis for troubleshooting&lt;br /&gt;
&lt;br /&gt;
= Download =&lt;br /&gt;
Manual: [https://downloads.cpr-robots.com/Documentation/EN/Software/iRC/Apps/Operator_HMI/iRC_Operator_HMI_Manual.pdf iRC_Operator_HMI_Manual.pdf]&lt;br /&gt;
&lt;br /&gt;
App Download: [https://downloads.cpr-robots.com/Software/igusRobotControl/Apps/OperatorHMI/OperatorHMI.zip OperatorHMI.zip]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: You will need [[License_Request | License]] in order to run the app for more than 30 minutes (testing period). You can get one via [https://rbtx.de/de-DE/components/software/operator-hmi-for-igus-robot-control-simple-user-interface-for-robots RBTX]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Driver_Error&amp;diff=1081</id>
		<title>Driver Error</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Driver_Error&amp;diff=1081"/>
		<updated>2026-07-24T08:04:56Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The driver error is a hardware [[Error Codes|error code]] issued by axis control modules if an error occurs in the motor driver logic. Oftentimes this hints to a blocked or overloaded axis. This error should only occur for BLDC axes.&lt;br /&gt;
&lt;br /&gt;
Check the robot control log file for [[Extended Error Information|extended error information]], particularly one of the following codes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Message !! Explanation&lt;br /&gt;
|-&lt;br /&gt;
| No free rotation || Axis could not rotate during alignment; Check for a blocked axis, resistance, misaligned linear rails, heavy load, motor current settings,...&lt;br /&gt;
|-&lt;br /&gt;
| Collision during free rotation check || See &amp;quot;No free rotation&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Velocity error || Axis was commanded to move faster than possible by the motor controller; Check the axis configuration, especially the [[Gear Scale|gear scale]] value.&lt;br /&gt;
|-&lt;br /&gt;
| Driver low align || Too many failed attempts while aligning; see &amp;quot;No free rotation&amp;quot;, check e-stop, fuses, wiring,...&lt;br /&gt;
|-&lt;br /&gt;
| Alignment failed || Check e-stop, missing current, low current settings, blocked axis, resistance, misaligned linear rails,...&lt;br /&gt;
|-&lt;br /&gt;
| Alignment failed [...] due to missing current or current sensors not init&#039;d || Try re-enabling the motors; see &amp;quot;Alignment failed&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| unknown error message || Any error that is not understood by the software yet, this may occur with new features. [[Support Routes|Contact support]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Common Causes =&lt;br /&gt;
&lt;br /&gt;
For BLDC gantries the most common cause is an axis that can not turn because it is overloaded. Usually because linear rails are not aligned correctly, the carriage can not move easily or the tool/object is too heavy. It can also be caused by a motor brake that does not release (check its amp configuration, wiring and whether voltage is applied at the brake output connector at the motor module or the brake relay.&lt;br /&gt;
&lt;br /&gt;
For other BLDC axes, e.g. the igus [[ReBeL]] similar issues can occur. Check whether the axis is blocked or overloaded; a mechanical defect can cause the driver error as well.&lt;br /&gt;
&lt;br /&gt;
[[Category:Support]][[Category:TinyCtrl]][[Category:Troubleshooting]]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Apps_for_the_Robot_Control&amp;diff=1080</id>
		<title>Apps for the Robot Control</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Apps_for_the_Robot_Control&amp;diff=1080"/>
		<updated>2026-07-24T08:03:01Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The app interface (since [[IgusRobotControl-Release14-EN|iRC/CPRog V14]]) allows custom extensions for the robot control. Apps can access and change the robot&#039;s state, add functions to the program editor and add user interface components for interaction and configuration.&lt;br /&gt;
&lt;br /&gt;
The app interface is based on GRPC which supports many different programming languages. We have prepared sample APIs for C++ and Python with a minimal sample app that can be used as a base for new apps. See section Minimal App below.&lt;br /&gt;
&lt;br /&gt;
Please note that the app interface still is quite new and does not provide all features like [[CRI Ethernet Interface|CRI]] or [[Modbus Server|Modbus]]. We will extend it in near future.&lt;br /&gt;
&lt;br /&gt;
You made a cool app yourself and want to share it with the world? &lt;br /&gt;
Please [mailto:support@cpr-robots.com contact] us and we will make it accessible here!&lt;br /&gt;
&lt;br /&gt;
= Installing Apps =&lt;br /&gt;
Apps come as ZIP packages. To install an app connect iRC/CPRog to the robot, then click &amp;quot;File&amp;quot; → &amp;quot;Configure Interfaces&amp;quot; → &amp;quot;Apps&amp;quot; → &amp;quot;Install&amp;quot; and select the ZIP package.&lt;br /&gt;
&lt;br /&gt;
Note that apps may support being installed to both embedded control and simulation on PC or only one of them. This depends on whether the creator of the app has included binaries for both systems.&lt;br /&gt;
&lt;br /&gt;
= Minimal app examples and source code =&lt;br /&gt;
As a starting point to develop your own robot control apps you can use our Minimal App (available for C++ and Python). These include a simplified API, documentation and examples. The examples show how to read and write variables, how extend the robot program with new functions and how to create a user interface that integrates into iRC/CPRog.&lt;br /&gt;
&lt;br /&gt;
Download the source code and find the documentation [https://github.com/CommonplaceRobotics/RobotControlApps on GitHub].&lt;br /&gt;
The interface will be extended with new functions in future.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= App Selection =&lt;br /&gt;
&lt;br /&gt;
== Math Tools ==&lt;br /&gt;
&lt;br /&gt;
[[File:MathAppFunctions.png|thumb|200px|link=Math Tools App]]&lt;br /&gt;
&lt;br /&gt;
[[Math Tools App|Math Tools]] extends the igus Robot Control with occasionally needed program functions, mainly around kinematics, math and timing. The app is open source and python-based so you can easily add your own functions as needed.&lt;br /&gt;
&lt;br /&gt;
:[[Math Tools App]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IRC Operator HMI ==&lt;br /&gt;
&lt;br /&gt;
[[File:IRC_Operator_HMI.png|thumb|300px|link=IRC Operator HMI]]&lt;br /&gt;
&lt;br /&gt;
The [[iRC Operator HMI]] app is a clear and user-friendly interface for HMIs that enables simple operation of the robot system.&lt;br /&gt;
It is the middle ground between limited control via button panels and complex control via iRC software.&lt;br /&gt;
&lt;br /&gt;
:[[IRC Operator HMI]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vision App ==&lt;br /&gt;
&lt;br /&gt;
[[File:VisionJars.png|thumb|200px|link=Vision App]]&lt;br /&gt;
&lt;br /&gt;
The Vision App is created for 2D Object Detection. The app uses a standard USB camera which can be connected to your robot. [https://wiki.cpr-robots.com/images/8/88/VisionApp_Examples_EN.pdf This] &lt;br /&gt;
document describes what the Vision App can be used for and what objects can be detected. &lt;br /&gt;
&lt;br /&gt;
:[[Vision App]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Position Logger ==&lt;br /&gt;
The PositionLogger app adds basic functions for logging the robot&#039;s position to a CSV file. This is intended for testing and as an extendable example - with some Python skills you can log any info that is relevant to you.&lt;br /&gt;
&lt;br /&gt;
:[[Position Logger App]]&lt;br /&gt;
&lt;br /&gt;
== Socket App ==&lt;br /&gt;
&lt;br /&gt;
[[File:SocketAppConfig.png|thumb|200px|link=Socket App]]&lt;br /&gt;
&lt;br /&gt;
The Socket App extends the robot control with a network interface for receiving and sending text-based messages.&lt;br /&gt;
It can be used to let the robot exchange data with external devices like:&lt;br /&gt;
* Other Robots&lt;br /&gt;
* Object recognition cameras&lt;br /&gt;
* Control Boxes&lt;br /&gt;
* And many more!&lt;br /&gt;
&lt;br /&gt;
:[[Socket App]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Apps]]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Vision_App&amp;diff=1079</id>
		<title>Vision App</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Vision_App&amp;diff=1079"/>
		<updated>2026-07-24T07:55:00Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:VisionJars.png|thumb|250px]]&lt;br /&gt;
&lt;br /&gt;
The Vision App is created for 2D Object Detection. The app uses a standard USB camera which can be connected to your robot. [https://wiki.cpr-robots.com/images/8/88/VisionApp_Examples_EN.pdf This] &lt;br /&gt;
document describes what the Vision App can be used for and what objects can be detected.&lt;br /&gt;
&lt;br /&gt;
= Downloads =&lt;br /&gt;
Download calibration sheet: [https://wiki.cpr-robots.com/images/c/c3/CalibrationSheetV3.pdf CalibrationSheetV3.pdf]&lt;br /&gt;
&lt;br /&gt;
Download user manual: [https://wiki.cpr-robots.com/images/c/cd/VisionApp_Manual_EN.pdf UserManual_VisionApp_EN.pdf]&lt;br /&gt;
&lt;br /&gt;
Download App (free version): [https://wiki.cpr-robots.com/images/1/11/Vision2d.zip Vision2D.zip]&lt;br /&gt;
&lt;br /&gt;
Download App (pro version): [https://downloads.cpr-robots.com/Software/igusRobotControl/Apps/VisionApp/VisionAppPro_V1.0.zip VisionAppPro.zip]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: You will need [[License_Request | License]] in order to run the pro-version, which you can get via [https://rbtx.de/de-DE/components/software RBTX]. &lt;br /&gt;
Pro-features include: &lt;br /&gt;
* Detection of different objects&lt;br /&gt;
* Size determination&lt;br /&gt;
&lt;br /&gt;
Download STL of measuring tips: [https://wiki.cpr-robots.com/images/6/6f/Messspitzen.zip Delta_and_Rebel.STL] &lt;br /&gt;
&lt;br /&gt;
What has changed: [https://wiki.cpr-robots.com/images/1/1c/ChangeLogVisionApp.txt ChangeLog]&lt;br /&gt;
&lt;br /&gt;
= Tutorials =&lt;br /&gt;
There are three Video Tutorials how to use the Vision App:&lt;br /&gt;
* Calibration: [https://youtu.be/fpbPiadYieQ?feature=shared English] / [https://www.youtube.com/watch?v=RV6W3cHTwMs German]&lt;br /&gt;
* Settings for Object Detection: [https://youtu.be/Nw9391sffrk?feature=shared English] / [https://www.youtube.com/watch?v=L-CbLLiDD8E German]&lt;br /&gt;
* Progamming: [https://youtu.be/llvEa73kQYw?feature=shared English] / [https://www.youtube.com/watch?v=CjtXqH9r4zI German] &lt;br /&gt;
The .xml File of the example programm you can download [https://wiki.cpr-robots.com/images/1/11/Tutorial.zip here]&lt;br /&gt;
&lt;br /&gt;
In the video and for tests we used the 	ELP-USB4K03-SFV (5-50 mm). You can use all USB Cameras (Type A oder 3.0), which do not have an auto focus or wide angle.&lt;br /&gt;
&lt;br /&gt;
[[Category:Apps]]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Apps_for_the_Robot_Control&amp;diff=1078</id>
		<title>Apps for the Robot Control</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Apps_for_the_Robot_Control&amp;diff=1078"/>
		<updated>2026-07-24T07:42:58Z</updated>

		<summary type="html">&lt;p&gt;OLT: /* App Selection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The app interface (since [[IgusRobotControl-Release14-EN|iRC/CPRog V14]]) allows custom extensions for the robot control. Apps can access and change the robot&#039;s state, add functions to the program editor and add user interface components for interaction and configuration.&lt;br /&gt;
&lt;br /&gt;
The app interface is based on GRPC which supports many different programming languages. We have prepared sample APIs for C++ and Python with a minimal sample app that can be used as a base for new apps. See section Minimal App below.&lt;br /&gt;
&lt;br /&gt;
Please note that the app interface still is quite new and does not provide all features like [[CRI Ethernet Interface|CRI]] or [[Modbus Server|Modbus]]. We will extend it in near future.&lt;br /&gt;
&lt;br /&gt;
You made a cool app yourself and want to share it with the world? &lt;br /&gt;
Please [mailto:support@cpr-robots.com contact] us and we will make it accessible here!&lt;br /&gt;
&lt;br /&gt;
= Installing Apps =&lt;br /&gt;
Apps come as ZIP packages. To install an app connect iRC/CPRog to the robot, then click &amp;quot;File&amp;quot; → &amp;quot;Configure Interfaces&amp;quot; → &amp;quot;Apps&amp;quot; → &amp;quot;Install&amp;quot; and select the ZIP package.&lt;br /&gt;
&lt;br /&gt;
Note that apps may support being installed to both embedded control and simulation on PC or only one of them. This depends on whether the creator of the app has included binaries for both systems.&lt;br /&gt;
&lt;br /&gt;
= Minimal app examples and source code =&lt;br /&gt;
As a starting point to develop your own robot control apps you can use our Minimal App (available for C++ and Python). These include a simplified API, documentation and examples. The examples show how to read and write variables, how extend the robot program with new functions and how to create a user interface that integrates into iRC/CPRog.&lt;br /&gt;
&lt;br /&gt;
Download the source code and find the documentation [https://github.com/CommonplaceRobotics/RobotControlApps on GitHub].&lt;br /&gt;
The interface will be extended with new functions in future.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= App Selection =&lt;br /&gt;
&lt;br /&gt;
== Math Tools ==&lt;br /&gt;
&lt;br /&gt;
[[File:MathAppFunctions.png|thumb|200px|link=Math Tools App]]&lt;br /&gt;
&lt;br /&gt;
[[Math Tools App|Math Tools]] extends the igus Robot Control with occasionally needed program functions, mainly around kinematics, math and timing. The app is open source and python-based so you can easily add your own functions as needed.&lt;br /&gt;
&lt;br /&gt;
:[[Math Tools App]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IRC Operator HMI ==&lt;br /&gt;
&lt;br /&gt;
[[File:IRC_Operator_HMI.png|thumb|300px|link=IRC Operator HMI]]&lt;br /&gt;
&lt;br /&gt;
The [[iRC Operator HMI]] app is a clear and user-friendly interface for HMIs that enables simple operation of the robot system.&lt;br /&gt;
It is the middle ground between limited control via button panels and complex control via iRC software.&lt;br /&gt;
&lt;br /&gt;
:[[IRC Operator HMI]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Position Logger ==&lt;br /&gt;
The PositionLogger app adds basic functions for logging the robot&#039;s position to a CSV file. This is intended for testing and as an extendable example - with some Python skills you can log any info that is relevant to you.&lt;br /&gt;
&lt;br /&gt;
:[[Position Logger App]]&lt;br /&gt;
&lt;br /&gt;
== Socket App ==&lt;br /&gt;
&lt;br /&gt;
[[File:SocketAppConfig.png|thumb|200px|link=Socket App]]&lt;br /&gt;
&lt;br /&gt;
The Socket App extends the robot control with a network interface for receiving and sending text-based messages.&lt;br /&gt;
It can be used to let the robot exchange data with external devices like:&lt;br /&gt;
* Other Robots&lt;br /&gt;
* Object recognition cameras&lt;br /&gt;
* Control Boxes&lt;br /&gt;
* And many more!&lt;br /&gt;
&lt;br /&gt;
:[[Socket App]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vision App ==&lt;br /&gt;
&lt;br /&gt;
[[File:VisionJars.png|thumb|200px|link=Vision App]]&lt;br /&gt;
&lt;br /&gt;
The Vision App is created for 2D Object Detection. The app uses a standard USB camera which can be connected to your robot. [https://wiki.cpr-robots.com/images/8/88/VisionApp_Examples_EN.pdf This] &lt;br /&gt;
document describes what the Vision App can be used for and what objects can be detected. &lt;br /&gt;
&lt;br /&gt;
:[[Vision App]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Apps]]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=IRC_Operator_HMI&amp;diff=1077</id>
		<title>IRC Operator HMI</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=IRC_Operator_HMI&amp;diff=1077"/>
		<updated>2026-07-24T07:39:34Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:OperatorHMI_Zelle.png|image|right|200px|link=]]&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;iRC Operator HMI&#039;&#039;&#039; app is a clear and user-friendly interface for HMIs that enables simple operation of the robot system.&lt;br /&gt;
It is the middle ground between limited control via button panels and complex control via iRC software.&lt;br /&gt;
&lt;br /&gt;
The interface runs as a standalone web service directly on the embedded controller and can therefore be accessed using any standard web browser via an HMI, PC, tablet, or smartphone.&lt;br /&gt;
&lt;br /&gt;
By separating it from the iRC PC software, a two-level operating concept is created, ensuring that each user has access to exactly the functionalities they need.&lt;br /&gt;
&lt;br /&gt;
= Features =&lt;br /&gt;
[[File:IRC_Operator_HMI.png|thumb|350px|link=]]&lt;br /&gt;
* Clear and easy operation of the robot&lt;br /&gt;
* Complete startup sequence (activation, referencing, program start)&lt;br /&gt;
* Program selection&lt;br /&gt;
* Protection against unauthorized program modifications&lt;br /&gt;
* Speed adjustment&lt;br /&gt;
* Overview of the robot status&lt;br /&gt;
* Comprehensive program execution statistics&lt;br /&gt;
* Dynamic error analysis for troubleshooting&lt;br /&gt;
&lt;br /&gt;
= Download =&lt;br /&gt;
Manual: [https://downloads.cpr-robots.com/Documentation/EN/Software/iRC/Apps/Operator_HMI/iRC_Operator_HMI_Manual.pdf iRC_Operator_HMI_Manual.pdf]&lt;br /&gt;
&lt;br /&gt;
App Download: [https://downloads.cpr-robots.com/Software/igusRobotControl/Apps/OperatorHMI/OperatorHMI.zip OperatorHMI.zip]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: You will need [[License_Request | License]] in order to run the app for more than 30 minutes (testing period). You can get one via [https://rbtx.de/de-DE/components/software RBTX]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=IRC_Operator_HMI&amp;diff=1076</id>
		<title>IRC Operator HMI</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=IRC_Operator_HMI&amp;diff=1076"/>
		<updated>2026-07-24T07:39:03Z</updated>

		<summary type="html">&lt;p&gt;OLT: /* Download */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:OperatorHMI_Zelle.png|image|right|200px|link=]]&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;iRC Operator HMI&#039;&#039;&#039; app is a clear and user-friendly interface for HMIs that enables simple operation of the robot system.&lt;br /&gt;
It is the middle ground between limited control via button panels and complex control via iRC software.&lt;br /&gt;
&lt;br /&gt;
The interface runs as a standalone web service directly on the embedded controller and can therefore be accessed using any standard web browser via an HMI, PC, tablet, or smartphone.&lt;br /&gt;
&lt;br /&gt;
By separating it from the iRC PC software, a two-level operating concept is created, ensuring that each user has access to exactly the functionalities they need.&lt;br /&gt;
&lt;br /&gt;
= Features =&lt;br /&gt;
[[File:IRC_Operator_HMI.png|thumb|350px|link=]]&lt;br /&gt;
* Clear and easy operation of the robot&lt;br /&gt;
* Complete startup sequence (activation, referencing, program start)&lt;br /&gt;
* Program selection&lt;br /&gt;
* Protection against unauthorized program modifications&lt;br /&gt;
* Speed adjustment&lt;br /&gt;
* Overview of the robot status&lt;br /&gt;
* Comprehensive program execution statistics&lt;br /&gt;
* Dynamic error analysis for troubleshooting&lt;br /&gt;
&lt;br /&gt;
= Download =&lt;br /&gt;
Manual: [https://downloads.cpr-robots.com/Documentation/EN/Software/iRC/Apps/Operator_HMI/iRC_Operator_HMI_Manual.pdf iRC_Operator_HMI_Manual.pdf]&lt;br /&gt;
&lt;br /&gt;
App Download: [downloads.cpr-robots.com/Software/igusRobotControl/Apps/OperatorHMI/OperatorHMI.zip OperatorHMI.zip]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: You will need [[License_Request | License]] in order to run the app for more than 30 minutes (testing period). You can get one via [https://rbtx.de/de-DE/components/software RBTX]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Firmware_Parameter_Configuration&amp;diff=1075</id>
		<title>Firmware Parameter Configuration</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Firmware_Parameter_Configuration&amp;diff=1075"/>
		<updated>2026-07-03T09:42:36Z</updated>

		<summary type="html">&lt;p&gt;OLT: /* Upload Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;While most robot specific settings are stored in the configuration files in CPRog/iRC and on the embedded control axis specific settings are stored in the axis control modules themselves. This includes parameters for motion, referencing and motor current. This article explains these parameters and how to access them.&lt;br /&gt;
&lt;br /&gt;
This article applies to all robots with modular control, robolink DCI and ReBeL joints. It does not apply to the Mover robots.&lt;br /&gt;
&lt;br /&gt;
= General Procedure =&lt;br /&gt;
* Load the firmware parameters from the axis modules&lt;br /&gt;
* Change values using a basic text editor&lt;br /&gt;
* Upload the file to the modules&lt;br /&gt;
* Restart the robot&lt;br /&gt;
&lt;br /&gt;
[[File:FirmwareParameterConfiguration.png | thumb | 400px | link=]]&lt;br /&gt;
Since &#039;&#039;&#039;iRC version 15.0.0&#039;&#039;&#039; you can change the firmware parameters directly in software. Simply go to &amp;quot;&#039;&#039;&#039;File -&amp;gt; Firmware Configuration&#039;&#039;&#039;&amp;quot; and &amp;quot;&#039;&#039;&#039;Load parameters from axes&#039;&#039;&#039;&amp;quot;. Change the values and upload them back to the modules via &amp;quot;&#039;&#039;&#039;Write parameters to axes&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Download Configuration ==&lt;br /&gt;
&lt;br /&gt;
* Open CPRog/iRC&lt;br /&gt;
* Connect to the robot via Ethernet or a USB-CAN-Adapter&lt;br /&gt;
* Check if all green LEDs on top of &#039;&#039;&#039;all&#039;&#039;&#039; motor modules are blinking. If a module is not blinking, it might not be configured correctly. Did you save the project and restart the hardware?&lt;br /&gt;
* Click &amp;quot;File&amp;quot; at the top of CPRog/iRC to access the backstage menu&lt;br /&gt;
* V14 and older:&lt;br /&gt;
** Click &amp;quot;Get Amp configuration&amp;quot; (see the image below)&lt;br /&gt;
* V15 and newer:&lt;br /&gt;
** Go to &amp;quot;Configuration Files&amp;quot;, scroll down to &amp;quot;Firmware Parameters&amp;quot; and click &amp;quot;Load from robot...&amp;quot;&lt;br /&gt;
* Now a parameter file is written in the Data\Backup directory in the CPRog/iRC installation directory (e.g. C:\CPRog\Data\Backup or C:\iRC-igusRobotControl\Data\Backup)&lt;br /&gt;
&lt;br /&gt;
== Upload Configuration ==&lt;br /&gt;
&lt;br /&gt;
* Change the file according to your requirements using a basic text editor like Notepad or Notepad++ (see section Parameter File below)&lt;br /&gt;
* V14 and older:&lt;br /&gt;
** Click &amp;quot;Set Amp configuration&amp;quot;&lt;br /&gt;
* V15 and newer:&lt;br /&gt;
** Go to &amp;quot;Configuration Files&amp;quot;, scroll down to &amp;quot;Firmware Parameters&amp;quot; and click &amp;quot;Write to robot...&amp;quot;&lt;br /&gt;
* Choose the updated .dat file&lt;br /&gt;
* Wait until all parameters are written, approx 20s. Another backup of the previous values is also created.&lt;br /&gt;
* For some parameter, e.g. the encoder direction, the control needs a cold restart&lt;br /&gt;
* Test if the changes result in a better performance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
[[File:CPRogAmpConfig.JPG|400px|left]] [[File:ConfigurationFilesFW.png|500px|right]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Verification of Joint Operation ==&lt;br /&gt;
Now the correct operation of the joints needs to be verified.&lt;br /&gt;
* Be ready to press the &#039;&#039;&#039;emergency stop&#039;&#039;&#039; button. Changing parameters can result in unexpected motion, especially when setting up an unknown axis.&lt;br /&gt;
* Once the controller has booted up, the motor module LEDs are blinking green, &#039;&#039;&#039;connect&#039;&#039;&#039;, &#039;&#039;&#039;reset&#039;&#039;&#039; and &#039;&#039;&#039;enable&#039;&#039;&#039; the robot.&lt;br /&gt;
* Try to move the joint by clicking on the buttons in the jog section of CPRog/iRC.&lt;br /&gt;
* If the joint moves correctly check whether it references. Click &#039;&#039;&#039;Reference&#039;&#039;&#039;, then &#039;&#039;&#039;Reset&#039;&#039;&#039;, &#039;&#039;&#039;Enable&#039;&#039;&#039;, &#039;&#039;&#039;Reference axis&#039;&#039;&#039;. Watch for collisions and use the emergency stop if necessary - the referencing motion might not stop if not set up correctly. If the joint shows up as &amp;quot;referenced&amp;quot; the referencing works correctly. The position lag error is the expected state, reset it by clicking &#039;&#039;&#039;Reset&#039;&#039;&#039; and &#039;&#039;&#039;Enable&#039;&#039;&#039;.&lt;br /&gt;
* Next set up a program that moves the axis over 30-60min. Observe the module temperature in CPRog/iRC and the motor temperature (there are no sensors in the motor itself). Increase the motor current, if the axis is struggling to move or reduce the motor current if the motor or motor module is getting hot.&lt;br /&gt;
&lt;br /&gt;
= Parameter File =&lt;br /&gt;
&lt;br /&gt;
The parameter files contain a set of parameter for each joint of the robot. &amp;quot;Joint0&amp;quot; is the set for the first axis, &amp;quot;Joint1&amp;quot; for the second etc. The parameter &amp;quot;ID&amp;quot; is the CAN ID in decimal format as selected at switch/jumper/etc at the module.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Joint0 ID=&amp;quot;16&amp;quot; Version=&amp;quot;Product 0x42 FW 0x02 0x10&amp;quot;...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Currently there are two parameter formats: V1 and V2. V2 is used by newer BLDC axis controllers (e.g. ReBeL joints). The parameter format is preselected by a configuration parameter.&lt;br /&gt;
&lt;br /&gt;
== Parameter V1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Parameter set for Commonplace Robotics robotics control  /--&amp;gt;&lt;br /&gt;
&amp;lt;!-- Target Robot: igus robolink                              /--&amp;gt;&lt;br /&gt;
&amp;lt;!-- support@cpr-robots.com                                   /--&amp;gt;&lt;br /&gt;
&amp;lt;AmpParameter&amp;gt;&lt;br /&gt;
    &amp;lt;Configuration ModuleType=&amp;quot;RailStepperV02&amp;quot; NrOfJoints=&amp;quot;3&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Joint0 ID=&amp;quot;16&amp;quot; Version=&amp;quot;Product 0x42 FW 0x02 0x10&amp;quot;&lt;br /&gt;
         ComTimeOut=&amp;quot;2000&amp;quot; MaxCurrent=&amp;quot;200&amp;quot; MaxLag=&amp;quot;5000&amp;quot; EncoderErrorDetection=&amp;quot;0&amp;quot; PosP=&amp;quot;1.000&amp;quot; PosI=&amp;quot;0.0000&amp;quot; PosD=&amp;quot;0.000&amp;quot; PosAWU=&amp;quot;30&amp;quot;&lt;br /&gt;
         Encoder=&amp;quot;True&amp;quot; SwapEncoderDirection=&amp;quot;False&amp;quot; EndSwitchRising=&amp;quot;True&amp;quot; StopOnEndSwitch=&amp;quot;False&amp;quot; UseIndexAsRef=&amp;quot;False&amp;quot;&lt;br /&gt;
         RefStraight=&amp;quot;False&amp;quot; RefSinus=&amp;quot;False&amp;quot; RefHalf=&amp;quot;True&amp;quot; SinusRefTics=&amp;quot;2000&amp;quot; SinusRefMaxCycles=&amp;quot;6&amp;quot;&lt;br /&gt;
         Offset=&amp;quot;0&amp;quot; RefSpeed=&amp;quot;50&amp;quot; RefSpeedSlow=&amp;quot;10&amp;quot; RefFromBothSides=&amp;quot;True&amp;quot;&lt;br /&gt;
         SGThreshold=&amp;quot;2&amp;quot; CSLoad=&amp;quot;18&amp;quot; CSStart=&amp;quot;18&amp;quot; CSIdle=&amp;quot;6&amp;quot; CSRef=&amp;quot;15&amp;quot; StartArea=&amp;quot;200&amp;quot;&lt;br /&gt;
         MinSupplyVoltage=&amp;quot;500&amp;quot; MaxTemperature=&amp;quot;500&amp;quot; Microstepping=&amp;quot;0&amp;quot;&lt;br /&gt;
        /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Joint1 ID=&amp;quot;32&amp;quot; Version=&amp;quot;Product 0x42 FW 0x02 0x10&amp;quot;&lt;br /&gt;
         ComTimeOut=&amp;quot;2000&amp;quot; MaxCurrent=&amp;quot;200&amp;quot; MaxLag=&amp;quot;5000&amp;quot; EncoderErrorDetection=&amp;quot;0&amp;quot; PosP=&amp;quot;1.000&amp;quot; PosI=&amp;quot;0.0000&amp;quot; PosD=&amp;quot;0.000&amp;quot; PosAWU=&amp;quot;30&amp;quot;&lt;br /&gt;
         Encoder=&amp;quot;True&amp;quot; SwapEncoderDirection=&amp;quot;False&amp;quot; EndSwitchRising=&amp;quot;True&amp;quot; StopOnEndSwitch=&amp;quot;False&amp;quot; UseIndexAsRef=&amp;quot;False&amp;quot;&lt;br /&gt;
         RefStraight=&amp;quot;False&amp;quot; RefSinus=&amp;quot;False&amp;quot; RefHalf=&amp;quot;True&amp;quot; SinusRefTics=&amp;quot;2000&amp;quot; SinusRefMaxCycles=&amp;quot;6&amp;quot;&lt;br /&gt;
         Offset=&amp;quot;891&amp;quot; RefSpeed=&amp;quot;-50&amp;quot; RefSpeedSlow=&amp;quot;-10&amp;quot; RefFromBothSides=&amp;quot;True&amp;quot;&lt;br /&gt;
         SGThreshold=&amp;quot;2&amp;quot; CSLoad=&amp;quot;26&amp;quot; CSStart=&amp;quot;26&amp;quot; CSIdle=&amp;quot;10&amp;quot; CSRef=&amp;quot;20&amp;quot; StartArea=&amp;quot;200&amp;quot;&lt;br /&gt;
         MinSupplyVoltage=&amp;quot;500&amp;quot; MaxTemperature=&amp;quot;500&amp;quot; Microstepping=&amp;quot;0&amp;quot;&lt;br /&gt;
        /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Joint2 ID=&amp;quot;48&amp;quot; Version=&amp;quot;Product 0x42 FW 0x04 0x07&amp;quot;&lt;br /&gt;
         ComTimeOut=&amp;quot;3000&amp;quot; MaxCurrent=&amp;quot;0&amp;quot; MaxLag=&amp;quot;5000&amp;quot; EncoderErrorDetection=&amp;quot;1000&amp;quot; PosP=&amp;quot;1.000&amp;quot; PosI=&amp;quot;0.0000&amp;quot; PosD=&amp;quot;0.000&amp;quot; PosAWU=&amp;quot;0&amp;quot;&lt;br /&gt;
         Encoder=&amp;quot;True&amp;quot; SwapEncoderDirection=&amp;quot;False&amp;quot; EndSwitchRising=&amp;quot;True&amp;quot; StopOnEndSwitch=&amp;quot;False&amp;quot; UseIndexAsRef=&amp;quot;False&amp;quot;&lt;br /&gt;
         RefStraight=&amp;quot;True&amp;quot; RefSinus=&amp;quot;False&amp;quot; RefHalf=&amp;quot;False&amp;quot; SinusRefTics=&amp;quot;500&amp;quot; SinusRefMaxCycles=&amp;quot;6&amp;quot;&lt;br /&gt;
         Offset=&amp;quot;-1&amp;quot; RefSpeed=&amp;quot;40&amp;quot; RefSpeedSlow=&amp;quot;5&amp;quot; RefFromBothSides=&amp;quot;True&amp;quot;&lt;br /&gt;
         SGThreshold=&amp;quot;2&amp;quot; CSLoad=&amp;quot;10&amp;quot; CSStart=&amp;quot;10&amp;quot; CSIdle=&amp;quot;3&amp;quot; CSRef=&amp;quot;8&amp;quot; StartArea=&amp;quot;200&amp;quot;&lt;br /&gt;
         MinSupplyVoltage=&amp;quot;500&amp;quot; MaxTemperature=&amp;quot;430&amp;quot; Microstepping=&amp;quot;0&amp;quot;&lt;br /&gt;
        /&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
&amp;lt;/AmpParameter&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please only change the values in  quote marks, do not delete any quote marks, do not use decimal separators. This config file is case sensitive, so lower case and upper case matters.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Encoder Parameters===&lt;br /&gt;
If the additional external axis is equipped with a motor encoder enter the parameters as shown below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;All numbers, other than those for PosP PosI and PosD must be integer.&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! colspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! !! FW version 8.9 and older !! FW version 8.10 and newer&lt;br /&gt;
|-&lt;br /&gt;
| ComTimeOut || Maximum duration without communication before the communication error state ([[Error_Codes#CPRCANv2|error COM]]) is entered || Measured Bus frequency (&#039;&#039;read only&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| MaxCurrent || not used || not used &lt;br /&gt;
|-&lt;br /&gt;
| MaxLag || How many &#039;&#039;&#039;encoder tics&#039;&#039;&#039; is the encoder signal allowed to lag behind the desired motor position. See also parameter EncoderErrorDetection. || How many &#039;&#039;&#039;motor full steps&#039;&#039;&#039; the encoder signal allowed to lag behind the desired motor position until encoder error state ([[Error_Codes#CPRCANv2|error ENC]]) is entered.&lt;br /&gt;
|-&lt;br /&gt;
| EncoderErrorDetection || Encoder error detection: Number of tics the encoder signal is allowed to lag behind the desired motor position before the encoder error state ([[Error_Codes#CPRCANv2|error ENC]]) is entered. Divide this value by the [[Gear Scale]] to translate to degrees or mm. || not used&lt;br /&gt;
|-&lt;br /&gt;
| PosP || PID control parameter P - do not change || not used&lt;br /&gt;
|-&lt;br /&gt;
| PosI || PID control parameter I - do not change || not used&lt;br /&gt;
|-&lt;br /&gt;
| PosD || PID control parameter D - do not change || not used&lt;br /&gt;
|-&lt;br /&gt;
| PosAWU || PID control parameter anti wind up - do not change. This value has no effect if PosI is 0. || not used&lt;br /&gt;
|-&lt;br /&gt;
| Encoder || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Enable or disable the encoder (disable only if you got a motor without encoder)&lt;br /&gt;
|-&lt;br /&gt;
| SwapEncoderDirection || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Inverts the encoder direction - change if the encoder counts opposite to the motor. This does not change the motion direction, the axis will not move correctly if set to the wrong value!&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Reference/Ini Sensor Parameters===&lt;br /&gt;
These parameters define how the axis references itself. For referencing the referencing/ini switch and/or the motor&#039;s index pulse can be used, different motion patterns are available depending on the axis types.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;All numbers must integer.&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! colspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! !! FW version 8.9 and older !! FW version 8.10 and newer&lt;br /&gt;
|-&lt;br /&gt;
| EndSwitchRising || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Trigger on the rising edge (set to True) or on the falling edge (&amp;quot;False&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| StopOnEndSwitch || Stop referencing motion when the end-switch is triggered || not used&lt;br /&gt;
|-&lt;br /&gt;
| UseIndexAsRef || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Use the index pulse of the motor for referencing. Set to false to use the referencing switch.&lt;br /&gt;
|-&lt;br /&gt;
| UseIniAndIndexAsRef || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Use the index pulse and the referencing switch for referencing.&lt;br /&gt;
|-&lt;br /&gt;
| RefStraight || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | For linear axes: Moves in one direction until the referencing switch is reached.&lt;br /&gt;
|-&lt;br /&gt;
| RefSinus || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Rotational axes: Sinusoidal search motion (increasing back and forth motion until the switch is reached).&lt;br /&gt;
|-&lt;br /&gt;
| RefHalf || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | For rotational axes with half-disc inis. The state of the referencing switch determines the search direction.&lt;br /&gt;
|-&lt;br /&gt;
| SinusRefTics || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | How many encoder tics should  the sinusoidal search motion be incremented by per period&lt;br /&gt;
|-&lt;br /&gt;
| SinusRefMaxCycles || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | How many periods of sinusoidal search motion should be performed&lt;br /&gt;
|-&lt;br /&gt;
| Offset || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Distance of the 0 position to the referencing switch in encoder tics (divide by the [[Gear Scale]] to get degrees or mm). To invert the direction of the offset, reverse the sign (+/-).&lt;br /&gt;
|-&lt;br /&gt;
| RefSpeed || Sets the initial referencing speed: lower is slower. To invert the direction of movement, reverse the sign (+/-) of the number. The value -1 is not allowed, use -2 instead. || Sets the initial referencing speed in RPM.&lt;br /&gt;
|-&lt;br /&gt;
| RefSpeedSlow || Sets the precision referencing speed: lower is slower and more precise. To invert the direction of movement, reverse the sign (+/-) of the number. The value -1 is not allowed, use -2 instead. || Sets the precision referencing speed in RPM. To invert the direction of referencing movement, reverse the sign (+/-) of the number. Changing the direction here will also change the RefSpeed direction. &lt;br /&gt;
|-&lt;br /&gt;
| RefFromBothSides || Use the midpoint of the trigger signal instead of the rising/falling edge. || not used&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Motor Parameters===&lt;br /&gt;
&#039;&#039;&#039;All numbers must be integer.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please read [[Motor Current Parameter]] for a translation of the CS parameters to amps. Values between 1 and 32 are allowed. Low values mean less current and will stall the axis under load, large values will overheat the motor/module.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! colspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! !! FW version 8.9 and older !! FW version 8.10 and newer&lt;br /&gt;
|-&lt;br /&gt;
| SGThreshold || TMC2660 StallGuard threshold || not used&lt;br /&gt;
|-&lt;br /&gt;
| CSLoad || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Current under load conditions [[Motor_Current_Parameter|(arbitrary units)]]&lt;br /&gt;
|-&lt;br /&gt;
| CSStart || Current when starting a motion [[Motor_Current_Parameter|(arbitrary units)]] || not used&lt;br /&gt;
|-&lt;br /&gt;
| CSIdle || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Current when position is held [[Motor_Current_Parameter|(arbitrary units)]]&lt;br /&gt;
|-&lt;br /&gt;
| CSRef || Current during referencing [[Motor_Current_Parameter|(arbitrary units)]] || not used&lt;br /&gt;
|-&lt;br /&gt;
| StartArea || Speed of the start up current - do not change || not used&lt;br /&gt;
|-&lt;br /&gt;
| MinSupplyVoltage || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Minimum voltage in ADC ticks. Below this the low voltage or estop error ([[Error_Codes#CPRCANv2|error LOWV/ESTOP]]) occurs. &#039;0&#039; will turn this feature off.&lt;br /&gt;
|-&lt;br /&gt;
| MaxTemperature || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Maximum temperature. If the temperature of the electronics module (not motor) exceeds this value the over temperature error ([[Error_Codes#CPRCANv2|error TEMP]]) occurs and the motor is shut off.&lt;br /&gt;
|-&lt;br /&gt;
| Microstepping || Defines the microstepping - set to 0, do not change || Microsteps in &#039;&#039;256/(2^n)&#039;&#039;, n = this setting. Default is 5, range is 1-8. Set lower if you encounter unsmooth motion. Set higher if you need to go fast. &lt;br /&gt;
|-&lt;br /&gt;
| SlowMotionConfig || not used || not used&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parameter V2 ==&lt;br /&gt;
This format specifies one parameter per line, identified by index and subindex numbers. Name and unit are given for readability.&lt;br /&gt;
&lt;br /&gt;
Please note that some parameters are only informational and can not be written. This includes serial number, firmware version and CAN ID among others.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Parameter set for Commonplace Robotics robotics control  /--&amp;gt;&lt;br /&gt;
&amp;lt;!-- Target Robot: igus robolink                              /--&amp;gt;&lt;br /&gt;
&amp;lt;!-- support@cpr-robots.com                                   /--&amp;gt;&lt;br /&gt;
&amp;lt;AmpParameter&amp;gt;&lt;br /&gt;
    &amp;lt;Configuration ModuleType=&amp;quot;ObjectLibrary&amp;quot; NrOfJoints=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Joint0 ID=&amp;quot;16&amp;quot; Version=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;0&amp;quot;  SubIndex=&amp;quot;0&amp;quot;     Name=&amp;quot;Serialno.&amp;quot;                                 Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;0&amp;quot;  SubIndex=&amp;quot;1&amp;quot;     Name=&amp;quot;Firmware version&amp;quot;                          Value=&amp;quot;135425&amp;quot;       Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;0&amp;quot;  SubIndex=&amp;quot;2&amp;quot;     Name=&amp;quot;Hardwareno.&amp;quot;                               Value=&amp;quot;80&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;0&amp;quot;  SubIndex=&amp;quot;3&amp;quot;     Name=&amp;quot;min. supply Voltage&amp;quot;                       Value=&amp;quot;20000&amp;quot;        Unit=&amp;quot;mV&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;0&amp;quot;  SubIndex=&amp;quot;4&amp;quot;     Name=&amp;quot;max. Boardtemp&amp;quot;                            Value=&amp;quot;70000&amp;quot;        Unit=&amp;quot;m°C&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;0&amp;quot;     Name=&amp;quot;Encoder Tics&amp;quot;                              Value=&amp;quot;4000&amp;quot;         Unit=&amp;quot;1/Rev&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;1&amp;quot;     Name=&amp;quot;no. of pole pairs&amp;quot;                         Value=&amp;quot;4&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;2&amp;quot;     Name=&amp;quot;Winding resistance&amp;quot;                        Value=&amp;quot;50&amp;quot;           Unit=&amp;quot;mOhm&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;3&amp;quot;     Name=&amp;quot;Winding inductance&amp;quot;                        Value=&amp;quot;30&amp;quot;           Unit=&amp;quot;mH&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;4&amp;quot;     Name=&amp;quot;maxRPM&amp;quot;                                    Value=&amp;quot;3000&amp;quot;         Unit=&amp;quot;RPM&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;5&amp;quot;     Name=&amp;quot;max. Motortemp.&amp;quot;                           Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;m°C&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;6&amp;quot;     Name=&amp;quot;max. current&amp;quot;                              Value=&amp;quot;8000&amp;quot;         Unit=&amp;quot;mA&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;7&amp;quot;     Name=&amp;quot;StartUpMethod&amp;quot;                             Value=&amp;quot;4&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;8&amp;quot;     Name=&amp;quot;Rotor offset&amp;quot;                              Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;Tics&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;9&amp;quot;     Name=&amp;quot;Encoder inverted&amp;quot;                          Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;10&amp;quot;    Name=&amp;quot;Motor inverted&amp;quot;                            Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;11&amp;quot;    Name=&amp;quot;OpenLoopCurrent&amp;quot;                           Value=&amp;quot;2000&amp;quot;         Unit=&amp;quot;mA&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;12&amp;quot;    Name=&amp;quot;OpenLoopCurrent Standstill&amp;quot;                Value=&amp;quot;50&amp;quot;           Unit=&amp;quot;mA&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;13&amp;quot;    Name=&amp;quot;OpenLoopCurrent Calibration&amp;quot;               Value=&amp;quot;3200&amp;quot;         Unit=&amp;quot;mA&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;14&amp;quot;    Name=&amp;quot;CalibrationTime&amp;quot;                           Value=&amp;quot;50&amp;quot;           Unit=&amp;quot;ms&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;15&amp;quot;    Name=&amp;quot;RotorCalibrated&amp;quot;                           Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;16&amp;quot;    Name=&amp;quot;ThirdHarmonicActive&amp;quot;                       Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;0&amp;quot;     Name=&amp;quot;Controltype&amp;quot;                               Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;1&amp;quot;     Name=&amp;quot;Referencing type&amp;quot;                          Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;2&amp;quot;     Name=&amp;quot;Referencing Offset&amp;quot;                        Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;Tics&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;3&amp;quot;     Name=&amp;quot;Referencing speed&amp;quot;                         Value=&amp;quot;30&amp;quot;           Unit=&amp;quot;RPM&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;4&amp;quot;     Name=&amp;quot;Referencing speed slow&amp;quot;                    Value=&amp;quot;10&amp;quot;           Unit=&amp;quot;RPM&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;5&amp;quot;     Name=&amp;quot;Referencing switch type&amp;quot;                   Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;6&amp;quot;     Name=&amp;quot;max. positionlag&amp;quot;                          Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;Tics&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;7&amp;quot;     Name=&amp;quot;Enable Break&amp;quot;                              Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;8&amp;quot;     Name=&amp;quot;Break PWM high&amp;quot;                            Value=&amp;quot;70&amp;quot;           Unit=&amp;quot;%&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;9&amp;quot;     Name=&amp;quot;Break PWM low&amp;quot;                             Value=&amp;quot;70&amp;quot;           Unit=&amp;quot;%&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;10&amp;quot;    Name=&amp;quot;IPO Position&amp;quot;                              Value=&amp;quot;200000&amp;quot;       Unit=&amp;quot;Tics&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;11&amp;quot;    Name=&amp;quot;IPO Velocity&amp;quot;                              Value=&amp;quot;200000&amp;quot;       Unit=&amp;quot;Tics/10ms&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;12&amp;quot;    Name=&amp;quot;Axis inverted&amp;quot;                             Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;0&amp;quot;     Name=&amp;quot;Position P&amp;quot;                                Value=&amp;quot;20&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;1&amp;quot;     Name=&amp;quot;Position I&amp;quot;                                Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;2&amp;quot;     Name=&amp;quot;Position D&amp;quot;                                Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;3&amp;quot;     Name=&amp;quot;Position AntiWindUp&amp;quot;                       Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;4&amp;quot;     Name=&amp;quot;Position min&amp;quot;                              Value=&amp;quot;-2500&amp;quot;        Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;5&amp;quot;     Name=&amp;quot;Position max&amp;quot;                              Value=&amp;quot;2500&amp;quot;         Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;6&amp;quot;     Name=&amp;quot;Position sensor&amp;quot;                           Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;7&amp;quot;     Name=&amp;quot;Velocity P&amp;quot;                                Value=&amp;quot;100&amp;quot;          Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;8&amp;quot;     Name=&amp;quot;Velocity I&amp;quot;                                Value=&amp;quot;20&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;9&amp;quot;     Name=&amp;quot;Velocity D&amp;quot;                                Value=&amp;quot;5&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;10&amp;quot;    Name=&amp;quot;Velocity AntiWindUp&amp;quot;                       Value=&amp;quot;409600&amp;quot;       Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;11&amp;quot;    Name=&amp;quot;Velocity min&amp;quot;                              Value=&amp;quot;-2048&amp;quot;        Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;12&amp;quot;    Name=&amp;quot;Velocity max&amp;quot;                              Value=&amp;quot;2048&amp;quot;         Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;13&amp;quot;    Name=&amp;quot;Velocity sensor&amp;quot;                           Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;14&amp;quot;    Name=&amp;quot;DQ P&amp;quot;                                      Value=&amp;quot;20&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;15&amp;quot;    Name=&amp;quot;DQ I&amp;quot;                                      Value=&amp;quot;2&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;16&amp;quot;    Name=&amp;quot;DQ D&amp;quot;                                      Value=&amp;quot;2&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;17&amp;quot;    Name=&amp;quot;DQ AntiWindUp&amp;quot;                             Value=&amp;quot;409600&amp;quot;       Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;18&amp;quot;    Name=&amp;quot;DQ min&amp;quot;                                    Value=&amp;quot;-1024&amp;quot;        Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;19&amp;quot;    Name=&amp;quot;DQ max&amp;quot;                                    Value=&amp;quot;1024&amp;quot;         Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;20&amp;quot;    Name=&amp;quot;OpenLoop current P&amp;quot;                        Value=&amp;quot;20&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;21&amp;quot;    Name=&amp;quot;OpenLoop current I&amp;quot;                        Value=&amp;quot;2&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;22&amp;quot;    Name=&amp;quot;OpenLoop current D&amp;quot;                        Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;23&amp;quot;    Name=&amp;quot;OpenLoop current AntiWindUp&amp;quot;               Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;24&amp;quot;    Name=&amp;quot;OpenLoop current min&amp;quot;                      Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;25&amp;quot;    Name=&amp;quot;OpenLoop current max&amp;quot;                      Value=&amp;quot;1024&amp;quot;         Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;4&amp;quot;  SubIndex=&amp;quot;0&amp;quot;     Name=&amp;quot;CAN max. missed coms&amp;quot;                      Value=&amp;quot;1000&amp;quot;         Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;4&amp;quot;  SubIndex=&amp;quot;1&amp;quot;     Name=&amp;quot;CAN ID Source&amp;quot;                             Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;4&amp;quot;  SubIndex=&amp;quot;2&amp;quot;     Name=&amp;quot;CAN ID&amp;quot;                                    Value=&amp;quot;32&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;4&amp;quot;  SubIndex=&amp;quot;3&amp;quot;     Name=&amp;quot;SPI Active&amp;quot;                                Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Joint0&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Board Parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Serial no. || Serial number of the product. Used to identify the date of manufacture.&lt;br /&gt;
|-&lt;br /&gt;
| Firmwareversion || Firmware version number to identify the current software version.&lt;br /&gt;
|-&lt;br /&gt;
| Hardwareno. || Hardware version number to identify the hardware configuration used.&lt;br /&gt;
|-&lt;br /&gt;
| min. supply Voltage || Minimum permissible supply voltage. The minimum supply voltage should be approx. 2V below the nominal voltage. If the supply voltage falls below this limit, the board issues an error message.&lt;br /&gt;
|-&lt;br /&gt;
| max. Boardtemp. || Maximum permissible board temperature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Motor Parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Encoder Tics || Number of encoder pulses per revolution according to data sheet.&lt;br /&gt;
|-&lt;br /&gt;
| No. of Polepairs || Number of pole pairs in the motor according to the data sheet.&lt;br /&gt;
|-&lt;br /&gt;
| max. RPM || Maximum rotational speed of the motor. Setting is made according to the data sheet of the motor or on the basis of subsequent components. The value 0 cancels the limitation.&lt;br /&gt;
|-&lt;br /&gt;
| max. Motortemp. || Maximum temperature in the motor. The measurement is performed via an optional sensor. The value 0 deactivates the query.&lt;br /&gt;
|-&lt;br /&gt;
| max. Current || Maximum motor current according to data sheet.&lt;br /&gt;
|-&lt;br /&gt;
| StartUpMethod || Method used to set up the motor when starting the controller. With the automatic start options, the motor starts IPO afterwards. &lt;br /&gt;
* 0: Openloop&lt;br /&gt;
* 1: Closedloop with rotor alignment&lt;br /&gt;
* 2: Closedloop with index search&lt;br /&gt;
* 3: Closedloop for DC Motor&lt;br /&gt;
* 4: Closedloop with rotor alignment and check for free rotation &lt;br /&gt;
* 10: Closedloop with rotor alignment and autostart&lt;br /&gt;
|-&lt;br /&gt;
| EncoderInverted || Setting for the direction of rotation of the encoder. The direction of rotation of the signals at the input of the controller must be clockwise according to DIN EN 60034-8. After a change, the controller must be restarted. &lt;br /&gt;
* 0: Encoder not inverted&lt;br /&gt;
* 1: Encoder inverted&lt;br /&gt;
|-&lt;br /&gt;
| MotorInverted || The direction of rotation of the motor must be clockwise according to DIN EN 60034-8. If the setting is incorrect, the motor does not rotate. Only the motor current increases. &lt;br /&gt;
* 0: Motor not inverted&lt;br /&gt;
* 1: Motor inverted&lt;br /&gt;
|-&lt;br /&gt;
| OpenLoopCurrent || Setpoint current for the openloop control of the motor.&lt;br /&gt;
|-&lt;br /&gt;
| OpenLoopCurrent Standstill || Setpoint current for the openloop control at standstill.&lt;br /&gt;
|-&lt;br /&gt;
| OpenLoopCurrent Calibration || Set current for rotor alignment.&lt;br /&gt;
|-&lt;br /&gt;
| Calibration Time || Duration for the alignment of the rotor.&lt;br /&gt;
|-&lt;br /&gt;
| Motor Nominal Current || Maximum motor current that must not be exceeded for more then 2 seconds continously.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Axis Parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Reserved || Reserved for future use.&lt;br /&gt;
|-&lt;br /&gt;
| ReferencingType || Selection for the referencing type. &lt;br /&gt;
* 0: No referencing current position = 0&lt;br /&gt;
* 1: Linear motion&lt;br /&gt;
* 2: Sinusoidal movement (sinusoidal search for the sensor)&lt;br /&gt;
* 3: Half disks (referencing method for axes equipped with a half disk, e.g. Robolink DP)&lt;br /&gt;
* 4: Gearencoder (only Rebel)&lt;br /&gt;
|-&lt;br /&gt;
| ReferencingOffset || Offset for the axis position after referencing.&lt;br /&gt;
|-&lt;br /&gt;
| ReferencingSpeed || Speed for approaching the sensor. &lt;br /&gt;
&#039;&#039;&#039;If the axis is referenced in the wrong direction, this parameter can be set to negative.&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| ReferencingSpeedSlow || Speed for fine positioning of the axis during homing. &lt;br /&gt;
&#039;&#039;&#039;If the axis is referenced in the wrong direction, this parameter can be set to negative.&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| ReferencingSwitchType || Type of the reference sensor. &lt;br /&gt;
* 0: n.C.&lt;br /&gt;
* 1: n.O.&lt;br /&gt;
|-&lt;br /&gt;
| max. Positionlag || Permissible position error of the axis. With fast movements, the axis runs after the position setpoint. If the limit value is exceeded, the axis stops and an error message appears. If the value is set to 0, there is no monitoring.&lt;br /&gt;
|-&lt;br /&gt;
| Break Type || Parameter for activating a brake on the robot axis. If the robot has a holding brake, which should be controlled by the motor controller, this value must be set. The brakes are released when the axes are activated. &lt;br /&gt;
* 0: No brake&lt;br /&gt;
* 1: Friction brake&lt;br /&gt;
* 2: Blocking brake. &lt;br /&gt;
In blocking brake mode, a free-positioning movement occurs. A blocking brake means a pin or similar, which blocks the rotor. A friction brake describes a disc brake.&lt;br /&gt;
|-&lt;br /&gt;
| Break PWM High || If a brake is configured on the axis, this parameter specifies the PWM value for releasing the brake.&lt;br /&gt;
|-&lt;br /&gt;
| Break PWM Low || Voltage to hold the brake after releasing the brake; the motor controller lowers the output voltage to the specified value.&lt;br /&gt;
|-&lt;br /&gt;
| IPO Position || Positive position value for the IPO. In standalone mode, the IPO moves this value symmetrically around the zero point, from -IPO position to IPO position.&lt;br /&gt;
|-&lt;br /&gt;
| IPO Velocity || Speed for IPO mode in standalone operation.&lt;br /&gt;
|-&lt;br /&gt;
| Axis inverted || Changes the direction of the axis.&lt;br /&gt;
|-&lt;br /&gt;
| Gear ratio || Gear ratio of the gear unit. For i=1:50 correspondingly 50. Only integer values are possible.&lt;br /&gt;
|-&lt;br /&gt;
| Axis Enc Type || Encoder type.&lt;br /&gt;
* 0: No absolute value transmitter (e.g. linear axis with referencing switch)&lt;br /&gt;
* 1: Hatron absolute value transmitter (e.g. ReBeL-01 and ReBeL-02)&lt;br /&gt;
* 2: ICMU absolute value transmitter (e.g. ReBeL-03)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Control Parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Position P || P component for position control.&lt;br /&gt;
|-&lt;br /&gt;
| Position I || I component for position control.&lt;br /&gt;
|-&lt;br /&gt;
| Position P scale || Scaling of the P component by 2&amp;lt;sup&amp;gt;x&amp;lt;/sup&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| Position min. || Minimum limitation for the output of the position control.&lt;br /&gt;
|-&lt;br /&gt;
| Position max. || Maximum limitation for the output of the position control.&lt;br /&gt;
|-&lt;br /&gt;
| Velocity P || P component for speed control.&lt;br /&gt;
|-&lt;br /&gt;
| Velocity I || I portion for speed control.&lt;br /&gt;
|-&lt;br /&gt;
| Velocity P scale || Scaling of the P component in 2&amp;lt;sup&amp;gt;x&amp;lt;/sup&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| Velocity min. || Minimum limitation for the output of the speed control.&lt;br /&gt;
|-&lt;br /&gt;
| Velocity max. || Maximum limitation for the output of the speed control.&lt;br /&gt;
|-&lt;br /&gt;
| DQ-P || P component for DQ control.&lt;br /&gt;
|-&lt;br /&gt;
| DQ-I || I component for DQ control.&lt;br /&gt;
|-&lt;br /&gt;
| DQ back calc || Backcalculation factor for DQ controller.&lt;br /&gt;
|-&lt;br /&gt;
| DQ-min. || Minimum limitation for the output of the DQ control.&lt;br /&gt;
|-&lt;br /&gt;
| DQ-max. || Maximum limitation for the output of the DQ control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop P || P component for Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop I || I component for Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop D || D component for Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop AntiWindUp || AntiWindUp for Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop min. || Minimum limitation for the output of the Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop max. || Maximum limitation for the output of the Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Communication Parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| CAN max. missed Coms || Maximum number of failed communication attempts on the CAN bus. Exceeding the value leads to the motor controller being switched off.&lt;br /&gt;
|-&lt;br /&gt;
| CAN ID Source || Source for the CAN ID. &lt;br /&gt;
* 1: Hardware jumper&lt;br /&gt;
* 2: Parameter set.&lt;br /&gt;
|-&lt;br /&gt;
| CAN ID || CAN ID for the controller.&lt;br /&gt;
|-&lt;br /&gt;
| SPI Active || Enable SPI communication.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:CPRog]][[Category:Configuration]][[Category:Referencing]]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=License_Request&amp;diff=1074</id>
		<title>License Request</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=License_Request&amp;diff=1074"/>
		<updated>2026-07-01T10:25:49Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some features or apps like the [[IRC Operator HMI]] or the [[CANopen|CANopen master]] require a license. This article explains how to request a license.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--[https://shop.cpr-robots.com/?product_cat=software-control-units All available features can be found  here.]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Check your robot control =&lt;br /&gt;
Before requesting a license you should check whether the licensed feature is supported by your version of the robot control. The earliest supported version is mentioned in the corresponding Wiki article or the user manual. [[Software_Updates|Update your robot control if necessary]].&lt;br /&gt;
&lt;br /&gt;
= Find the device ID and request a license =&lt;br /&gt;
Each robot control is identified by a unique device ID. This ID is required for creating the license.&lt;br /&gt;
&lt;br /&gt;
# Start CPRog/iRC and connect to your robot.&lt;br /&gt;
# Open to the license section (File -&amp;gt; License). This will show two sub-sections (only one if your robot connects via USB-to-CAN). The upper one labeled &amp;quot;CPRog license&amp;quot; or &amp;quot;iRC license&amp;quot; refers to the software running on your Windows PC, the lower one &amp;quot;License of Embedded Control&amp;quot; refers to the integrated control computer of the robot.&lt;br /&gt;
# Make sure to copy the correct Device ID. In case of Modbus and CANopen you will need the device ID of the embedded control.&lt;br /&gt;
# Add this device ID when you request your license ([https://rbtx.com/de-DE/components/software/modbus-tcpip via RBTX/igus]).&lt;br /&gt;
&lt;br /&gt;
[[File:LicenseInfo.PNG|thumb]]&lt;br /&gt;
&lt;br /&gt;
= Install a License =&lt;br /&gt;
You will get a license file.&lt;br /&gt;
# Connect to your robot and open the license section again.&lt;br /&gt;
# Then click the &amp;quot;Install License&amp;quot; button for CPRog/iRC or the embedded control, select the file and upload it.&lt;br /&gt;
# Restart the robot&lt;br /&gt;
# Connect and open the license section again. The line &amp;quot;Features&amp;quot; should now include your licensed features.&lt;br /&gt;
&lt;br /&gt;
[[Category:CPRog]][[Category:TinyCtrl]][[Category:Modbus]]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=License_Request&amp;diff=1073</id>
		<title>License Request</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=License_Request&amp;diff=1073"/>
		<updated>2026-07-01T10:25:25Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some features or apps like the [[IRC_Operator_HMI]] or the [[CANopen|CANopen master]] require a license. This article explains how to request a license.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--[https://shop.cpr-robots.com/?product_cat=software-control-units All available features can be found  here.]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Check your robot control =&lt;br /&gt;
Before requesting a license you should check whether the licensed feature is supported by your version of the robot control. The earliest supported version is mentioned in the corresponding Wiki article or the user manual. [[Software_Updates|Update your robot control if necessary]].&lt;br /&gt;
&lt;br /&gt;
= Find the device ID and request a license =&lt;br /&gt;
Each robot control is identified by a unique device ID. This ID is required for creating the license.&lt;br /&gt;
&lt;br /&gt;
# Start CPRog/iRC and connect to your robot.&lt;br /&gt;
# Open to the license section (File -&amp;gt; License). This will show two sub-sections (only one if your robot connects via USB-to-CAN). The upper one labeled &amp;quot;CPRog license&amp;quot; or &amp;quot;iRC license&amp;quot; refers to the software running on your Windows PC, the lower one &amp;quot;License of Embedded Control&amp;quot; refers to the integrated control computer of the robot.&lt;br /&gt;
# Make sure to copy the correct Device ID. In case of Modbus and CANopen you will need the device ID of the embedded control.&lt;br /&gt;
# Add this device ID when you request your license ([https://rbtx.com/de-DE/components/software/modbus-tcpip via RBTX/igus]).&lt;br /&gt;
&lt;br /&gt;
[[File:LicenseInfo.PNG|thumb]]&lt;br /&gt;
&lt;br /&gt;
= Install a License =&lt;br /&gt;
You will get a license file.&lt;br /&gt;
# Connect to your robot and open the license section again.&lt;br /&gt;
# Then click the &amp;quot;Install License&amp;quot; button for CPRog/iRC or the embedded control, select the file and upload it.&lt;br /&gt;
# Restart the robot&lt;br /&gt;
# Connect and open the license section again. The line &amp;quot;Features&amp;quot; should now include your licensed features.&lt;br /&gt;
&lt;br /&gt;
[[Category:CPRog]][[Category:TinyCtrl]][[Category:Modbus]]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=IRC_Operator_HMI&amp;diff=1072</id>
		<title>IRC Operator HMI</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=IRC_Operator_HMI&amp;diff=1072"/>
		<updated>2026-07-01T10:23:22Z</updated>

		<summary type="html">&lt;p&gt;OLT: Created page with &amp;quot;link=  The &amp;#039;&amp;#039;&amp;#039;iRC Operator HMI&amp;#039;&amp;#039;&amp;#039; app is a clear and user-friendly interface for HMIs that enables simple operation of the robot system. It is the middle ground between limited control via button panels and complex control via iRC software.  The interface runs as a standalone web service directly on the embedded controller and can therefore be accessed using any standard web browser via an HMI, PC, tablet, or smartphone....&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:OperatorHMI_Zelle.png|image|right|200px|link=]]&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;iRC Operator HMI&#039;&#039;&#039; app is a clear and user-friendly interface for HMIs that enables simple operation of the robot system.&lt;br /&gt;
It is the middle ground between limited control via button panels and complex control via iRC software.&lt;br /&gt;
&lt;br /&gt;
The interface runs as a standalone web service directly on the embedded controller and can therefore be accessed using any standard web browser via an HMI, PC, tablet, or smartphone.&lt;br /&gt;
&lt;br /&gt;
By separating it from the iRC PC software, a two-level operating concept is created, ensuring that each user has access to exactly the functionalities they need.&lt;br /&gt;
&lt;br /&gt;
= Features =&lt;br /&gt;
[[File:IRC_Operator_HMI.png|thumb|350px|link=]]&lt;br /&gt;
* Clear and easy operation of the robot&lt;br /&gt;
* Complete startup sequence (activation, referencing, program start)&lt;br /&gt;
* Program selection&lt;br /&gt;
* Protection against unauthorized program modifications&lt;br /&gt;
* Speed adjustment&lt;br /&gt;
* Overview of the robot status&lt;br /&gt;
* Comprehensive program execution statistics&lt;br /&gt;
* Dynamic error analysis for troubleshooting&lt;br /&gt;
&lt;br /&gt;
= Download =&lt;br /&gt;
Manual: [https://downloads.cpr-robots.com/Documentation/EN/Software/iRC/Apps/Operator_HMI/iRC_Operator_HMI_Manual.pdf iRC_Operator_HMI_Manual.pdf]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: You will need [[License_Request | License]] in order to run the app for more than 30 minutes (testing period). You can get one via [https://rbtx.de/de-DE/components/software RBTX]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=File:IRC_Operator_HMI.png&amp;diff=1071</id>
		<title>File:IRC Operator HMI.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=File:IRC_Operator_HMI.png&amp;diff=1071"/>
		<updated>2026-07-01T10:14:20Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=File:OperatorHMI_Zelle.png&amp;diff=1070</id>
		<title>File:OperatorHMI Zelle.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=File:OperatorHMI_Zelle.png&amp;diff=1070"/>
		<updated>2026-07-01T09:25:05Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Camera&amp;diff=1069</id>
		<title>Camera</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Camera&amp;diff=1069"/>
		<updated>2026-06-30T08:37:24Z</updated>

		<summary type="html">&lt;p&gt;OLT: /* Modbus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cameras are an important part of a robot cell, e.g. for picking parts. This article shows the different options how to integrate a camera.&lt;br /&gt;
&lt;br /&gt;
= Object recognition cameras =&lt;br /&gt;
The following interfaces are available for integrating cameras.&lt;br /&gt;
&lt;br /&gt;
== Interface for ifm O2D ==&lt;br /&gt;
The ifm O2D is a smart camera that can be connected directly to the iRC. &lt;br /&gt;
&lt;br /&gt;
Configuration information and a introduction video are found here: [[Konfiguration]]&lt;br /&gt;
&lt;br /&gt;
Detailed information and a set up video can be found here: [[2D Camera Integration|Camera Interface]]&lt;br /&gt;
&lt;br /&gt;
== Object recognition via USB cameras ==&lt;br /&gt;
With the [[Vision App]] USB cameras can be used for object recognition. This supports most cameras that work like webcams, however we recommend using industrial fixed-focus cameras. Web cams for video calls will not work well mainly due to autofocusing.&lt;br /&gt;
&lt;br /&gt;
= Integrating other cameras =&lt;br /&gt;
If your camera is not supported by the robot control&#039;s interfaces you can use a higher-level control (e.g. PLC or PC) to translate and communicate between camera and robot control. In this case you will need to create the software yourself. The following interfaces are available for receiving position and other data.&lt;br /&gt;
&lt;br /&gt;
== Modbus ==&lt;br /&gt;
The iRC provides a Modbus interface to connect to a plc. Using this interface a camera can be connected. The iRC is a Modbus server, so it is possible to:&lt;br /&gt;
* Connect a camera that serves as client&lt;br /&gt;
* Connect a plc that serves as client for both, the iRC and the camera&lt;br /&gt;
Details on the Modbus interface are found here: [[Modbus Server]]&lt;br /&gt;
&lt;br /&gt;
== CRI Ethernet Interface ==&lt;br /&gt;
The CRI ethernet interface is an open interface to the iRC, amongst other things it can be used to connect to a camera.&lt;br /&gt;
This interface requires setting up an application in a high level language like C#. &lt;br /&gt;
&lt;br /&gt;
Information and example code can be found here: [[CRI Ethernet Interface]]&lt;br /&gt;
&lt;br /&gt;
== App interface ==&lt;br /&gt;
The [[Apps_for_the_Robot_Control|app interface]] provides closer integration into the robot control with a C++ and Python API. This interface is for example used by the USB camera app.&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Camera&amp;diff=1068</id>
		<title>Camera</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Camera&amp;diff=1068"/>
		<updated>2026-06-30T08:32:13Z</updated>

		<summary type="html">&lt;p&gt;OLT: /* Object recognition via USB cameras */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cameras are an important part of a robot cell, e.g. for picking parts. This article shows the different options how to integrate a camera.&lt;br /&gt;
&lt;br /&gt;
= Object recognition cameras =&lt;br /&gt;
The following interfaces are available for integrating cameras.&lt;br /&gt;
&lt;br /&gt;
== Interface for ifm O2D ==&lt;br /&gt;
The ifm O2D is a smart camera that can be connected directly to the iRC. &lt;br /&gt;
&lt;br /&gt;
Configuration information and a introduction video are found here: [[Konfiguration]]&lt;br /&gt;
&lt;br /&gt;
Detailed information and a set up video can be found here: [[2D Camera Integration|Camera Interface]]&lt;br /&gt;
&lt;br /&gt;
== Object recognition via USB cameras ==&lt;br /&gt;
With the [[Vision App]] USB cameras can be used for object recognition. This supports most cameras that work like webcams, however we recommend using industrial fixed-focus cameras. Web cams for video calls will not work well mainly due to autofocusing.&lt;br /&gt;
&lt;br /&gt;
= Integrating other cameras =&lt;br /&gt;
If your camera is not supported by the robot control&#039;s interfaces you can use a higher-level control (e.g. PLC or PC) to translate and communicate between camera and robot control. In this case you will need to create the software yourself. The following interfaces are available for receiving position and other data.&lt;br /&gt;
&lt;br /&gt;
== Modbus ==&lt;br /&gt;
The iRC provides a Modbus interface to connect to a plc. Using this interface a camera can be connected. The iRC is a Modbus server, so it is possible to:&lt;br /&gt;
* Connect a camera that serves as client&lt;br /&gt;
* Connect a plc that serves as client for both, the iRC and the camera&lt;br /&gt;
Details on the Modbus interface are found here: [[Modbus_Server]]&lt;br /&gt;
&lt;br /&gt;
== CRI Ethernet Interface ==&lt;br /&gt;
The CRI ethernet interface is an open interface to the iRC, amongst other things it can be used to connect to a camera.&lt;br /&gt;
This interface requires setting up an application in a high level language like C#. &lt;br /&gt;
&lt;br /&gt;
Information and example code can be found here: [[CRI Ethernet Interface]]&lt;br /&gt;
&lt;br /&gt;
== App interface ==&lt;br /&gt;
The [[Apps_for_the_Robot_Control|app interface]] provides closer integration into the robot control with a C++ and Python API. This interface is for example used by the USB camera app.&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=PLC_Interface&amp;diff=1067</id>
		<title>PLC Interface</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=PLC_Interface&amp;diff=1067"/>
		<updated>2026-06-29T10:07:19Z</updated>

		<summary type="html">&lt;p&gt;OLT: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The most basic way to integrate a robot into a production system is our PLC interface. By sending signals on digital inputs and outputs a [[Glossary|PLC]] can send commands and receive status information. It also allows connecting buttons and lights for a simple display-less control by users.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Video Tutorial&#039;&#039;&#039; https://youtu.be/A5bhbdmGZXU&lt;br /&gt;
&lt;br /&gt;
=Available Channels=&lt;br /&gt;
&lt;br /&gt;
The inputs execute the following functions on rising edges:&lt;br /&gt;
* &amp;quot;Enable / disable motors&amp;quot;: When in error state the errors are first reset. A second rising edge (at least 1s later) will enable the motors (the Fault/NoFault outputs will change). If the motors are enabled (no fault present) a rising edge will disable them.&lt;br /&gt;
* &amp;quot;Request reference&amp;quot;: A rising edge will start the reference procedure for all joints.&lt;br /&gt;
* &amp;quot;Start / stop program&amp;quot;: The first rising edge will start the currently loaded robot program, the second will stop (not pause) it.&lt;br /&gt;
* &amp;quot;Pause / continue program&amp;quot;: The rising edge will pause the program. If a program is paused it will be continued on another rising edge.&lt;br /&gt;
* &amp;quot;One button start&amp;quot;: Two-button-control: Depending on the current state successive rising edges will: reset errors, enable motors, reference (if necessary) and start the loaded program.&lt;br /&gt;
* &amp;quot;One button stop&amp;quot;: Two-button-control: Depending on the current state successive rising edges will: Pause the program, stop it, then reset errors (which disables the motors).&lt;br /&gt;
* &amp;quot;Shutdown&amp;quot;: Turns the embedded control computer or PC down.&lt;br /&gt;
* &amp;quot;Start platform mission&amp;quot;: Start the selected platform mission.&lt;br /&gt;
&lt;br /&gt;
Outputs from the Robot to the Master:&lt;br /&gt;
* &amp;quot;NoFault&amp;quot;: This output is high when the robot is in &amp;quot;No Error&amp;quot; state&lt;br /&gt;
* &amp;quot;Fault&amp;quot;: The opposite of No Fault&lt;br /&gt;
* &amp;quot;Program Running&amp;quot;: This output is high when the robot program is running.&lt;br /&gt;
* &amp;quot;Program Not Running&amp;quot;: The opposite of Program Running&lt;br /&gt;
* &amp;quot;Robot Is Referenced&amp;quot;: This output is high when all joints are referenced.&lt;br /&gt;
* &amp;quot;Platform Mission Running&amp;quot;: This output is high when the platform mission is running.&lt;br /&gt;
&lt;br /&gt;
=Configuration=&lt;br /&gt;
&lt;br /&gt;
The PLC interface can be set up graphically using CPRog/iRC or by manually changing the configuration files.&lt;br /&gt;
&lt;br /&gt;
* Start CPRog/iRC and load the correct project for your robot&lt;br /&gt;
* If your robot is using an embedded control (TinyCtrl) connect it&lt;br /&gt;
* Click File → Configure Interfaces (&#039;&#039;&#039;/&#039;&#039;&#039;Configuration) → PLC interface&lt;br /&gt;
* Enable the PLC interface by checking &#039;Enabled&#039;&lt;br /&gt;
* Enter the DIn numbers according to your wiring. Unused functions can be disabled by setting a DIn number that does not exist, e.g. 1.&lt;br /&gt;
* Click &amp;quot;Apply&amp;quot;. The PLC interface should be enabled immediately.&lt;br /&gt;
&lt;br /&gt;
[[File:Config_PLC_Interface.png|800px]]&lt;br /&gt;
&lt;br /&gt;
=Program Triggers=&lt;br /&gt;
&lt;br /&gt;
The PLC interface also lets you set program triggers for starting programs via the PLC interface. You can choose digital inputs or global signals as triggers. The program will be started on a rising edge and interrupt the currently running program.&lt;br /&gt;
&lt;br /&gt;
[[File:Config_Program_Triggers.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Configuration]][[Category:CPRog]][[Category:TinyCtrl]]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Igus_ReBeL&amp;diff=1066</id>
		<title>Igus ReBeL</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Igus_ReBeL&amp;diff=1066"/>
		<updated>2026-06-24T13:01:50Z</updated>

		<summary type="html">&lt;p&gt;OLT: /* Status light at the power switch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.igus.com/info/rebel-cobot igus ReBeL] robot arms and single [[Rebel Joint|ReBeL joints]] are controlled by the [[IgusRobotControl|igus Robot Control software (iRC)]] and electronics. This article article lists useful information for setup, operation and troubleshooting.&lt;br /&gt;
&lt;br /&gt;
= User Manual =&lt;br /&gt;
The user manual explains how set up the robot control software, how to configure the robot and it&#039;s interfaces as well as how to create robot programs. If you are doing the initial setup please also refer to the quick start guide that should be included with the robot.&lt;br /&gt;
&lt;br /&gt;
* [https://cpr-robots.com/download/igusRobotControl/Documentation/UserGuide_iRC_Rebel_V14.pdf User Guide in English]&lt;br /&gt;
* [https://cpr-robots.com/download/igusRobotControl/Documentation/Bedienungsanleitung_iRC_Rebel_V14.pdf Bedienungsanleitung in Deutsch]&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
== igus Robot Control ==&lt;br /&gt;
The igus Robot Control software (iRC) is used to move, program and configure the robot. It works together with the embedded robot control software TinyCtrl that executes the robot programs and handles the motion so the robot can work without a connected PC.&lt;br /&gt;
&lt;br /&gt;
You can download iRC and updates for the embedded control here:&lt;br /&gt;
* [[Software Updates]]&lt;br /&gt;
&lt;br /&gt;
== Firmware Updates and Configuration ==&lt;br /&gt;
The software [[Config_Software_ModuleCtrl|Module Control Closed Loop]] can be used to move and configure single axes of the robot. This is intended for troubleshooting and you should not need to use it unless issues occur. Module Control also includes updates for the firmware of the motor controllers.&lt;br /&gt;
&lt;br /&gt;
= ReBeL joints for custom applications =&lt;br /&gt;
Single ReBeL joints can be bought for custom applications. Please read [[Rebel Joint]] for information on how to communicate with the motor control electronics.&lt;br /&gt;
&lt;br /&gt;
= Status light at the power switch =&lt;br /&gt;
The ReBeL arm shows status information at its power switch.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Color&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|green&lt;br /&gt;
|Motors are enabled&lt;br /&gt;
|-&lt;br /&gt;
|yellow&lt;br /&gt;
|Motors are not enabled OR&lt;br /&gt;
Robot control software is not running (it is starting, is stopped or crashed). Wait for a minute.&lt;br /&gt;
&lt;br /&gt;
No communication to the power switch (the power switch LED acts like a special IO module, changing the IO module configuration can disable it. The easiest solution is [[Software_Updates|restoring the factory configuration with an update]]). This may also occur due to an electronic defect.&lt;br /&gt;
|-&lt;br /&gt;
|red&lt;br /&gt;
|Error, try resetting it by enabling the motors. Connect iRC for more info, check the infocenter below the 3D view to see the status code of each axis.&lt;br /&gt;
|-&lt;br /&gt;
|blue&lt;br /&gt;
|Robot software not running. &lt;br /&gt;
If you can still ping the robot , try making a [[Robot_Control_Update_Process|&#039;&#039;&#039;complete&#039;&#039;&#039; update]]. If you can&#039;t ping the robot, try to [[Restore SD Card of Embedded Computer]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Rebel]]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Template:Main_page&amp;diff=1065</id>
		<title>Template:Main page</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Template:Main_page&amp;diff=1065"/>
		<updated>2026-06-24T12:53:19Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{DISPLAYTITLE:&amp;lt;span style=&amp;quot;position: absolute; clip: rect(1px 1px 1px 1px); clip: rect(1px, 1px, 1px, 1px);&amp;quot;&amp;gt;{{FULLPAGENAME}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--       BANNER ACROSS TOP OF PAGE        --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {| id=&amp;quot;mp-topbanner&amp;quot; style=&amp;quot;width:100%; text-align:center; margin:1.2em 0 6px 0; border:5px solid #50798a;&amp;quot; --&amp;gt;&lt;br /&gt;
{| id=&amp;quot;mp-topbanner&amp;quot; style=&amp;quot;width:100%; text-align:center;&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;!--        &amp;quot;WELCOME TO CPR wiki AND ARTICLE COUNT        --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:162%; border:none; margin:0; padding:.1em; font-weight: bold&amp;quot;&amp;gt;Welcome to the iRC Wiki!&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;color: grey; font-size:162%; border:none; margin:0; padding:.1em;&amp;quot;&amp;gt;↑ Try using the search-bar at the top ↑&amp;lt;/div&amp;gt;&lt;br /&gt;
Commonplace Robotics, as a part of igus GmbH, develops intuitive robot control software.&lt;br /&gt;
&lt;br /&gt;
You can find all igus robots and many more in our [https://rbtx.com/en-US &#039;&#039;&#039;RBTX marketplace&#039;&#039;&#039;]!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:IRC_V15.png|500px|center|link=IgusRobotControl-Release15-EN]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Get the latest iRC Version [[IgusRobotControl-Release15-EN|here]]!&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div 	style=&amp;quot;display: flex; flex-direction: row;	flex-flow: row wrap; justify-content: space-between; padding: 0; gap: 10px;	margin-top: 10px; margin-bottom: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex: 1; min-width: 210px; border: 1px solid #a2a9b1; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba( 0, 0, 0, 0.2 );&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;&amp;lt;span class=&amp;quot;header_icon&amp;quot; aria-hidden=&amp;quot;true&amp;quot; role=&amp;quot;presentation&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt; iRC - Software &amp;lt;/span&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Software_Updates|Software &#039;&#039;&#039;Downloads&#039;&#039;&#039;]]&lt;br /&gt;
* [[Documentation|Documentation and &#039;&#039;&#039;User Guides&#039;&#039;&#039;]]&lt;br /&gt;
* [[Configuration Files Overview]]&lt;br /&gt;
* [[Control Interfaces]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex: 1; min-width: 210px; border: 1px solid #a2a9b1; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba( 0, 0, 0, 0.2 );&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;&amp;lt;span class=&amp;quot;header_icon&amp;quot; aria-hidden=&amp;quot;true&amp;quot; role=&amp;quot;presentation&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt; IRC - Hardware &amp;lt;/span&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Configuration Files Overview]]&lt;br /&gt;
* [[Digital Inputs / Outputs]]&lt;br /&gt;
* [[Motor Brake]]&lt;br /&gt;
* [[External Axis]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex: 1; min-width: 210px; border: 1px solid #a2a9b1; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba( 0, 0, 0, 0.2 );&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;&amp;lt;span class=&amp;quot;header_icon&amp;quot; aria-hidden=&amp;quot;true&amp;quot; role=&amp;quot;presentation&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt; Robots &amp;lt;/span&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[igus ReBeL]]&#039;&#039;&#039;&lt;br /&gt;
* [[:Category:Gantry|Gantry]]&lt;br /&gt;
* [[:Category:Delta|Delta]]&lt;br /&gt;
* [[:Category:Scara|Scara]]&lt;br /&gt;
* [[AMR Documentation|Mobile Robots]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div 	style=&amp;quot;display: flex; flex-direction: row;	flex-flow: row wrap; justify-content: space-between; padding: 0; gap: 10px;	margin-top: 10px; margin-bottom: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex: 1; min-width: 210px; border: 1px solid #a2a9b1; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba( 0, 0, 0, 0.2 );&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;&amp;lt;span class=&amp;quot;header_icon&amp;quot; aria-hidden=&amp;quot;true&amp;quot; role=&amp;quot;presentation&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt; Programming &amp;lt;/span&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Starter Guide]]&#039;&#039;&#039;&lt;br /&gt;
* [[AI Programming Assist]]&lt;br /&gt;
* [[Example_Library|Example Programs]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex: 1; min-width: 210px; border: 1px solid #a2a9b1; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba( 0, 0, 0, 0.2 );&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;&amp;lt;span class=&amp;quot;header_icon&amp;quot; aria-hidden=&amp;quot;true&amp;quot; role=&amp;quot;presentation&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt; Troubleshooting &amp;lt;/span&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Troubleshooting|Systematic Troubleshooting]]&lt;br /&gt;
* [[Robot Hardware Troubleshooting]]&lt;br /&gt;
* [[Support Routes]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex: 1; min-width: 210px; border: 1px solid #a2a9b1; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba( 0, 0, 0, 0.2 );&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;&amp;lt;span class=&amp;quot;header_icon&amp;quot; aria-hidden=&amp;quot;true&amp;quot; role=&amp;quot;presentation&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt; Legacy &amp;lt;/span&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[:Category:Robolink|Robolink]]&lt;br /&gt;
* [[DCi quickstart guide|Robolink DCi]]&lt;br /&gt;
* [[:Category:Mover|Mover]]&lt;br /&gt;
* [[CPRog Software Troubleshooting]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We are constantly extending and updating this Wiki, please [[Support Routes|get in touch]] for further information!&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Example_Library&amp;diff=1064</id>
		<title>Example Library</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Example_Library&amp;diff=1064"/>
		<updated>2026-06-24T12:47:52Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here you can find sample applications that have been developed in- and outside of igus.&lt;br /&gt;
&lt;br /&gt;
Feel free to use them as a starting point for your project!&lt;br /&gt;
Also have a look at other robot types. Often Programs can be easily translated between robots!&lt;br /&gt;
&lt;br /&gt;
If you want to contribute to this page, please contact us!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
= General =&lt;br /&gt;
[[File:IRC_V15.png|thumb|300px|link=General Examples]]&lt;br /&gt;
Non-robot related tools, like controller integration, control interfaces and plugins.&lt;br /&gt;
&lt;br /&gt;
:[[General Examples]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
= Gantry =&lt;br /&gt;
[[File:GANTRY.png|thumb|300px|link=Gantry Examples]]&lt;br /&gt;
Basic allrounder robots, suitable for most industrial applications. Highly adjustable for many use cases.&lt;br /&gt;
&lt;br /&gt;
:[[Gantry Examples]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Delta =&lt;br /&gt;
[[File:DELTA.png|thumb|300px|link=Delta Examples]]&lt;br /&gt;
Delta robots for high speed pick &amp;amp; place tasks.&lt;br /&gt;
&lt;br /&gt;
:[[Delta Examples]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
= Rebel &amp;amp; Robolink = &lt;br /&gt;
[[File:ReBeL.png|thumb|300px|link=ReBeL Examples]]&lt;br /&gt;
Articulated robots for complex movements.&lt;br /&gt;
&lt;br /&gt;
:[[ReBeL Examples]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
= Scara =&lt;br /&gt;
[[File:SCARA.png|thumb|300px|link=Scara Examples]]&lt;br /&gt;
Fast, precise &amp;amp; flexible robots for pick &amp;amp; place applications.&lt;br /&gt;
&lt;br /&gt;
:[[Scara Examples]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
-- = Mobile Platform =&lt;br /&gt;
-- [[File:EDUMOVE.png|thumb|300px|link=Mobile Platform Examples]]&lt;br /&gt;
-- Mobile robot that can move around freely.&lt;br /&gt;
-- &lt;br /&gt;
-- :[[Mobile Platform Examples]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Firmware_Parameter_Configuration&amp;diff=1063</id>
		<title>Firmware Parameter Configuration</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Firmware_Parameter_Configuration&amp;diff=1063"/>
		<updated>2026-06-15T09:05:05Z</updated>

		<summary type="html">&lt;p&gt;OLT: /* General Procedure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;While most robot specific settings are stored in the configuration files in CPRog/iRC and on the embedded control axis specific settings are stored in the axis control modules themselves. This includes parameters for motion, referencing and motor current. This article explains these parameters and how to access them.&lt;br /&gt;
&lt;br /&gt;
This article applies to all robots with modular control, robolink DCI and ReBeL joints. It does not apply to the Mover robots.&lt;br /&gt;
&lt;br /&gt;
= General Procedure =&lt;br /&gt;
* Load the firmware parameters from the axis modules&lt;br /&gt;
* Change values using a basic text editor&lt;br /&gt;
* Upload the file to the modules&lt;br /&gt;
* Restart the robot&lt;br /&gt;
&lt;br /&gt;
[[File:FirmwareParameterConfiguration.png | thumb | 400px | link=]]&lt;br /&gt;
Since &#039;&#039;&#039;iRC version 15.0.0&#039;&#039;&#039; you can change the firmware parameters directly in software. Simply go to &amp;quot;&#039;&#039;&#039;File -&amp;gt; Firmware Configuration&#039;&#039;&#039;&amp;quot; and &amp;quot;&#039;&#039;&#039;Load parameters from axes&#039;&#039;&#039;&amp;quot;. Change the values and upload them back to the modules via &amp;quot;&#039;&#039;&#039;Write parameters to axes&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Download Configuration ==&lt;br /&gt;
&lt;br /&gt;
* Open CPRog/iRC&lt;br /&gt;
* Connect to the robot via Ethernet or a USB-CAN-Adapter&lt;br /&gt;
* Check if all green LEDs on top of &#039;&#039;&#039;all&#039;&#039;&#039; motor modules are blinking. If a module is not blinking, it might not be configured correctly. Did you save the project and restart the hardware?&lt;br /&gt;
* Click &amp;quot;File&amp;quot; at the top of CPRog/iRC to access the backstage menu&lt;br /&gt;
* V14 and older:&lt;br /&gt;
** Click &amp;quot;Get Amp configuration&amp;quot; (see the image below)&lt;br /&gt;
* V15 and newer:&lt;br /&gt;
** Go to &amp;quot;Configuration Files&amp;quot;, scroll down to &amp;quot;Firmware Parameters&amp;quot; and click &amp;quot;Load from robot...&amp;quot;&lt;br /&gt;
* Now a parameter file is written in the Data\Backup directory in the CPRog/iRC installation directory (e.g. C:\CPRog\Data\Backup or C:\iRC-igusRobotControl\Data\Backup)&lt;br /&gt;
&lt;br /&gt;
== Upload Configuration ==&lt;br /&gt;
&lt;br /&gt;
* Change the file according to your requirements using a basic text editor like Notepad or Notepad++ (see section Parameter File below)&lt;br /&gt;
* V14 and older:&lt;br /&gt;
** Click &amp;quot;Set Amp configuration&amp;quot;&lt;br /&gt;
* V15 and newer:&lt;br /&gt;
** Go to &amp;quot;Configuration Files&amp;quot;, scroll down to &amp;quot;Firmware Parameters&amp;quot; and click &amp;quot;Write from robot...&amp;quot;&lt;br /&gt;
* Choose the updated .dat file&lt;br /&gt;
* Wait until all parameters are written, approx 20s. Another backup of the previous values is also created.&lt;br /&gt;
* For some parameter, e.g. the encoder direction, the control needs a cold restart&lt;br /&gt;
* Test if the changes result in a better performance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
[[File:CPRogAmpConfig.JPG|400px|left]] [[File:ConfigurationFilesFW.png|500px|right]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Verification of Joint Operation ==&lt;br /&gt;
Now the correct operation of the joints needs to be verified.&lt;br /&gt;
* Be ready to press the &#039;&#039;&#039;emergency stop&#039;&#039;&#039; button. Changing parameters can result in unexpected motion, especially when setting up an unknown axis.&lt;br /&gt;
* Once the controller has booted up, the motor module LEDs are blinking green, &#039;&#039;&#039;connect&#039;&#039;&#039;, &#039;&#039;&#039;reset&#039;&#039;&#039; and &#039;&#039;&#039;enable&#039;&#039;&#039; the robot.&lt;br /&gt;
* Try to move the joint by clicking on the buttons in the jog section of CPRog/iRC.&lt;br /&gt;
* If the joint moves correctly check whether it references. Click &#039;&#039;&#039;Reference&#039;&#039;&#039;, then &#039;&#039;&#039;Reset&#039;&#039;&#039;, &#039;&#039;&#039;Enable&#039;&#039;&#039;, &#039;&#039;&#039;Reference axis&#039;&#039;&#039;. Watch for collisions and use the emergency stop if necessary - the referencing motion might not stop if not set up correctly. If the joint shows up as &amp;quot;referenced&amp;quot; the referencing works correctly. The position lag error is the expected state, reset it by clicking &#039;&#039;&#039;Reset&#039;&#039;&#039; and &#039;&#039;&#039;Enable&#039;&#039;&#039;.&lt;br /&gt;
* Next set up a program that moves the axis over 30-60min. Observe the module temperature in CPRog/iRC and the motor temperature (there are no sensors in the motor itself). Increase the motor current, if the axis is struggling to move or reduce the motor current if the motor or motor module is getting hot.&lt;br /&gt;
&lt;br /&gt;
= Parameter File =&lt;br /&gt;
&lt;br /&gt;
The parameter files contain a set of parameter for each joint of the robot. &amp;quot;Joint0&amp;quot; is the set for the first axis, &amp;quot;Joint1&amp;quot; for the second etc. The parameter &amp;quot;ID&amp;quot; is the CAN ID in decimal format as selected at switch/jumper/etc at the module.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Joint0 ID=&amp;quot;16&amp;quot; Version=&amp;quot;Product 0x42 FW 0x02 0x10&amp;quot;...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Currently there are two parameter formats: V1 and V2. V2 is used by newer BLDC axis controllers (e.g. ReBeL joints). The parameter format is preselected by a configuration parameter.&lt;br /&gt;
&lt;br /&gt;
== Parameter V1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Parameter set for Commonplace Robotics robotics control  /--&amp;gt;&lt;br /&gt;
&amp;lt;!-- Target Robot: igus robolink                              /--&amp;gt;&lt;br /&gt;
&amp;lt;!-- support@cpr-robots.com                                   /--&amp;gt;&lt;br /&gt;
&amp;lt;AmpParameter&amp;gt;&lt;br /&gt;
    &amp;lt;Configuration ModuleType=&amp;quot;RailStepperV02&amp;quot; NrOfJoints=&amp;quot;3&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Joint0 ID=&amp;quot;16&amp;quot; Version=&amp;quot;Product 0x42 FW 0x02 0x10&amp;quot;&lt;br /&gt;
         ComTimeOut=&amp;quot;2000&amp;quot; MaxCurrent=&amp;quot;200&amp;quot; MaxLag=&amp;quot;5000&amp;quot; EncoderErrorDetection=&amp;quot;0&amp;quot; PosP=&amp;quot;1.000&amp;quot; PosI=&amp;quot;0.0000&amp;quot; PosD=&amp;quot;0.000&amp;quot; PosAWU=&amp;quot;30&amp;quot;&lt;br /&gt;
         Encoder=&amp;quot;True&amp;quot; SwapEncoderDirection=&amp;quot;False&amp;quot; EndSwitchRising=&amp;quot;True&amp;quot; StopOnEndSwitch=&amp;quot;False&amp;quot; UseIndexAsRef=&amp;quot;False&amp;quot;&lt;br /&gt;
         RefStraight=&amp;quot;False&amp;quot; RefSinus=&amp;quot;False&amp;quot; RefHalf=&amp;quot;True&amp;quot; SinusRefTics=&amp;quot;2000&amp;quot; SinusRefMaxCycles=&amp;quot;6&amp;quot;&lt;br /&gt;
         Offset=&amp;quot;0&amp;quot; RefSpeed=&amp;quot;50&amp;quot; RefSpeedSlow=&amp;quot;10&amp;quot; RefFromBothSides=&amp;quot;True&amp;quot;&lt;br /&gt;
         SGThreshold=&amp;quot;2&amp;quot; CSLoad=&amp;quot;18&amp;quot; CSStart=&amp;quot;18&amp;quot; CSIdle=&amp;quot;6&amp;quot; CSRef=&amp;quot;15&amp;quot; StartArea=&amp;quot;200&amp;quot;&lt;br /&gt;
         MinSupplyVoltage=&amp;quot;500&amp;quot; MaxTemperature=&amp;quot;500&amp;quot; Microstepping=&amp;quot;0&amp;quot;&lt;br /&gt;
        /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Joint1 ID=&amp;quot;32&amp;quot; Version=&amp;quot;Product 0x42 FW 0x02 0x10&amp;quot;&lt;br /&gt;
         ComTimeOut=&amp;quot;2000&amp;quot; MaxCurrent=&amp;quot;200&amp;quot; MaxLag=&amp;quot;5000&amp;quot; EncoderErrorDetection=&amp;quot;0&amp;quot; PosP=&amp;quot;1.000&amp;quot; PosI=&amp;quot;0.0000&amp;quot; PosD=&amp;quot;0.000&amp;quot; PosAWU=&amp;quot;30&amp;quot;&lt;br /&gt;
         Encoder=&amp;quot;True&amp;quot; SwapEncoderDirection=&amp;quot;False&amp;quot; EndSwitchRising=&amp;quot;True&amp;quot; StopOnEndSwitch=&amp;quot;False&amp;quot; UseIndexAsRef=&amp;quot;False&amp;quot;&lt;br /&gt;
         RefStraight=&amp;quot;False&amp;quot; RefSinus=&amp;quot;False&amp;quot; RefHalf=&amp;quot;True&amp;quot; SinusRefTics=&amp;quot;2000&amp;quot; SinusRefMaxCycles=&amp;quot;6&amp;quot;&lt;br /&gt;
         Offset=&amp;quot;891&amp;quot; RefSpeed=&amp;quot;-50&amp;quot; RefSpeedSlow=&amp;quot;-10&amp;quot; RefFromBothSides=&amp;quot;True&amp;quot;&lt;br /&gt;
         SGThreshold=&amp;quot;2&amp;quot; CSLoad=&amp;quot;26&amp;quot; CSStart=&amp;quot;26&amp;quot; CSIdle=&amp;quot;10&amp;quot; CSRef=&amp;quot;20&amp;quot; StartArea=&amp;quot;200&amp;quot;&lt;br /&gt;
         MinSupplyVoltage=&amp;quot;500&amp;quot; MaxTemperature=&amp;quot;500&amp;quot; Microstepping=&amp;quot;0&amp;quot;&lt;br /&gt;
        /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Joint2 ID=&amp;quot;48&amp;quot; Version=&amp;quot;Product 0x42 FW 0x04 0x07&amp;quot;&lt;br /&gt;
         ComTimeOut=&amp;quot;3000&amp;quot; MaxCurrent=&amp;quot;0&amp;quot; MaxLag=&amp;quot;5000&amp;quot; EncoderErrorDetection=&amp;quot;1000&amp;quot; PosP=&amp;quot;1.000&amp;quot; PosI=&amp;quot;0.0000&amp;quot; PosD=&amp;quot;0.000&amp;quot; PosAWU=&amp;quot;0&amp;quot;&lt;br /&gt;
         Encoder=&amp;quot;True&amp;quot; SwapEncoderDirection=&amp;quot;False&amp;quot; EndSwitchRising=&amp;quot;True&amp;quot; StopOnEndSwitch=&amp;quot;False&amp;quot; UseIndexAsRef=&amp;quot;False&amp;quot;&lt;br /&gt;
         RefStraight=&amp;quot;True&amp;quot; RefSinus=&amp;quot;False&amp;quot; RefHalf=&amp;quot;False&amp;quot; SinusRefTics=&amp;quot;500&amp;quot; SinusRefMaxCycles=&amp;quot;6&amp;quot;&lt;br /&gt;
         Offset=&amp;quot;-1&amp;quot; RefSpeed=&amp;quot;40&amp;quot; RefSpeedSlow=&amp;quot;5&amp;quot; RefFromBothSides=&amp;quot;True&amp;quot;&lt;br /&gt;
         SGThreshold=&amp;quot;2&amp;quot; CSLoad=&amp;quot;10&amp;quot; CSStart=&amp;quot;10&amp;quot; CSIdle=&amp;quot;3&amp;quot; CSRef=&amp;quot;8&amp;quot; StartArea=&amp;quot;200&amp;quot;&lt;br /&gt;
         MinSupplyVoltage=&amp;quot;500&amp;quot; MaxTemperature=&amp;quot;430&amp;quot; Microstepping=&amp;quot;0&amp;quot;&lt;br /&gt;
        /&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
&amp;lt;/AmpParameter&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please only change the values in  quote marks, do not delete any quote marks, do not use decimal separators. This config file is case sensitive, so lower case and upper case matters.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Encoder Parameters===&lt;br /&gt;
If the additional external axis is equipped with a motor encoder enter the parameters as shown below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;All numbers, other than those for PosP PosI and PosD must be integer.&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! colspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! !! FW version 8.9 and older !! FW version 8.10 and newer&lt;br /&gt;
|-&lt;br /&gt;
| ComTimeOut || Maximum duration without communication before the communication error state ([[Error_Codes#CPRCANv2|error COM]]) is entered || Measured Bus frequency (&#039;&#039;read only&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| MaxCurrent || not used || not used &lt;br /&gt;
|-&lt;br /&gt;
| MaxLag || How many &#039;&#039;&#039;encoder tics&#039;&#039;&#039; is the encoder signal allowed to lag behind the desired motor position. See also parameter EncoderErrorDetection. || How many &#039;&#039;&#039;motor full steps&#039;&#039;&#039; the encoder signal allowed to lag behind the desired motor position until encoder error state ([[Error_Codes#CPRCANv2|error ENC]]) is entered.&lt;br /&gt;
|-&lt;br /&gt;
| EncoderErrorDetection || Encoder error detection: Number of tics the encoder signal is allowed to lag behind the desired motor position before the encoder error state ([[Error_Codes#CPRCANv2|error ENC]]) is entered. Divide this value by the [[Gear Scale]] to translate to degrees or mm. || not used&lt;br /&gt;
|-&lt;br /&gt;
| PosP || PID control parameter P - do not change || not used&lt;br /&gt;
|-&lt;br /&gt;
| PosI || PID control parameter I - do not change || not used&lt;br /&gt;
|-&lt;br /&gt;
| PosD || PID control parameter D - do not change || not used&lt;br /&gt;
|-&lt;br /&gt;
| PosAWU || PID control parameter anti wind up - do not change. This value has no effect if PosI is 0. || not used&lt;br /&gt;
|-&lt;br /&gt;
| Encoder || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Enable or disable the encoder (disable only if you got a motor without encoder)&lt;br /&gt;
|-&lt;br /&gt;
| SwapEncoderDirection || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Inverts the encoder direction - change if the encoder counts opposite to the motor. This does not change the motion direction, the axis will not move correctly if set to the wrong value!&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Reference/Ini Sensor Parameters===&lt;br /&gt;
These parameters define how the axis references itself. For referencing the referencing/ini switch and/or the motor&#039;s index pulse can be used, different motion patterns are available depending on the axis types.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;All numbers must integer.&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! colspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! !! FW version 8.9 and older !! FW version 8.10 and newer&lt;br /&gt;
|-&lt;br /&gt;
| EndSwitchRising || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Trigger on the rising edge (set to True) or on the falling edge (&amp;quot;False&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| StopOnEndSwitch || Stop referencing motion when the end-switch is triggered || not used&lt;br /&gt;
|-&lt;br /&gt;
| UseIndexAsRef || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Use the index pulse of the motor for referencing. Set to false to use the referencing switch.&lt;br /&gt;
|-&lt;br /&gt;
| UseIniAndIndexAsRef || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Use the index pulse and the referencing switch for referencing.&lt;br /&gt;
|-&lt;br /&gt;
| RefStraight || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | For linear axes: Moves in one direction until the referencing switch is reached.&lt;br /&gt;
|-&lt;br /&gt;
| RefSinus || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Rotational axes: Sinusoidal search motion (increasing back and forth motion until the switch is reached).&lt;br /&gt;
|-&lt;br /&gt;
| RefHalf || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | For rotational axes with half-disc inis. The state of the referencing switch determines the search direction.&lt;br /&gt;
|-&lt;br /&gt;
| SinusRefTics || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | How many encoder tics should  the sinusoidal search motion be incremented by per period&lt;br /&gt;
|-&lt;br /&gt;
| SinusRefMaxCycles || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | How many periods of sinusoidal search motion should be performed&lt;br /&gt;
|-&lt;br /&gt;
| Offset || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Distance of the 0 position to the referencing switch in encoder tics (divide by the [[Gear Scale]] to get degrees or mm). To invert the direction of the offset, reverse the sign (+/-).&lt;br /&gt;
|-&lt;br /&gt;
| RefSpeed || Sets the initial referencing speed: lower is slower. To invert the direction of movement, reverse the sign (+/-) of the number. The value -1 is not allowed, use -2 instead. || Sets the initial referencing speed in RPM.&lt;br /&gt;
|-&lt;br /&gt;
| RefSpeedSlow || Sets the precision referencing speed: lower is slower and more precise. To invert the direction of movement, reverse the sign (+/-) of the number. The value -1 is not allowed, use -2 instead. || Sets the precision referencing speed in RPM. To invert the direction of referencing movement, reverse the sign (+/-) of the number. Changing the direction here will also change the RefSpeed direction. &lt;br /&gt;
|-&lt;br /&gt;
| RefFromBothSides || Use the midpoint of the trigger signal instead of the rising/falling edge. || not used&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Motor Parameters===&lt;br /&gt;
&#039;&#039;&#039;All numbers must be integer.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please read [[Motor Current Parameter]] for a translation of the CS parameters to amps. Values between 1 and 32 are allowed. Low values mean less current and will stall the axis under load, large values will overheat the motor/module.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! colspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! !! FW version 8.9 and older !! FW version 8.10 and newer&lt;br /&gt;
|-&lt;br /&gt;
| SGThreshold || TMC2660 StallGuard threshold || not used&lt;br /&gt;
|-&lt;br /&gt;
| CSLoad || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Current under load conditions [[Motor_Current_Parameter|(arbitrary units)]]&lt;br /&gt;
|-&lt;br /&gt;
| CSStart || Current when starting a motion [[Motor_Current_Parameter|(arbitrary units)]] || not used&lt;br /&gt;
|-&lt;br /&gt;
| CSIdle || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Current when position is held [[Motor_Current_Parameter|(arbitrary units)]]&lt;br /&gt;
|-&lt;br /&gt;
| CSRef || Current during referencing [[Motor_Current_Parameter|(arbitrary units)]] || not used&lt;br /&gt;
|-&lt;br /&gt;
| StartArea || Speed of the start up current - do not change || not used&lt;br /&gt;
|-&lt;br /&gt;
| MinSupplyVoltage || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Minimum voltage in ADC ticks. Below this the low voltage or estop error ([[Error_Codes#CPRCANv2|error LOWV/ESTOP]]) occurs. &#039;0&#039; will turn this feature off.&lt;br /&gt;
|-&lt;br /&gt;
| MaxTemperature || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Maximum temperature. If the temperature of the electronics module (not motor) exceeds this value the over temperature error ([[Error_Codes#CPRCANv2|error TEMP]]) occurs and the motor is shut off.&lt;br /&gt;
|-&lt;br /&gt;
| Microstepping || Defines the microstepping - set to 0, do not change || Microsteps in &#039;&#039;256/(2^n)&#039;&#039;, n = this setting. Default is 5, range is 1-8. Set lower if you encounter unsmooth motion. Set higher if you need to go fast. &lt;br /&gt;
|-&lt;br /&gt;
| SlowMotionConfig || not used || not used&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parameter V2 ==&lt;br /&gt;
This format specifies one parameter per line, identified by index and subindex numbers. Name and unit are given for readability.&lt;br /&gt;
&lt;br /&gt;
Please note that some parameters are only informational and can not be written. This includes serial number, firmware version and CAN ID among others.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Parameter set for Commonplace Robotics robotics control  /--&amp;gt;&lt;br /&gt;
&amp;lt;!-- Target Robot: igus robolink                              /--&amp;gt;&lt;br /&gt;
&amp;lt;!-- support@cpr-robots.com                                   /--&amp;gt;&lt;br /&gt;
&amp;lt;AmpParameter&amp;gt;&lt;br /&gt;
    &amp;lt;Configuration ModuleType=&amp;quot;ObjectLibrary&amp;quot; NrOfJoints=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Joint0 ID=&amp;quot;16&amp;quot; Version=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;0&amp;quot;  SubIndex=&amp;quot;0&amp;quot;     Name=&amp;quot;Serialno.&amp;quot;                                 Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;0&amp;quot;  SubIndex=&amp;quot;1&amp;quot;     Name=&amp;quot;Firmware version&amp;quot;                          Value=&amp;quot;135425&amp;quot;       Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;0&amp;quot;  SubIndex=&amp;quot;2&amp;quot;     Name=&amp;quot;Hardwareno.&amp;quot;                               Value=&amp;quot;80&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;0&amp;quot;  SubIndex=&amp;quot;3&amp;quot;     Name=&amp;quot;min. supply Voltage&amp;quot;                       Value=&amp;quot;20000&amp;quot;        Unit=&amp;quot;mV&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;0&amp;quot;  SubIndex=&amp;quot;4&amp;quot;     Name=&amp;quot;max. Boardtemp&amp;quot;                            Value=&amp;quot;70000&amp;quot;        Unit=&amp;quot;m°C&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;0&amp;quot;     Name=&amp;quot;Encoder Tics&amp;quot;                              Value=&amp;quot;4000&amp;quot;         Unit=&amp;quot;1/Rev&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;1&amp;quot;     Name=&amp;quot;no. of pole pairs&amp;quot;                         Value=&amp;quot;4&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;2&amp;quot;     Name=&amp;quot;Winding resistance&amp;quot;                        Value=&amp;quot;50&amp;quot;           Unit=&amp;quot;mOhm&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;3&amp;quot;     Name=&amp;quot;Winding inductance&amp;quot;                        Value=&amp;quot;30&amp;quot;           Unit=&amp;quot;mH&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;4&amp;quot;     Name=&amp;quot;maxRPM&amp;quot;                                    Value=&amp;quot;3000&amp;quot;         Unit=&amp;quot;RPM&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;5&amp;quot;     Name=&amp;quot;max. Motortemp.&amp;quot;                           Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;m°C&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;6&amp;quot;     Name=&amp;quot;max. current&amp;quot;                              Value=&amp;quot;8000&amp;quot;         Unit=&amp;quot;mA&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;7&amp;quot;     Name=&amp;quot;StartUpMethod&amp;quot;                             Value=&amp;quot;4&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;8&amp;quot;     Name=&amp;quot;Rotor offset&amp;quot;                              Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;Tics&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;9&amp;quot;     Name=&amp;quot;Encoder inverted&amp;quot;                          Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;10&amp;quot;    Name=&amp;quot;Motor inverted&amp;quot;                            Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;11&amp;quot;    Name=&amp;quot;OpenLoopCurrent&amp;quot;                           Value=&amp;quot;2000&amp;quot;         Unit=&amp;quot;mA&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;12&amp;quot;    Name=&amp;quot;OpenLoopCurrent Standstill&amp;quot;                Value=&amp;quot;50&amp;quot;           Unit=&amp;quot;mA&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;13&amp;quot;    Name=&amp;quot;OpenLoopCurrent Calibration&amp;quot;               Value=&amp;quot;3200&amp;quot;         Unit=&amp;quot;mA&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;14&amp;quot;    Name=&amp;quot;CalibrationTime&amp;quot;                           Value=&amp;quot;50&amp;quot;           Unit=&amp;quot;ms&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;15&amp;quot;    Name=&amp;quot;RotorCalibrated&amp;quot;                           Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;16&amp;quot;    Name=&amp;quot;ThirdHarmonicActive&amp;quot;                       Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;0&amp;quot;     Name=&amp;quot;Controltype&amp;quot;                               Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;1&amp;quot;     Name=&amp;quot;Referencing type&amp;quot;                          Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;2&amp;quot;     Name=&amp;quot;Referencing Offset&amp;quot;                        Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;Tics&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;3&amp;quot;     Name=&amp;quot;Referencing speed&amp;quot;                         Value=&amp;quot;30&amp;quot;           Unit=&amp;quot;RPM&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;4&amp;quot;     Name=&amp;quot;Referencing speed slow&amp;quot;                    Value=&amp;quot;10&amp;quot;           Unit=&amp;quot;RPM&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;5&amp;quot;     Name=&amp;quot;Referencing switch type&amp;quot;                   Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;6&amp;quot;     Name=&amp;quot;max. positionlag&amp;quot;                          Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;Tics&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;7&amp;quot;     Name=&amp;quot;Enable Break&amp;quot;                              Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;8&amp;quot;     Name=&amp;quot;Break PWM high&amp;quot;                            Value=&amp;quot;70&amp;quot;           Unit=&amp;quot;%&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;9&amp;quot;     Name=&amp;quot;Break PWM low&amp;quot;                             Value=&amp;quot;70&amp;quot;           Unit=&amp;quot;%&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;10&amp;quot;    Name=&amp;quot;IPO Position&amp;quot;                              Value=&amp;quot;200000&amp;quot;       Unit=&amp;quot;Tics&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;11&amp;quot;    Name=&amp;quot;IPO Velocity&amp;quot;                              Value=&amp;quot;200000&amp;quot;       Unit=&amp;quot;Tics/10ms&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;12&amp;quot;    Name=&amp;quot;Axis inverted&amp;quot;                             Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;0&amp;quot;     Name=&amp;quot;Position P&amp;quot;                                Value=&amp;quot;20&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;1&amp;quot;     Name=&amp;quot;Position I&amp;quot;                                Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;2&amp;quot;     Name=&amp;quot;Position D&amp;quot;                                Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;3&amp;quot;     Name=&amp;quot;Position AntiWindUp&amp;quot;                       Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;4&amp;quot;     Name=&amp;quot;Position min&amp;quot;                              Value=&amp;quot;-2500&amp;quot;        Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;5&amp;quot;     Name=&amp;quot;Position max&amp;quot;                              Value=&amp;quot;2500&amp;quot;         Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;6&amp;quot;     Name=&amp;quot;Position sensor&amp;quot;                           Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;7&amp;quot;     Name=&amp;quot;Velocity P&amp;quot;                                Value=&amp;quot;100&amp;quot;          Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;8&amp;quot;     Name=&amp;quot;Velocity I&amp;quot;                                Value=&amp;quot;20&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;9&amp;quot;     Name=&amp;quot;Velocity D&amp;quot;                                Value=&amp;quot;5&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;10&amp;quot;    Name=&amp;quot;Velocity AntiWindUp&amp;quot;                       Value=&amp;quot;409600&amp;quot;       Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;11&amp;quot;    Name=&amp;quot;Velocity min&amp;quot;                              Value=&amp;quot;-2048&amp;quot;        Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;12&amp;quot;    Name=&amp;quot;Velocity max&amp;quot;                              Value=&amp;quot;2048&amp;quot;         Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;13&amp;quot;    Name=&amp;quot;Velocity sensor&amp;quot;                           Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;14&amp;quot;    Name=&amp;quot;DQ P&amp;quot;                                      Value=&amp;quot;20&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;15&amp;quot;    Name=&amp;quot;DQ I&amp;quot;                                      Value=&amp;quot;2&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;16&amp;quot;    Name=&amp;quot;DQ D&amp;quot;                                      Value=&amp;quot;2&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;17&amp;quot;    Name=&amp;quot;DQ AntiWindUp&amp;quot;                             Value=&amp;quot;409600&amp;quot;       Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;18&amp;quot;    Name=&amp;quot;DQ min&amp;quot;                                    Value=&amp;quot;-1024&amp;quot;        Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;19&amp;quot;    Name=&amp;quot;DQ max&amp;quot;                                    Value=&amp;quot;1024&amp;quot;         Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;20&amp;quot;    Name=&amp;quot;OpenLoop current P&amp;quot;                        Value=&amp;quot;20&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;21&amp;quot;    Name=&amp;quot;OpenLoop current I&amp;quot;                        Value=&amp;quot;2&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;22&amp;quot;    Name=&amp;quot;OpenLoop current D&amp;quot;                        Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;23&amp;quot;    Name=&amp;quot;OpenLoop current AntiWindUp&amp;quot;               Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;24&amp;quot;    Name=&amp;quot;OpenLoop current min&amp;quot;                      Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;25&amp;quot;    Name=&amp;quot;OpenLoop current max&amp;quot;                      Value=&amp;quot;1024&amp;quot;         Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;4&amp;quot;  SubIndex=&amp;quot;0&amp;quot;     Name=&amp;quot;CAN max. missed coms&amp;quot;                      Value=&amp;quot;1000&amp;quot;         Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;4&amp;quot;  SubIndex=&amp;quot;1&amp;quot;     Name=&amp;quot;CAN ID Source&amp;quot;                             Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;4&amp;quot;  SubIndex=&amp;quot;2&amp;quot;     Name=&amp;quot;CAN ID&amp;quot;                                    Value=&amp;quot;32&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;4&amp;quot;  SubIndex=&amp;quot;3&amp;quot;     Name=&amp;quot;SPI Active&amp;quot;                                Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Joint0&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Board Parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Serial no. || Serial number of the product. Used to identify the date of manufacture.&lt;br /&gt;
|-&lt;br /&gt;
| Firmwareversion || Firmware version number to identify the current software version.&lt;br /&gt;
|-&lt;br /&gt;
| Hardwareno. || Hardware version number to identify the hardware configuration used.&lt;br /&gt;
|-&lt;br /&gt;
| min. supply Voltage || Minimum permissible supply voltage. The minimum supply voltage should be approx. 2V below the nominal voltage. If the supply voltage falls below this limit, the board issues an error message.&lt;br /&gt;
|-&lt;br /&gt;
| max. Boardtemp. || Maximum permissible board temperature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Motor Parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Encoder Tics || Number of encoder pulses per revolution according to data sheet.&lt;br /&gt;
|-&lt;br /&gt;
| No. of Polepairs || Number of pole pairs in the motor according to the data sheet.&lt;br /&gt;
|-&lt;br /&gt;
| max. RPM || Maximum rotational speed of the motor. Setting is made according to the data sheet of the motor or on the basis of subsequent components. The value 0 cancels the limitation.&lt;br /&gt;
|-&lt;br /&gt;
| max. Motortemp. || Maximum temperature in the motor. The measurement is performed via an optional sensor. The value 0 deactivates the query.&lt;br /&gt;
|-&lt;br /&gt;
| max. Current || Maximum motor current according to data sheet.&lt;br /&gt;
|-&lt;br /&gt;
| StartUpMethod || Method used to set up the motor when starting the controller. With the automatic start options, the motor starts IPO afterwards. &lt;br /&gt;
* 0: Openloop&lt;br /&gt;
* 1: Closedloop with rotor alignment&lt;br /&gt;
* 2: Closedloop with index search&lt;br /&gt;
* 3: Closedloop for DC Motor&lt;br /&gt;
* 4: Closedloop with rotor alignment and check for free rotation &lt;br /&gt;
* 10: Closedloop with rotor alignment and autostart&lt;br /&gt;
|-&lt;br /&gt;
| EncoderInverted || Setting for the direction of rotation of the encoder. The direction of rotation of the signals at the input of the controller must be clockwise according to DIN EN 60034-8. After a change, the controller must be restarted. &lt;br /&gt;
* 0: Encoder not inverted&lt;br /&gt;
* 1: Encoder inverted&lt;br /&gt;
|-&lt;br /&gt;
| MotorInverted || The direction of rotation of the motor must be clockwise according to DIN EN 60034-8. If the setting is incorrect, the motor does not rotate. Only the motor current increases. &lt;br /&gt;
* 0: Motor not inverted&lt;br /&gt;
* 1: Motor inverted&lt;br /&gt;
|-&lt;br /&gt;
| OpenLoopCurrent || Setpoint current for the openloop control of the motor.&lt;br /&gt;
|-&lt;br /&gt;
| OpenLoopCurrent Standstill || Setpoint current for the openloop control at standstill.&lt;br /&gt;
|-&lt;br /&gt;
| OpenLoopCurrent Calibration || Set current for rotor alignment.&lt;br /&gt;
|-&lt;br /&gt;
| Calibration Time || Duration for the alignment of the rotor.&lt;br /&gt;
|-&lt;br /&gt;
| Motor Nominal Current || Maximum motor current that must not be exceeded for more then 2 seconds continously.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Axis Parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Reserved || Reserved for future use.&lt;br /&gt;
|-&lt;br /&gt;
| ReferencingType || Selection for the referencing type. &lt;br /&gt;
* 0: No referencing current position = 0&lt;br /&gt;
* 1: Linear motion&lt;br /&gt;
* 2: Sinusoidal movement (sinusoidal search for the sensor)&lt;br /&gt;
* 3: Half disks (referencing method for axes equipped with a half disk, e.g. Robolink DP)&lt;br /&gt;
* 4: Gearencoder (only Rebel)&lt;br /&gt;
|-&lt;br /&gt;
| ReferencingOffset || Offset for the axis position after referencing.&lt;br /&gt;
|-&lt;br /&gt;
| ReferencingSpeed || Speed for approaching the sensor. &lt;br /&gt;
&#039;&#039;&#039;If the axis is referenced in the wrong direction, this parameter can be set to negative.&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| ReferencingSpeedSlow || Speed for fine positioning of the axis during homing. &lt;br /&gt;
&#039;&#039;&#039;If the axis is referenced in the wrong direction, this parameter can be set to negative.&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| ReferencingSwitchType || Type of the reference sensor. &lt;br /&gt;
* 0: n.C.&lt;br /&gt;
* 1: n.O.&lt;br /&gt;
|-&lt;br /&gt;
| max. Positionlag || Permissible position error of the axis. With fast movements, the axis runs after the position setpoint. If the limit value is exceeded, the axis stops and an error message appears. If the value is set to 0, there is no monitoring.&lt;br /&gt;
|-&lt;br /&gt;
| Break Type || Parameter for activating a brake on the robot axis. If the robot has a holding brake, which should be controlled by the motor controller, this value must be set. The brakes are released when the axes are activated. &lt;br /&gt;
* 0: No brake&lt;br /&gt;
* 1: Friction brake&lt;br /&gt;
* 2: Blocking brake. &lt;br /&gt;
In blocking brake mode, a free-positioning movement occurs. A blocking brake means a pin or similar, which blocks the rotor. A friction brake describes a disc brake.&lt;br /&gt;
|-&lt;br /&gt;
| Break PWM High || If a brake is configured on the axis, this parameter specifies the PWM value for releasing the brake.&lt;br /&gt;
|-&lt;br /&gt;
| Break PWM Low || Voltage to hold the brake after releasing the brake; the motor controller lowers the output voltage to the specified value.&lt;br /&gt;
|-&lt;br /&gt;
| IPO Position || Positive position value for the IPO. In standalone mode, the IPO moves this value symmetrically around the zero point, from -IPO position to IPO position.&lt;br /&gt;
|-&lt;br /&gt;
| IPO Velocity || Speed for IPO mode in standalone operation.&lt;br /&gt;
|-&lt;br /&gt;
| Axis inverted || Changes the direction of the axis.&lt;br /&gt;
|-&lt;br /&gt;
| Gear ratio || Gear ratio of the gear unit. For i=1:50 correspondingly 50. Only integer values are possible.&lt;br /&gt;
|-&lt;br /&gt;
| Axis Enc Type || Encoder type.&lt;br /&gt;
* 0: No absolute value transmitter (e.g. linear axis with referencing switch)&lt;br /&gt;
* 1: Hatron absolute value transmitter (e.g. ReBeL-01 and ReBeL-02)&lt;br /&gt;
* 2: ICMU absolute value transmitter (e.g. ReBeL-03)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Control Parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Position P || P component for position control.&lt;br /&gt;
|-&lt;br /&gt;
| Position I || I component for position control.&lt;br /&gt;
|-&lt;br /&gt;
| Position P scale || Scaling of the P component by 2&amp;lt;sup&amp;gt;x&amp;lt;/sup&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| Position min. || Minimum limitation for the output of the position control.&lt;br /&gt;
|-&lt;br /&gt;
| Position max. || Maximum limitation for the output of the position control.&lt;br /&gt;
|-&lt;br /&gt;
| Velocity P || P component for speed control.&lt;br /&gt;
|-&lt;br /&gt;
| Velocity I || I portion for speed control.&lt;br /&gt;
|-&lt;br /&gt;
| Velocity P scale || Scaling of the P component in 2&amp;lt;sup&amp;gt;x&amp;lt;/sup&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| Velocity min. || Minimum limitation for the output of the speed control.&lt;br /&gt;
|-&lt;br /&gt;
| Velocity max. || Maximum limitation for the output of the speed control.&lt;br /&gt;
|-&lt;br /&gt;
| DQ-P || P component for DQ control.&lt;br /&gt;
|-&lt;br /&gt;
| DQ-I || I component for DQ control.&lt;br /&gt;
|-&lt;br /&gt;
| DQ back calc || Backcalculation factor for DQ controller.&lt;br /&gt;
|-&lt;br /&gt;
| DQ-min. || Minimum limitation for the output of the DQ control.&lt;br /&gt;
|-&lt;br /&gt;
| DQ-max. || Maximum limitation for the output of the DQ control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop P || P component for Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop I || I component for Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop D || D component for Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop AntiWindUp || AntiWindUp for Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop min. || Minimum limitation for the output of the Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop max. || Maximum limitation for the output of the Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Communication Parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| CAN max. missed Coms || Maximum number of failed communication attempts on the CAN bus. Exceeding the value leads to the motor controller being switched off.&lt;br /&gt;
|-&lt;br /&gt;
| CAN ID Source || Source for the CAN ID. &lt;br /&gt;
* 1: Hardware jumper&lt;br /&gt;
* 2: Parameter set.&lt;br /&gt;
|-&lt;br /&gt;
| CAN ID || CAN ID for the controller.&lt;br /&gt;
|-&lt;br /&gt;
| SPI Active || Enable SPI communication.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:CPRog]][[Category:Configuration]][[Category:Referencing]]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=File:ConfigurationFilesFW.png&amp;diff=1062</id>
		<title>File:ConfigurationFilesFW.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=File:ConfigurationFilesFW.png&amp;diff=1062"/>
		<updated>2026-06-15T09:01:34Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=File:FirmwareParameterConfiguration.png&amp;diff=1061</id>
		<title>File:FirmwareParameterConfiguration.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=File:FirmwareParameterConfiguration.png&amp;diff=1061"/>
		<updated>2026-06-15T08:52:09Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Firmware_Parameter_Configuration&amp;diff=1060</id>
		<title>Firmware Parameter Configuration</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Firmware_Parameter_Configuration&amp;diff=1060"/>
		<updated>2026-06-12T11:57:11Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;While most robot specific settings are stored in the configuration files in CPRog/iRC and on the embedded control axis specific settings are stored in the axis control modules themselves. This includes parameters for motion, referencing and motor current. This article explains these parameters and how to access them.&lt;br /&gt;
&lt;br /&gt;
This article applies to all robots with modular control, robolink DCI and ReBeL joints. It does not apply to the Mover robots.&lt;br /&gt;
&lt;br /&gt;
= General Procedure =&lt;br /&gt;
* Load the firmware parameters from the axis modules&lt;br /&gt;
* Change values using a basic text editor&lt;br /&gt;
* Upload the file to the modules&lt;br /&gt;
* Restart the robot&lt;br /&gt;
&lt;br /&gt;
Since iRC version 15.0.0 you can change the firmware parameters directly in software. Simply go to &amp;quot;File -&amp;gt; Firmware Configuration&amp;quot; and &amp;quot;Load parameters from axes&amp;quot;. Change the values and upload them back to the modules via &amp;quot;Write parameters to axes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Download Configuration ==&lt;br /&gt;
&lt;br /&gt;
* Open CPRog/iRC&lt;br /&gt;
* Connect to the robot via Ethernet or a USB-CAN-Adapter&lt;br /&gt;
* Check if all green LEDs on top of &#039;&#039;&#039;all&#039;&#039;&#039; motor modules are blinking. If a module is not blinking, it might not be configured correctly. Did you save the project and restart the hardware?&lt;br /&gt;
* Click &amp;quot;File&amp;quot; at the top of CPRog/iRC to access the backstage menu&lt;br /&gt;
* Click &amp;quot;Get Amp configuration&amp;quot; (see the image below)&lt;br /&gt;
* Now a parameter file is written in the Data\Backup directory in the CPRog/iRC installation directory (e.g. C:\CPRog\Data\Backup or C:\iRC-igusRobotControl\Data\Backup)&lt;br /&gt;
&lt;br /&gt;
== Upload Configuration ==&lt;br /&gt;
&lt;br /&gt;
* Change the file according to your requirements using a basic text editor like Notepad or Notepad++ (see section Parameter File below)&lt;br /&gt;
* Click &amp;quot;Set Amp configuration&amp;quot;&lt;br /&gt;
* Choose the updated .dat file&lt;br /&gt;
* Wait until all parameters are written, approx 20s. Another backup of the previous values is also created.&lt;br /&gt;
* For some parameter, e.g. the encoder direction, the control needs a cold restart&lt;br /&gt;
* Test if the changes result in a better performance.&lt;br /&gt;
&lt;br /&gt;
[[File:CPRogAmpConfig.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Verification of Joint Operation ==&lt;br /&gt;
Now the correct operation of the joints needs to be verified.&lt;br /&gt;
* Be ready to press the &#039;&#039;&#039;emergency stop&#039;&#039;&#039; button. Changing parameters can result in unexpected motion, especially when setting up an unknown axis.&lt;br /&gt;
* Once the controller has booted up, the motor module LEDs are blinking green, &#039;&#039;&#039;connect&#039;&#039;&#039;, &#039;&#039;&#039;reset&#039;&#039;&#039; and &#039;&#039;&#039;enable&#039;&#039;&#039; the robot.&lt;br /&gt;
* Try to move the joint by clicking on the buttons in the jog section of CPRog/iRC.&lt;br /&gt;
* If the joint moves correctly check whether it references. Click &#039;&#039;&#039;Reference&#039;&#039;&#039;, then &#039;&#039;&#039;Reset&#039;&#039;&#039;, &#039;&#039;&#039;Enable&#039;&#039;&#039;, &#039;&#039;&#039;Reference axis&#039;&#039;&#039;. Watch for collisions and use the emergency stop if necessary - the referencing motion might not stop if not set up correctly. If the joint shows up as &amp;quot;referenced&amp;quot; the referencing works correctly. The position lag error is the expected state, reset it by clicking &#039;&#039;&#039;Reset&#039;&#039;&#039; and &#039;&#039;&#039;Enable&#039;&#039;&#039;.&lt;br /&gt;
* Next set up a program that moves the axis over 30-60min. Observe the module temperature in CPRog/iRC and the motor temperature (there are no sensors in the motor itself). Increase the motor current, if the axis is struggling to move or reduce the motor current if the motor or motor module is getting hot.&lt;br /&gt;
&lt;br /&gt;
= Parameter File =&lt;br /&gt;
&lt;br /&gt;
The parameter files contain a set of parameter for each joint of the robot. &amp;quot;Joint0&amp;quot; is the set for the first axis, &amp;quot;Joint1&amp;quot; for the second etc. The parameter &amp;quot;ID&amp;quot; is the CAN ID in decimal format as selected at switch/jumper/etc at the module.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Joint0 ID=&amp;quot;16&amp;quot; Version=&amp;quot;Product 0x42 FW 0x02 0x10&amp;quot;...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Currently there are two parameter formats: V1 and V2. V2 is used by newer BLDC axis controllers (e.g. ReBeL joints). The parameter format is preselected by a configuration parameter.&lt;br /&gt;
&lt;br /&gt;
== Parameter V1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Parameter set for Commonplace Robotics robotics control  /--&amp;gt;&lt;br /&gt;
&amp;lt;!-- Target Robot: igus robolink                              /--&amp;gt;&lt;br /&gt;
&amp;lt;!-- support@cpr-robots.com                                   /--&amp;gt;&lt;br /&gt;
&amp;lt;AmpParameter&amp;gt;&lt;br /&gt;
    &amp;lt;Configuration ModuleType=&amp;quot;RailStepperV02&amp;quot; NrOfJoints=&amp;quot;3&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Joint0 ID=&amp;quot;16&amp;quot; Version=&amp;quot;Product 0x42 FW 0x02 0x10&amp;quot;&lt;br /&gt;
         ComTimeOut=&amp;quot;2000&amp;quot; MaxCurrent=&amp;quot;200&amp;quot; MaxLag=&amp;quot;5000&amp;quot; EncoderErrorDetection=&amp;quot;0&amp;quot; PosP=&amp;quot;1.000&amp;quot; PosI=&amp;quot;0.0000&amp;quot; PosD=&amp;quot;0.000&amp;quot; PosAWU=&amp;quot;30&amp;quot;&lt;br /&gt;
         Encoder=&amp;quot;True&amp;quot; SwapEncoderDirection=&amp;quot;False&amp;quot; EndSwitchRising=&amp;quot;True&amp;quot; StopOnEndSwitch=&amp;quot;False&amp;quot; UseIndexAsRef=&amp;quot;False&amp;quot;&lt;br /&gt;
         RefStraight=&amp;quot;False&amp;quot; RefSinus=&amp;quot;False&amp;quot; RefHalf=&amp;quot;True&amp;quot; SinusRefTics=&amp;quot;2000&amp;quot; SinusRefMaxCycles=&amp;quot;6&amp;quot;&lt;br /&gt;
         Offset=&amp;quot;0&amp;quot; RefSpeed=&amp;quot;50&amp;quot; RefSpeedSlow=&amp;quot;10&amp;quot; RefFromBothSides=&amp;quot;True&amp;quot;&lt;br /&gt;
         SGThreshold=&amp;quot;2&amp;quot; CSLoad=&amp;quot;18&amp;quot; CSStart=&amp;quot;18&amp;quot; CSIdle=&amp;quot;6&amp;quot; CSRef=&amp;quot;15&amp;quot; StartArea=&amp;quot;200&amp;quot;&lt;br /&gt;
         MinSupplyVoltage=&amp;quot;500&amp;quot; MaxTemperature=&amp;quot;500&amp;quot; Microstepping=&amp;quot;0&amp;quot;&lt;br /&gt;
        /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Joint1 ID=&amp;quot;32&amp;quot; Version=&amp;quot;Product 0x42 FW 0x02 0x10&amp;quot;&lt;br /&gt;
         ComTimeOut=&amp;quot;2000&amp;quot; MaxCurrent=&amp;quot;200&amp;quot; MaxLag=&amp;quot;5000&amp;quot; EncoderErrorDetection=&amp;quot;0&amp;quot; PosP=&amp;quot;1.000&amp;quot; PosI=&amp;quot;0.0000&amp;quot; PosD=&amp;quot;0.000&amp;quot; PosAWU=&amp;quot;30&amp;quot;&lt;br /&gt;
         Encoder=&amp;quot;True&amp;quot; SwapEncoderDirection=&amp;quot;False&amp;quot; EndSwitchRising=&amp;quot;True&amp;quot; StopOnEndSwitch=&amp;quot;False&amp;quot; UseIndexAsRef=&amp;quot;False&amp;quot;&lt;br /&gt;
         RefStraight=&amp;quot;False&amp;quot; RefSinus=&amp;quot;False&amp;quot; RefHalf=&amp;quot;True&amp;quot; SinusRefTics=&amp;quot;2000&amp;quot; SinusRefMaxCycles=&amp;quot;6&amp;quot;&lt;br /&gt;
         Offset=&amp;quot;891&amp;quot; RefSpeed=&amp;quot;-50&amp;quot; RefSpeedSlow=&amp;quot;-10&amp;quot; RefFromBothSides=&amp;quot;True&amp;quot;&lt;br /&gt;
         SGThreshold=&amp;quot;2&amp;quot; CSLoad=&amp;quot;26&amp;quot; CSStart=&amp;quot;26&amp;quot; CSIdle=&amp;quot;10&amp;quot; CSRef=&amp;quot;20&amp;quot; StartArea=&amp;quot;200&amp;quot;&lt;br /&gt;
         MinSupplyVoltage=&amp;quot;500&amp;quot; MaxTemperature=&amp;quot;500&amp;quot; Microstepping=&amp;quot;0&amp;quot;&lt;br /&gt;
        /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Joint2 ID=&amp;quot;48&amp;quot; Version=&amp;quot;Product 0x42 FW 0x04 0x07&amp;quot;&lt;br /&gt;
         ComTimeOut=&amp;quot;3000&amp;quot; MaxCurrent=&amp;quot;0&amp;quot; MaxLag=&amp;quot;5000&amp;quot; EncoderErrorDetection=&amp;quot;1000&amp;quot; PosP=&amp;quot;1.000&amp;quot; PosI=&amp;quot;0.0000&amp;quot; PosD=&amp;quot;0.000&amp;quot; PosAWU=&amp;quot;0&amp;quot;&lt;br /&gt;
         Encoder=&amp;quot;True&amp;quot; SwapEncoderDirection=&amp;quot;False&amp;quot; EndSwitchRising=&amp;quot;True&amp;quot; StopOnEndSwitch=&amp;quot;False&amp;quot; UseIndexAsRef=&amp;quot;False&amp;quot;&lt;br /&gt;
         RefStraight=&amp;quot;True&amp;quot; RefSinus=&amp;quot;False&amp;quot; RefHalf=&amp;quot;False&amp;quot; SinusRefTics=&amp;quot;500&amp;quot; SinusRefMaxCycles=&amp;quot;6&amp;quot;&lt;br /&gt;
         Offset=&amp;quot;-1&amp;quot; RefSpeed=&amp;quot;40&amp;quot; RefSpeedSlow=&amp;quot;5&amp;quot; RefFromBothSides=&amp;quot;True&amp;quot;&lt;br /&gt;
         SGThreshold=&amp;quot;2&amp;quot; CSLoad=&amp;quot;10&amp;quot; CSStart=&amp;quot;10&amp;quot; CSIdle=&amp;quot;3&amp;quot; CSRef=&amp;quot;8&amp;quot; StartArea=&amp;quot;200&amp;quot;&lt;br /&gt;
         MinSupplyVoltage=&amp;quot;500&amp;quot; MaxTemperature=&amp;quot;430&amp;quot; Microstepping=&amp;quot;0&amp;quot;&lt;br /&gt;
        /&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
&amp;lt;/AmpParameter&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please only change the values in  quote marks, do not delete any quote marks, do not use decimal separators. This config file is case sensitive, so lower case and upper case matters.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Encoder Parameters===&lt;br /&gt;
If the additional external axis is equipped with a motor encoder enter the parameters as shown below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;All numbers, other than those for PosP PosI and PosD must be integer.&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! colspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! !! FW version 8.9 and older !! FW version 8.10 and newer&lt;br /&gt;
|-&lt;br /&gt;
| ComTimeOut || Maximum duration without communication before the communication error state ([[Error_Codes#CPRCANv2|error COM]]) is entered || Measured Bus frequency (&#039;&#039;read only&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| MaxCurrent || not used || not used &lt;br /&gt;
|-&lt;br /&gt;
| MaxLag || How many &#039;&#039;&#039;encoder tics&#039;&#039;&#039; is the encoder signal allowed to lag behind the desired motor position. See also parameter EncoderErrorDetection. || How many &#039;&#039;&#039;motor full steps&#039;&#039;&#039; the encoder signal allowed to lag behind the desired motor position until encoder error state ([[Error_Codes#CPRCANv2|error ENC]]) is entered.&lt;br /&gt;
|-&lt;br /&gt;
| EncoderErrorDetection || Encoder error detection: Number of tics the encoder signal is allowed to lag behind the desired motor position before the encoder error state ([[Error_Codes#CPRCANv2|error ENC]]) is entered. Divide this value by the [[Gear Scale]] to translate to degrees or mm. || not used&lt;br /&gt;
|-&lt;br /&gt;
| PosP || PID control parameter P - do not change || not used&lt;br /&gt;
|-&lt;br /&gt;
| PosI || PID control parameter I - do not change || not used&lt;br /&gt;
|-&lt;br /&gt;
| PosD || PID control parameter D - do not change || not used&lt;br /&gt;
|-&lt;br /&gt;
| PosAWU || PID control parameter anti wind up - do not change. This value has no effect if PosI is 0. || not used&lt;br /&gt;
|-&lt;br /&gt;
| Encoder || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Enable or disable the encoder (disable only if you got a motor without encoder)&lt;br /&gt;
|-&lt;br /&gt;
| SwapEncoderDirection || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Inverts the encoder direction - change if the encoder counts opposite to the motor. This does not change the motion direction, the axis will not move correctly if set to the wrong value!&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Reference/Ini Sensor Parameters===&lt;br /&gt;
These parameters define how the axis references itself. For referencing the referencing/ini switch and/or the motor&#039;s index pulse can be used, different motion patterns are available depending on the axis types.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;All numbers must integer.&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! colspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! !! FW version 8.9 and older !! FW version 8.10 and newer&lt;br /&gt;
|-&lt;br /&gt;
| EndSwitchRising || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Trigger on the rising edge (set to True) or on the falling edge (&amp;quot;False&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| StopOnEndSwitch || Stop referencing motion when the end-switch is triggered || not used&lt;br /&gt;
|-&lt;br /&gt;
| UseIndexAsRef || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Use the index pulse of the motor for referencing. Set to false to use the referencing switch.&lt;br /&gt;
|-&lt;br /&gt;
| UseIniAndIndexAsRef || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Use the index pulse and the referencing switch for referencing.&lt;br /&gt;
|-&lt;br /&gt;
| RefStraight || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | For linear axes: Moves in one direction until the referencing switch is reached.&lt;br /&gt;
|-&lt;br /&gt;
| RefSinus || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Rotational axes: Sinusoidal search motion (increasing back and forth motion until the switch is reached).&lt;br /&gt;
|-&lt;br /&gt;
| RefHalf || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | For rotational axes with half-disc inis. The state of the referencing switch determines the search direction.&lt;br /&gt;
|-&lt;br /&gt;
| SinusRefTics || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | How many encoder tics should  the sinusoidal search motion be incremented by per period&lt;br /&gt;
|-&lt;br /&gt;
| SinusRefMaxCycles || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | How many periods of sinusoidal search motion should be performed&lt;br /&gt;
|-&lt;br /&gt;
| Offset || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Distance of the 0 position to the referencing switch in encoder tics (divide by the [[Gear Scale]] to get degrees or mm). To invert the direction of the offset, reverse the sign (+/-).&lt;br /&gt;
|-&lt;br /&gt;
| RefSpeed || Sets the initial referencing speed: lower is slower. To invert the direction of movement, reverse the sign (+/-) of the number. The value -1 is not allowed, use -2 instead. || Sets the initial referencing speed in RPM.&lt;br /&gt;
|-&lt;br /&gt;
| RefSpeedSlow || Sets the precision referencing speed: lower is slower and more precise. To invert the direction of movement, reverse the sign (+/-) of the number. The value -1 is not allowed, use -2 instead. || Sets the precision referencing speed in RPM. To invert the direction of referencing movement, reverse the sign (+/-) of the number. Changing the direction here will also change the RefSpeed direction. &lt;br /&gt;
|-&lt;br /&gt;
| RefFromBothSides || Use the midpoint of the trigger signal instead of the rising/falling edge. || not used&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Motor Parameters===&lt;br /&gt;
&#039;&#039;&#039;All numbers must be integer.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please read [[Motor Current Parameter]] for a translation of the CS parameters to amps. Values between 1 and 32 are allowed. Low values mean less current and will stall the axis under load, large values will overheat the motor/module.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! colspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! !! FW version 8.9 and older !! FW version 8.10 and newer&lt;br /&gt;
|-&lt;br /&gt;
| SGThreshold || TMC2660 StallGuard threshold || not used&lt;br /&gt;
|-&lt;br /&gt;
| CSLoad || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Current under load conditions [[Motor_Current_Parameter|(arbitrary units)]]&lt;br /&gt;
|-&lt;br /&gt;
| CSStart || Current when starting a motion [[Motor_Current_Parameter|(arbitrary units)]] || not used&lt;br /&gt;
|-&lt;br /&gt;
| CSIdle || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Current when position is held [[Motor_Current_Parameter|(arbitrary units)]]&lt;br /&gt;
|-&lt;br /&gt;
| CSRef || Current during referencing [[Motor_Current_Parameter|(arbitrary units)]] || not used&lt;br /&gt;
|-&lt;br /&gt;
| StartArea || Speed of the start up current - do not change || not used&lt;br /&gt;
|-&lt;br /&gt;
| MinSupplyVoltage || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Minimum voltage in ADC ticks. Below this the low voltage or estop error ([[Error_Codes#CPRCANv2|error LOWV/ESTOP]]) occurs. &#039;0&#039; will turn this feature off.&lt;br /&gt;
|-&lt;br /&gt;
| MaxTemperature || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Maximum temperature. If the temperature of the electronics module (not motor) exceeds this value the over temperature error ([[Error_Codes#CPRCANv2|error TEMP]]) occurs and the motor is shut off.&lt;br /&gt;
|-&lt;br /&gt;
| Microstepping || Defines the microstepping - set to 0, do not change || Microsteps in &#039;&#039;256/(2^n)&#039;&#039;, n = this setting. Default is 5, range is 1-8. Set lower if you encounter unsmooth motion. Set higher if you need to go fast. &lt;br /&gt;
|-&lt;br /&gt;
| SlowMotionConfig || not used || not used&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parameter V2 ==&lt;br /&gt;
This format specifies one parameter per line, identified by index and subindex numbers. Name and unit are given for readability.&lt;br /&gt;
&lt;br /&gt;
Please note that some parameters are only informational and can not be written. This includes serial number, firmware version and CAN ID among others.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Parameter set for Commonplace Robotics robotics control  /--&amp;gt;&lt;br /&gt;
&amp;lt;!-- Target Robot: igus robolink                              /--&amp;gt;&lt;br /&gt;
&amp;lt;!-- support@cpr-robots.com                                   /--&amp;gt;&lt;br /&gt;
&amp;lt;AmpParameter&amp;gt;&lt;br /&gt;
    &amp;lt;Configuration ModuleType=&amp;quot;ObjectLibrary&amp;quot; NrOfJoints=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Joint0 ID=&amp;quot;16&amp;quot; Version=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;0&amp;quot;  SubIndex=&amp;quot;0&amp;quot;     Name=&amp;quot;Serialno.&amp;quot;                                 Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;0&amp;quot;  SubIndex=&amp;quot;1&amp;quot;     Name=&amp;quot;Firmware version&amp;quot;                          Value=&amp;quot;135425&amp;quot;       Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;0&amp;quot;  SubIndex=&amp;quot;2&amp;quot;     Name=&amp;quot;Hardwareno.&amp;quot;                               Value=&amp;quot;80&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;0&amp;quot;  SubIndex=&amp;quot;3&amp;quot;     Name=&amp;quot;min. supply Voltage&amp;quot;                       Value=&amp;quot;20000&amp;quot;        Unit=&amp;quot;mV&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;0&amp;quot;  SubIndex=&amp;quot;4&amp;quot;     Name=&amp;quot;max. Boardtemp&amp;quot;                            Value=&amp;quot;70000&amp;quot;        Unit=&amp;quot;m°C&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;0&amp;quot;     Name=&amp;quot;Encoder Tics&amp;quot;                              Value=&amp;quot;4000&amp;quot;         Unit=&amp;quot;1/Rev&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;1&amp;quot;     Name=&amp;quot;no. of pole pairs&amp;quot;                         Value=&amp;quot;4&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;2&amp;quot;     Name=&amp;quot;Winding resistance&amp;quot;                        Value=&amp;quot;50&amp;quot;           Unit=&amp;quot;mOhm&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;3&amp;quot;     Name=&amp;quot;Winding inductance&amp;quot;                        Value=&amp;quot;30&amp;quot;           Unit=&amp;quot;mH&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;4&amp;quot;     Name=&amp;quot;maxRPM&amp;quot;                                    Value=&amp;quot;3000&amp;quot;         Unit=&amp;quot;RPM&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;5&amp;quot;     Name=&amp;quot;max. Motortemp.&amp;quot;                           Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;m°C&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;6&amp;quot;     Name=&amp;quot;max. current&amp;quot;                              Value=&amp;quot;8000&amp;quot;         Unit=&amp;quot;mA&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;7&amp;quot;     Name=&amp;quot;StartUpMethod&amp;quot;                             Value=&amp;quot;4&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;8&amp;quot;     Name=&amp;quot;Rotor offset&amp;quot;                              Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;Tics&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;9&amp;quot;     Name=&amp;quot;Encoder inverted&amp;quot;                          Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;10&amp;quot;    Name=&amp;quot;Motor inverted&amp;quot;                            Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;11&amp;quot;    Name=&amp;quot;OpenLoopCurrent&amp;quot;                           Value=&amp;quot;2000&amp;quot;         Unit=&amp;quot;mA&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;12&amp;quot;    Name=&amp;quot;OpenLoopCurrent Standstill&amp;quot;                Value=&amp;quot;50&amp;quot;           Unit=&amp;quot;mA&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;13&amp;quot;    Name=&amp;quot;OpenLoopCurrent Calibration&amp;quot;               Value=&amp;quot;3200&amp;quot;         Unit=&amp;quot;mA&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;14&amp;quot;    Name=&amp;quot;CalibrationTime&amp;quot;                           Value=&amp;quot;50&amp;quot;           Unit=&amp;quot;ms&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;15&amp;quot;    Name=&amp;quot;RotorCalibrated&amp;quot;                           Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;16&amp;quot;    Name=&amp;quot;ThirdHarmonicActive&amp;quot;                       Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;0&amp;quot;     Name=&amp;quot;Controltype&amp;quot;                               Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;1&amp;quot;     Name=&amp;quot;Referencing type&amp;quot;                          Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;2&amp;quot;     Name=&amp;quot;Referencing Offset&amp;quot;                        Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;Tics&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;3&amp;quot;     Name=&amp;quot;Referencing speed&amp;quot;                         Value=&amp;quot;30&amp;quot;           Unit=&amp;quot;RPM&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;4&amp;quot;     Name=&amp;quot;Referencing speed slow&amp;quot;                    Value=&amp;quot;10&amp;quot;           Unit=&amp;quot;RPM&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;5&amp;quot;     Name=&amp;quot;Referencing switch type&amp;quot;                   Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;6&amp;quot;     Name=&amp;quot;max. positionlag&amp;quot;                          Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;Tics&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;7&amp;quot;     Name=&amp;quot;Enable Break&amp;quot;                              Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;8&amp;quot;     Name=&amp;quot;Break PWM high&amp;quot;                            Value=&amp;quot;70&amp;quot;           Unit=&amp;quot;%&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;9&amp;quot;     Name=&amp;quot;Break PWM low&amp;quot;                             Value=&amp;quot;70&amp;quot;           Unit=&amp;quot;%&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;10&amp;quot;    Name=&amp;quot;IPO Position&amp;quot;                              Value=&amp;quot;200000&amp;quot;       Unit=&amp;quot;Tics&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;11&amp;quot;    Name=&amp;quot;IPO Velocity&amp;quot;                              Value=&amp;quot;200000&amp;quot;       Unit=&amp;quot;Tics/10ms&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;12&amp;quot;    Name=&amp;quot;Axis inverted&amp;quot;                             Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;0&amp;quot;     Name=&amp;quot;Position P&amp;quot;                                Value=&amp;quot;20&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;1&amp;quot;     Name=&amp;quot;Position I&amp;quot;                                Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;2&amp;quot;     Name=&amp;quot;Position D&amp;quot;                                Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;3&amp;quot;     Name=&amp;quot;Position AntiWindUp&amp;quot;                       Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;4&amp;quot;     Name=&amp;quot;Position min&amp;quot;                              Value=&amp;quot;-2500&amp;quot;        Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;5&amp;quot;     Name=&amp;quot;Position max&amp;quot;                              Value=&amp;quot;2500&amp;quot;         Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;6&amp;quot;     Name=&amp;quot;Position sensor&amp;quot;                           Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;7&amp;quot;     Name=&amp;quot;Velocity P&amp;quot;                                Value=&amp;quot;100&amp;quot;          Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;8&amp;quot;     Name=&amp;quot;Velocity I&amp;quot;                                Value=&amp;quot;20&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;9&amp;quot;     Name=&amp;quot;Velocity D&amp;quot;                                Value=&amp;quot;5&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;10&amp;quot;    Name=&amp;quot;Velocity AntiWindUp&amp;quot;                       Value=&amp;quot;409600&amp;quot;       Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;11&amp;quot;    Name=&amp;quot;Velocity min&amp;quot;                              Value=&amp;quot;-2048&amp;quot;        Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;12&amp;quot;    Name=&amp;quot;Velocity max&amp;quot;                              Value=&amp;quot;2048&amp;quot;         Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;13&amp;quot;    Name=&amp;quot;Velocity sensor&amp;quot;                           Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;14&amp;quot;    Name=&amp;quot;DQ P&amp;quot;                                      Value=&amp;quot;20&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;15&amp;quot;    Name=&amp;quot;DQ I&amp;quot;                                      Value=&amp;quot;2&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;16&amp;quot;    Name=&amp;quot;DQ D&amp;quot;                                      Value=&amp;quot;2&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;17&amp;quot;    Name=&amp;quot;DQ AntiWindUp&amp;quot;                             Value=&amp;quot;409600&amp;quot;       Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;18&amp;quot;    Name=&amp;quot;DQ min&amp;quot;                                    Value=&amp;quot;-1024&amp;quot;        Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;19&amp;quot;    Name=&amp;quot;DQ max&amp;quot;                                    Value=&amp;quot;1024&amp;quot;         Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;20&amp;quot;    Name=&amp;quot;OpenLoop current P&amp;quot;                        Value=&amp;quot;20&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;21&amp;quot;    Name=&amp;quot;OpenLoop current I&amp;quot;                        Value=&amp;quot;2&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;22&amp;quot;    Name=&amp;quot;OpenLoop current D&amp;quot;                        Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;23&amp;quot;    Name=&amp;quot;OpenLoop current AntiWindUp&amp;quot;               Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;24&amp;quot;    Name=&amp;quot;OpenLoop current min&amp;quot;                      Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;25&amp;quot;    Name=&amp;quot;OpenLoop current max&amp;quot;                      Value=&amp;quot;1024&amp;quot;         Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;4&amp;quot;  SubIndex=&amp;quot;0&amp;quot;     Name=&amp;quot;CAN max. missed coms&amp;quot;                      Value=&amp;quot;1000&amp;quot;         Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;4&amp;quot;  SubIndex=&amp;quot;1&amp;quot;     Name=&amp;quot;CAN ID Source&amp;quot;                             Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;4&amp;quot;  SubIndex=&amp;quot;2&amp;quot;     Name=&amp;quot;CAN ID&amp;quot;                                    Value=&amp;quot;32&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;4&amp;quot;  SubIndex=&amp;quot;3&amp;quot;     Name=&amp;quot;SPI Active&amp;quot;                                Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Joint0&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Board Parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Serial no. || Serial number of the product. Used to identify the date of manufacture.&lt;br /&gt;
|-&lt;br /&gt;
| Firmwareversion || Firmware version number to identify the current software version.&lt;br /&gt;
|-&lt;br /&gt;
| Hardwareno. || Hardware version number to identify the hardware configuration used.&lt;br /&gt;
|-&lt;br /&gt;
| min. supply Voltage || Minimum permissible supply voltage. The minimum supply voltage should be approx. 2V below the nominal voltage. If the supply voltage falls below this limit, the board issues an error message.&lt;br /&gt;
|-&lt;br /&gt;
| max. Boardtemp. || Maximum permissible board temperature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Motor Parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Encoder Tics || Number of encoder pulses per revolution according to data sheet.&lt;br /&gt;
|-&lt;br /&gt;
| No. of Polepairs || Number of pole pairs in the motor according to the data sheet.&lt;br /&gt;
|-&lt;br /&gt;
| max. RPM || Maximum rotational speed of the motor. Setting is made according to the data sheet of the motor or on the basis of subsequent components. The value 0 cancels the limitation.&lt;br /&gt;
|-&lt;br /&gt;
| max. Motortemp. || Maximum temperature in the motor. The measurement is performed via an optional sensor. The value 0 deactivates the query.&lt;br /&gt;
|-&lt;br /&gt;
| max. Current || Maximum motor current according to data sheet.&lt;br /&gt;
|-&lt;br /&gt;
| StartUpMethod || Method used to set up the motor when starting the controller. With the automatic start options, the motor starts IPO afterwards. &lt;br /&gt;
* 0: Openloop&lt;br /&gt;
* 1: Closedloop with rotor alignment&lt;br /&gt;
* 2: Closedloop with index search&lt;br /&gt;
* 3: Closedloop for DC Motor&lt;br /&gt;
* 4: Closedloop with rotor alignment and check for free rotation &lt;br /&gt;
* 10: Closedloop with rotor alignment and autostart&lt;br /&gt;
|-&lt;br /&gt;
| EncoderInverted || Setting for the direction of rotation of the encoder. The direction of rotation of the signals at the input of the controller must be clockwise according to DIN EN 60034-8. After a change, the controller must be restarted. &lt;br /&gt;
* 0: Encoder not inverted&lt;br /&gt;
* 1: Encoder inverted&lt;br /&gt;
|-&lt;br /&gt;
| MotorInverted || The direction of rotation of the motor must be clockwise according to DIN EN 60034-8. If the setting is incorrect, the motor does not rotate. Only the motor current increases. &lt;br /&gt;
* 0: Motor not inverted&lt;br /&gt;
* 1: Motor inverted&lt;br /&gt;
|-&lt;br /&gt;
| OpenLoopCurrent || Setpoint current for the openloop control of the motor.&lt;br /&gt;
|-&lt;br /&gt;
| OpenLoopCurrent Standstill || Setpoint current for the openloop control at standstill.&lt;br /&gt;
|-&lt;br /&gt;
| OpenLoopCurrent Calibration || Set current for rotor alignment.&lt;br /&gt;
|-&lt;br /&gt;
| Calibration Time || Duration for the alignment of the rotor.&lt;br /&gt;
|-&lt;br /&gt;
| Motor Nominal Current || Maximum motor current that must not be exceeded for more then 2 seconds continously.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Axis Parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Reserved || Reserved for future use.&lt;br /&gt;
|-&lt;br /&gt;
| ReferencingType || Selection for the referencing type. &lt;br /&gt;
* 0: No referencing current position = 0&lt;br /&gt;
* 1: Linear motion&lt;br /&gt;
* 2: Sinusoidal movement (sinusoidal search for the sensor)&lt;br /&gt;
* 3: Half disks (referencing method for axes equipped with a half disk, e.g. Robolink DP)&lt;br /&gt;
* 4: Gearencoder (only Rebel)&lt;br /&gt;
|-&lt;br /&gt;
| ReferencingOffset || Offset for the axis position after referencing.&lt;br /&gt;
|-&lt;br /&gt;
| ReferencingSpeed || Speed for approaching the sensor. &lt;br /&gt;
&#039;&#039;&#039;If the axis is referenced in the wrong direction, this parameter can be set to negative.&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| ReferencingSpeedSlow || Speed for fine positioning of the axis during homing. &lt;br /&gt;
&#039;&#039;&#039;If the axis is referenced in the wrong direction, this parameter can be set to negative.&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| ReferencingSwitchType || Type of the reference sensor. &lt;br /&gt;
* 0: n.C.&lt;br /&gt;
* 1: n.O.&lt;br /&gt;
|-&lt;br /&gt;
| max. Positionlag || Permissible position error of the axis. With fast movements, the axis runs after the position setpoint. If the limit value is exceeded, the axis stops and an error message appears. If the value is set to 0, there is no monitoring.&lt;br /&gt;
|-&lt;br /&gt;
| Break Type || Parameter for activating a brake on the robot axis. If the robot has a holding brake, which should be controlled by the motor controller, this value must be set. The brakes are released when the axes are activated. &lt;br /&gt;
* 0: No brake&lt;br /&gt;
* 1: Friction brake&lt;br /&gt;
* 2: Blocking brake. &lt;br /&gt;
In blocking brake mode, a free-positioning movement occurs. A blocking brake means a pin or similar, which blocks the rotor. A friction brake describes a disc brake.&lt;br /&gt;
|-&lt;br /&gt;
| Break PWM High || If a brake is configured on the axis, this parameter specifies the PWM value for releasing the brake.&lt;br /&gt;
|-&lt;br /&gt;
| Break PWM Low || Voltage to hold the brake after releasing the brake; the motor controller lowers the output voltage to the specified value.&lt;br /&gt;
|-&lt;br /&gt;
| IPO Position || Positive position value for the IPO. In standalone mode, the IPO moves this value symmetrically around the zero point, from -IPO position to IPO position.&lt;br /&gt;
|-&lt;br /&gt;
| IPO Velocity || Speed for IPO mode in standalone operation.&lt;br /&gt;
|-&lt;br /&gt;
| Axis inverted || Changes the direction of the axis.&lt;br /&gt;
|-&lt;br /&gt;
| Gear ratio || Gear ratio of the gear unit. For i=1:50 correspondingly 50. Only integer values are possible.&lt;br /&gt;
|-&lt;br /&gt;
| Axis Enc Type || Encoder type.&lt;br /&gt;
* 0: No absolute value transmitter (e.g. linear axis with referencing switch)&lt;br /&gt;
* 1: Hatron absolute value transmitter (e.g. ReBeL-01 and ReBeL-02)&lt;br /&gt;
* 2: ICMU absolute value transmitter (e.g. ReBeL-03)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Control Parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Position P || P component for position control.&lt;br /&gt;
|-&lt;br /&gt;
| Position I || I component for position control.&lt;br /&gt;
|-&lt;br /&gt;
| Position P scale || Scaling of the P component by 2&amp;lt;sup&amp;gt;x&amp;lt;/sup&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| Position min. || Minimum limitation for the output of the position control.&lt;br /&gt;
|-&lt;br /&gt;
| Position max. || Maximum limitation for the output of the position control.&lt;br /&gt;
|-&lt;br /&gt;
| Velocity P || P component for speed control.&lt;br /&gt;
|-&lt;br /&gt;
| Velocity I || I portion for speed control.&lt;br /&gt;
|-&lt;br /&gt;
| Velocity P scale || Scaling of the P component in 2&amp;lt;sup&amp;gt;x&amp;lt;/sup&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| Velocity min. || Minimum limitation for the output of the speed control.&lt;br /&gt;
|-&lt;br /&gt;
| Velocity max. || Maximum limitation for the output of the speed control.&lt;br /&gt;
|-&lt;br /&gt;
| DQ-P || P component for DQ control.&lt;br /&gt;
|-&lt;br /&gt;
| DQ-I || I component for DQ control.&lt;br /&gt;
|-&lt;br /&gt;
| DQ back calc || Backcalculation factor for DQ controller.&lt;br /&gt;
|-&lt;br /&gt;
| DQ-min. || Minimum limitation for the output of the DQ control.&lt;br /&gt;
|-&lt;br /&gt;
| DQ-max. || Maximum limitation for the output of the DQ control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop P || P component for Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop I || I component for Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop D || D component for Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop AntiWindUp || AntiWindUp for Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop min. || Minimum limitation for the output of the Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop max. || Maximum limitation for the output of the Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Communication Parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| CAN max. missed Coms || Maximum number of failed communication attempts on the CAN bus. Exceeding the value leads to the motor controller being switched off.&lt;br /&gt;
|-&lt;br /&gt;
| CAN ID Source || Source for the CAN ID. &lt;br /&gt;
* 1: Hardware jumper&lt;br /&gt;
* 2: Parameter set.&lt;br /&gt;
|-&lt;br /&gt;
| CAN ID || CAN ID for the controller.&lt;br /&gt;
|-&lt;br /&gt;
| SPI Active || Enable SPI communication.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:CPRog]][[Category:Configuration]][[Category:Referencing]]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Firmware_Parameter_Configuration&amp;diff=1059</id>
		<title>Firmware Parameter Configuration</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Firmware_Parameter_Configuration&amp;diff=1059"/>
		<updated>2026-06-12T11:38:18Z</updated>

		<summary type="html">&lt;p&gt;OLT: /* Encoder Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;While most robot specific settings are stored in the configuration files in CPRog/iRC and on the embedded control axis specific settings are stored in the axis control modules themselves. This includes parameters for motion, referencing and motor current. This article explains these parameters and how to access them.&lt;br /&gt;
&lt;br /&gt;
This article applies to all robots with modular control, robolink DCI and ReBeL joints. It does not apply to the Mover robots.&lt;br /&gt;
&lt;br /&gt;
= General Procedure =&lt;br /&gt;
* Load the firmware parameters from the axis modules&lt;br /&gt;
* Change values using a basic text editor&lt;br /&gt;
* Upload the file to the modules&lt;br /&gt;
* Restart the robot&lt;br /&gt;
&lt;br /&gt;
Since iRC version 15.0.0 you can change the firmware parameters directly in software. Simply go to &amp;quot;File -&amp;gt; Firmware Configuration&amp;quot; and &amp;quot;Load parameters from axes&amp;quot;. Change the values and upload them back to the modules via &amp;quot;Write parameters to axes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Download Configuration ==&lt;br /&gt;
&lt;br /&gt;
* Open CPRog/iRC&lt;br /&gt;
* Connect to the robot via Ethernet or a USB-CAN-Adapter&lt;br /&gt;
* Check if all green LEDs on top of &#039;&#039;&#039;all&#039;&#039;&#039; motor modules are blinking. If a module is not blinking, it might not be configured correctly. Did you save the project and restart the hardware?&lt;br /&gt;
* Click &amp;quot;File&amp;quot; at the top of CPRog/iRC to access the backstage menu&lt;br /&gt;
* Click &amp;quot;Get Amp configuration&amp;quot; (see the image below)&lt;br /&gt;
* Now a parameter file is written in the Data\Backup directory in the CPRog/iRC installation directory (e.g. C:\CPRog\Data\Backup or C:\iRC-igusRobotControl\Data\Backup)&lt;br /&gt;
&lt;br /&gt;
== Upload Configuration ==&lt;br /&gt;
&lt;br /&gt;
* Change the file according to your requirements using a basic text editor like Notepad or Notepad++ (see section Parameter File below)&lt;br /&gt;
* Click &amp;quot;Set Amp configuration&amp;quot;&lt;br /&gt;
* Choose the updated .dat file&lt;br /&gt;
* Wait until all parameters are written, approx 20s. Another backup of the previous values is also created.&lt;br /&gt;
* For some parameter, e.g. the encoder direction, the control needs a cold restart&lt;br /&gt;
* Test if the changes result in a better performance.&lt;br /&gt;
&lt;br /&gt;
[[File:CPRogAmpConfig.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Verification of Joint Operation ==&lt;br /&gt;
Now the correct operation of the joints needs to be verified.&lt;br /&gt;
* Be ready to press the &#039;&#039;&#039;emergency stop&#039;&#039;&#039; button. Changing parameters can result in unexpected motion, especially when setting up an unknown axis.&lt;br /&gt;
* Once the controller has booted up, the motor module LEDs are blinking green, &#039;&#039;&#039;connect&#039;&#039;&#039;, &#039;&#039;&#039;reset&#039;&#039;&#039; and &#039;&#039;&#039;enable&#039;&#039;&#039; the robot.&lt;br /&gt;
* Try to move the joint by clicking on the buttons in the jog section of CPRog/iRC.&lt;br /&gt;
* If the joint moves correctly check whether it references. Click &#039;&#039;&#039;Reference&#039;&#039;&#039;, then &#039;&#039;&#039;Reset&#039;&#039;&#039;, &#039;&#039;&#039;Enable&#039;&#039;&#039;, &#039;&#039;&#039;Reference axis&#039;&#039;&#039;. Watch for collisions and use the emergency stop if necessary - the referencing motion might not stop if not set up correctly. If the joint shows up as &amp;quot;referenced&amp;quot; the referencing works correctly. The position lag error is the expected state, reset it by clicking &#039;&#039;&#039;Reset&#039;&#039;&#039; and &#039;&#039;&#039;Enable&#039;&#039;&#039;.&lt;br /&gt;
* Next set up a program that moves the axis over 30-60min. Observe the module temperature in CPRog/iRC and the motor temperature (there are no sensors in the motor itself). Increase the motor current, if the axis is struggling to move or reduce the motor current if the motor or motor module is getting hot.&lt;br /&gt;
&lt;br /&gt;
= Parameter File =&lt;br /&gt;
&lt;br /&gt;
The parameter files contain a set of parameter for each joint of the robot. &amp;quot;Joint0&amp;quot; is the set for the first axis, &amp;quot;Joint1&amp;quot; for the second etc. The parameter &amp;quot;ID&amp;quot; is the CAN ID in decimal format as selected at switch/jumper/etc at the module.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Joint0 ID=&amp;quot;16&amp;quot; Version=&amp;quot;Product 0x42 FW 0x02 0x10&amp;quot;...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Currently there are two parameter formats: V1 and V2. V2 is used by newer BLDC axis controllers (e.g. ReBeL joints). The parameter format is preselected by a configuration parameter.&lt;br /&gt;
&lt;br /&gt;
== Parameter V1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Parameter set for Commonplace Robotics robotics control  /--&amp;gt;&lt;br /&gt;
&amp;lt;!-- Target Robot: igus robolink                              /--&amp;gt;&lt;br /&gt;
&amp;lt;!-- support@cpr-robots.com                                   /--&amp;gt;&lt;br /&gt;
&amp;lt;AmpParameter&amp;gt;&lt;br /&gt;
    &amp;lt;Configuration ModuleType=&amp;quot;RailStepperV02&amp;quot; NrOfJoints=&amp;quot;3&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Joint0 ID=&amp;quot;16&amp;quot; Version=&amp;quot;Product 0x42 FW 0x02 0x10&amp;quot;&lt;br /&gt;
         ComTimeOut=&amp;quot;2000&amp;quot; MaxCurrent=&amp;quot;200&amp;quot; MaxLag=&amp;quot;5000&amp;quot; EncoderErrorDetection=&amp;quot;0&amp;quot; PosP=&amp;quot;1.000&amp;quot; PosI=&amp;quot;0.0000&amp;quot; PosD=&amp;quot;0.000&amp;quot; PosAWU=&amp;quot;30&amp;quot;&lt;br /&gt;
         Encoder=&amp;quot;True&amp;quot; SwapEncoderDirection=&amp;quot;False&amp;quot; EndSwitchRising=&amp;quot;True&amp;quot; StopOnEndSwitch=&amp;quot;False&amp;quot; UseIndexAsRef=&amp;quot;False&amp;quot;&lt;br /&gt;
         RefStraight=&amp;quot;False&amp;quot; RefSinus=&amp;quot;False&amp;quot; RefHalf=&amp;quot;True&amp;quot; SinusRefTics=&amp;quot;2000&amp;quot; SinusRefMaxCycles=&amp;quot;6&amp;quot;&lt;br /&gt;
         Offset=&amp;quot;0&amp;quot; RefSpeed=&amp;quot;50&amp;quot; RefSpeedSlow=&amp;quot;10&amp;quot; RefFromBothSides=&amp;quot;True&amp;quot;&lt;br /&gt;
         SGThreshold=&amp;quot;2&amp;quot; CSLoad=&amp;quot;18&amp;quot; CSStart=&amp;quot;18&amp;quot; CSIdle=&amp;quot;6&amp;quot; CSRef=&amp;quot;15&amp;quot; StartArea=&amp;quot;200&amp;quot;&lt;br /&gt;
         MinSupplyVoltage=&amp;quot;500&amp;quot; MaxTemperature=&amp;quot;500&amp;quot; Microstepping=&amp;quot;0&amp;quot;&lt;br /&gt;
        /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Joint1 ID=&amp;quot;32&amp;quot; Version=&amp;quot;Product 0x42 FW 0x02 0x10&amp;quot;&lt;br /&gt;
         ComTimeOut=&amp;quot;2000&amp;quot; MaxCurrent=&amp;quot;200&amp;quot; MaxLag=&amp;quot;5000&amp;quot; EncoderErrorDetection=&amp;quot;0&amp;quot; PosP=&amp;quot;1.000&amp;quot; PosI=&amp;quot;0.0000&amp;quot; PosD=&amp;quot;0.000&amp;quot; PosAWU=&amp;quot;30&amp;quot;&lt;br /&gt;
         Encoder=&amp;quot;True&amp;quot; SwapEncoderDirection=&amp;quot;False&amp;quot; EndSwitchRising=&amp;quot;True&amp;quot; StopOnEndSwitch=&amp;quot;False&amp;quot; UseIndexAsRef=&amp;quot;False&amp;quot;&lt;br /&gt;
         RefStraight=&amp;quot;False&amp;quot; RefSinus=&amp;quot;False&amp;quot; RefHalf=&amp;quot;True&amp;quot; SinusRefTics=&amp;quot;2000&amp;quot; SinusRefMaxCycles=&amp;quot;6&amp;quot;&lt;br /&gt;
         Offset=&amp;quot;891&amp;quot; RefSpeed=&amp;quot;-50&amp;quot; RefSpeedSlow=&amp;quot;-10&amp;quot; RefFromBothSides=&amp;quot;True&amp;quot;&lt;br /&gt;
         SGThreshold=&amp;quot;2&amp;quot; CSLoad=&amp;quot;26&amp;quot; CSStart=&amp;quot;26&amp;quot; CSIdle=&amp;quot;10&amp;quot; CSRef=&amp;quot;20&amp;quot; StartArea=&amp;quot;200&amp;quot;&lt;br /&gt;
         MinSupplyVoltage=&amp;quot;500&amp;quot; MaxTemperature=&amp;quot;500&amp;quot; Microstepping=&amp;quot;0&amp;quot;&lt;br /&gt;
        /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Joint2 ID=&amp;quot;48&amp;quot; Version=&amp;quot;Product 0x42 FW 0x04 0x07&amp;quot;&lt;br /&gt;
         ComTimeOut=&amp;quot;3000&amp;quot; MaxCurrent=&amp;quot;0&amp;quot; MaxLag=&amp;quot;5000&amp;quot; EncoderErrorDetection=&amp;quot;1000&amp;quot; PosP=&amp;quot;1.000&amp;quot; PosI=&amp;quot;0.0000&amp;quot; PosD=&amp;quot;0.000&amp;quot; PosAWU=&amp;quot;0&amp;quot;&lt;br /&gt;
         Encoder=&amp;quot;True&amp;quot; SwapEncoderDirection=&amp;quot;False&amp;quot; EndSwitchRising=&amp;quot;True&amp;quot; StopOnEndSwitch=&amp;quot;False&amp;quot; UseIndexAsRef=&amp;quot;False&amp;quot;&lt;br /&gt;
         RefStraight=&amp;quot;True&amp;quot; RefSinus=&amp;quot;False&amp;quot; RefHalf=&amp;quot;False&amp;quot; SinusRefTics=&amp;quot;500&amp;quot; SinusRefMaxCycles=&amp;quot;6&amp;quot;&lt;br /&gt;
         Offset=&amp;quot;-1&amp;quot; RefSpeed=&amp;quot;40&amp;quot; RefSpeedSlow=&amp;quot;5&amp;quot; RefFromBothSides=&amp;quot;True&amp;quot;&lt;br /&gt;
         SGThreshold=&amp;quot;2&amp;quot; CSLoad=&amp;quot;10&amp;quot; CSStart=&amp;quot;10&amp;quot; CSIdle=&amp;quot;3&amp;quot; CSRef=&amp;quot;8&amp;quot; StartArea=&amp;quot;200&amp;quot;&lt;br /&gt;
         MinSupplyVoltage=&amp;quot;500&amp;quot; MaxTemperature=&amp;quot;430&amp;quot; Microstepping=&amp;quot;0&amp;quot;&lt;br /&gt;
        /&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
&amp;lt;/AmpParameter&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please only change the values in  quote marks, do not delete any quote marks, do not use decimal separators. This config file is case sensitive, so lower case and upper case matters.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Encoder Parameters===&lt;br /&gt;
If the additional external axis is equipped with a motor encoder enter the parameters as shown below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;All numbers, other than those for PosP PosI and PosD must be integer.&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! colspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! !! FW version 8.9 and older !! FW version 8.10 and newer&lt;br /&gt;
|-&lt;br /&gt;
| ComTimeOut || Maximum duration without communication before the communication error state ([[Error_Codes#CPRCANv2|error COM]]) is entered || Measured Bus frequency (&#039;&#039;read only&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| MaxCurrent || not used || not used &lt;br /&gt;
|-&lt;br /&gt;
| MaxLag || How many &#039;&#039;&#039;encoder tics&#039;&#039;&#039; is the encoder signal allowed to lag behind the desired motor position. See also parameter EncoderErrorDetection. || How many &#039;&#039;&#039;motor full steps&#039;&#039;&#039; the encoder signal allowed to lag behind the desired motor position until encoder error state ([[Error_Codes#CPRCANv2|error ENC]]) is entered.&lt;br /&gt;
|-&lt;br /&gt;
| EncoderErrorDetection || Encoder error detection: Number of tics the encoder signal is allowed to lag behind the desired motor position before the encoder error state ([[Error_Codes#CPRCANv2|error ENC]]) is entered. Divide this value by the [[Gear Scale]] to translate to degrees or mm. || not used&lt;br /&gt;
|-&lt;br /&gt;
| PosP || PID control parameter P - do not change || not used&lt;br /&gt;
|-&lt;br /&gt;
| PosI || PID control parameter I - do not change || not used&lt;br /&gt;
|-&lt;br /&gt;
| PosD || PID control parameter D - do not change || not used&lt;br /&gt;
|-&lt;br /&gt;
| PosAWU || PID control parameter anti wind up - do not change. This value has no effect if PosI is 0. || not used&lt;br /&gt;
|-&lt;br /&gt;
| Encoder || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Enable or disable the encoder (disable only if you got a motor without encoder)&lt;br /&gt;
|-&lt;br /&gt;
| SwapEncoderDirection || colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Inverts the encoder direction - change if the encoder counts opposite to the motor. This does not change the motion direction, the axis will not move correctly if set to the wrong value!&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Reference/Ini Sensor Parameters===&lt;br /&gt;
These parameters define how the axis references itself. For referencing the referencing/ini switch and/or the motor&#039;s index pulse can be used, different motion patterns are available depending on the axis types.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;All numbers must integer.&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| EndSwitchRising || Trigger on the rising edge (set to True) or on the falling edge (&amp;quot;False&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| StopOnEndSwitch || Stop referencing motion when the end-switch is triggered&lt;br /&gt;
|-&lt;br /&gt;
| UseIndexAsRef || Use the index pulse of the motor for referencing. Set to false to use the referencing switch.&lt;br /&gt;
|-&lt;br /&gt;
| UseIniAndIndexAsRef || Use the index pulse and the referencing switch for referencing.&lt;br /&gt;
|-&lt;br /&gt;
| RefStraight || For linear axes: Moves in one direction until the referencing switch is reached.&lt;br /&gt;
|-&lt;br /&gt;
| RefSinus || Rotational axes: Sinusoidal search motion (increasing back and forth motion until the switch is reached).&lt;br /&gt;
|-&lt;br /&gt;
| RefHalf || For rotational axes with half-disc inis. The state of the referencing switch determines the search direction.&lt;br /&gt;
|-&lt;br /&gt;
| SinusRefTics || How many encoder tics should  the sinusoidal search motion be incremented by per period&lt;br /&gt;
|-&lt;br /&gt;
| SinusRefMaxCycles || How many periods of sinusoidal search motion should be performed&lt;br /&gt;
|-&lt;br /&gt;
| Offset || Distance of the 0 position to the referencing switch in encoder tics (divide by the [[Gear Scale]] to get degrees or mm). To invert the direction of the offset, reverse the sign (+/-).&lt;br /&gt;
|-&lt;br /&gt;
| RefSpeed || Sets the initial referencing speed: lower is slower. To invert the direction of movement, reverse the sign (+/-) of the number. The value -1 is not allowed, use -2 instead.&lt;br /&gt;
|-&lt;br /&gt;
| RefSpeedSlow || Sets the precision referencing speed: lower is slower and more precise. To invert the direction of movement, reverse the sign (+/-) of the number. The value -1 is not allowed, use -2 instead.&lt;br /&gt;
|-&lt;br /&gt;
| RefFromBothSides || Use the midpoint of the trigger signal instead of the rising/falling edge.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Motor Parameters===&lt;br /&gt;
&#039;&#039;&#039;All numbers must be integer.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please read [[Motor Current Parameter]] for a translation of the CS parameters to amps. Values between 1 and 32 are allowed. Low values mean less current and will stall the axis under load, large values will overheat the motor/module.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| SGThreshold || TMC2660 StallGuard threshold&lt;br /&gt;
|-&lt;br /&gt;
| CSLoad || Current under load conditions [[Motor_Current_Parameter|(arbitrary units)]]&lt;br /&gt;
|-&lt;br /&gt;
| CSStart || Current when starting a motion [[Motor_Current_Parameter|(arbitrary units)]]&lt;br /&gt;
|-&lt;br /&gt;
| CSIdle || Current when position is held [[Motor_Current_Parameter|(arbitrary units)]]&lt;br /&gt;
|-&lt;br /&gt;
| CSRef || Current during referencing [[Motor_Current_Parameter|(arbitrary units)]]&lt;br /&gt;
|-&lt;br /&gt;
| StartArea || Speed of the start up current - do not change&lt;br /&gt;
|-&lt;br /&gt;
| MinSupplyVoltage || Minimum voltage, below this the low voltage or estop error ([[Error_Codes#CPRCANv2|error LOWV/ESTOP]]) occurs.&lt;br /&gt;
|-&lt;br /&gt;
| MaxTemperature || Maximum temperature. If the temperature of the electronics module (not motor) exceeds this value the over temperature error ([[Error_Codes#CPRCANv2|error TEMP]]) occurs and the motor is shut off.&lt;br /&gt;
|-&lt;br /&gt;
| Microstepping || Defines the microstepping - set to 0, do not change&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parameter V2 ==&lt;br /&gt;
This format specifies one parameter per line, identified by index and subindex numbers. Name and unit are given for readability.&lt;br /&gt;
&lt;br /&gt;
Please note that some parameters are only informational and can not be written. This includes serial number, firmware version and CAN ID among others.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Parameter set for Commonplace Robotics robotics control  /--&amp;gt;&lt;br /&gt;
&amp;lt;!-- Target Robot: igus robolink                              /--&amp;gt;&lt;br /&gt;
&amp;lt;!-- support@cpr-robots.com                                   /--&amp;gt;&lt;br /&gt;
&amp;lt;AmpParameter&amp;gt;&lt;br /&gt;
    &amp;lt;Configuration ModuleType=&amp;quot;ObjectLibrary&amp;quot; NrOfJoints=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Joint0 ID=&amp;quot;16&amp;quot; Version=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;0&amp;quot;  SubIndex=&amp;quot;0&amp;quot;     Name=&amp;quot;Serialno.&amp;quot;                                 Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;0&amp;quot;  SubIndex=&amp;quot;1&amp;quot;     Name=&amp;quot;Firmware version&amp;quot;                          Value=&amp;quot;135425&amp;quot;       Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;0&amp;quot;  SubIndex=&amp;quot;2&amp;quot;     Name=&amp;quot;Hardwareno.&amp;quot;                               Value=&amp;quot;80&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;0&amp;quot;  SubIndex=&amp;quot;3&amp;quot;     Name=&amp;quot;min. supply Voltage&amp;quot;                       Value=&amp;quot;20000&amp;quot;        Unit=&amp;quot;mV&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;0&amp;quot;  SubIndex=&amp;quot;4&amp;quot;     Name=&amp;quot;max. Boardtemp&amp;quot;                            Value=&amp;quot;70000&amp;quot;        Unit=&amp;quot;m°C&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;0&amp;quot;     Name=&amp;quot;Encoder Tics&amp;quot;                              Value=&amp;quot;4000&amp;quot;         Unit=&amp;quot;1/Rev&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;1&amp;quot;     Name=&amp;quot;no. of pole pairs&amp;quot;                         Value=&amp;quot;4&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;2&amp;quot;     Name=&amp;quot;Winding resistance&amp;quot;                        Value=&amp;quot;50&amp;quot;           Unit=&amp;quot;mOhm&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;3&amp;quot;     Name=&amp;quot;Winding inductance&amp;quot;                        Value=&amp;quot;30&amp;quot;           Unit=&amp;quot;mH&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;4&amp;quot;     Name=&amp;quot;maxRPM&amp;quot;                                    Value=&amp;quot;3000&amp;quot;         Unit=&amp;quot;RPM&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;5&amp;quot;     Name=&amp;quot;max. Motortemp.&amp;quot;                           Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;m°C&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;6&amp;quot;     Name=&amp;quot;max. current&amp;quot;                              Value=&amp;quot;8000&amp;quot;         Unit=&amp;quot;mA&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;7&amp;quot;     Name=&amp;quot;StartUpMethod&amp;quot;                             Value=&amp;quot;4&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;8&amp;quot;     Name=&amp;quot;Rotor offset&amp;quot;                              Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;Tics&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;9&amp;quot;     Name=&amp;quot;Encoder inverted&amp;quot;                          Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;10&amp;quot;    Name=&amp;quot;Motor inverted&amp;quot;                            Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;11&amp;quot;    Name=&amp;quot;OpenLoopCurrent&amp;quot;                           Value=&amp;quot;2000&amp;quot;         Unit=&amp;quot;mA&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;12&amp;quot;    Name=&amp;quot;OpenLoopCurrent Standstill&amp;quot;                Value=&amp;quot;50&amp;quot;           Unit=&amp;quot;mA&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;13&amp;quot;    Name=&amp;quot;OpenLoopCurrent Calibration&amp;quot;               Value=&amp;quot;3200&amp;quot;         Unit=&amp;quot;mA&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;14&amp;quot;    Name=&amp;quot;CalibrationTime&amp;quot;                           Value=&amp;quot;50&amp;quot;           Unit=&amp;quot;ms&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;15&amp;quot;    Name=&amp;quot;RotorCalibrated&amp;quot;                           Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;16&amp;quot;    Name=&amp;quot;ThirdHarmonicActive&amp;quot;                       Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;0&amp;quot;     Name=&amp;quot;Controltype&amp;quot;                               Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;1&amp;quot;     Name=&amp;quot;Referencing type&amp;quot;                          Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;2&amp;quot;     Name=&amp;quot;Referencing Offset&amp;quot;                        Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;Tics&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;3&amp;quot;     Name=&amp;quot;Referencing speed&amp;quot;                         Value=&amp;quot;30&amp;quot;           Unit=&amp;quot;RPM&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;4&amp;quot;     Name=&amp;quot;Referencing speed slow&amp;quot;                    Value=&amp;quot;10&amp;quot;           Unit=&amp;quot;RPM&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;5&amp;quot;     Name=&amp;quot;Referencing switch type&amp;quot;                   Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;6&amp;quot;     Name=&amp;quot;max. positionlag&amp;quot;                          Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;Tics&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;7&amp;quot;     Name=&amp;quot;Enable Break&amp;quot;                              Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;8&amp;quot;     Name=&amp;quot;Break PWM high&amp;quot;                            Value=&amp;quot;70&amp;quot;           Unit=&amp;quot;%&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;9&amp;quot;     Name=&amp;quot;Break PWM low&amp;quot;                             Value=&amp;quot;70&amp;quot;           Unit=&amp;quot;%&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;10&amp;quot;    Name=&amp;quot;IPO Position&amp;quot;                              Value=&amp;quot;200000&amp;quot;       Unit=&amp;quot;Tics&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;11&amp;quot;    Name=&amp;quot;IPO Velocity&amp;quot;                              Value=&amp;quot;200000&amp;quot;       Unit=&amp;quot;Tics/10ms&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;12&amp;quot;    Name=&amp;quot;Axis inverted&amp;quot;                             Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;0&amp;quot;     Name=&amp;quot;Position P&amp;quot;                                Value=&amp;quot;20&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;1&amp;quot;     Name=&amp;quot;Position I&amp;quot;                                Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;2&amp;quot;     Name=&amp;quot;Position D&amp;quot;                                Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;3&amp;quot;     Name=&amp;quot;Position AntiWindUp&amp;quot;                       Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;4&amp;quot;     Name=&amp;quot;Position min&amp;quot;                              Value=&amp;quot;-2500&amp;quot;        Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;5&amp;quot;     Name=&amp;quot;Position max&amp;quot;                              Value=&amp;quot;2500&amp;quot;         Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;6&amp;quot;     Name=&amp;quot;Position sensor&amp;quot;                           Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;7&amp;quot;     Name=&amp;quot;Velocity P&amp;quot;                                Value=&amp;quot;100&amp;quot;          Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;8&amp;quot;     Name=&amp;quot;Velocity I&amp;quot;                                Value=&amp;quot;20&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;9&amp;quot;     Name=&amp;quot;Velocity D&amp;quot;                                Value=&amp;quot;5&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;10&amp;quot;    Name=&amp;quot;Velocity AntiWindUp&amp;quot;                       Value=&amp;quot;409600&amp;quot;       Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;11&amp;quot;    Name=&amp;quot;Velocity min&amp;quot;                              Value=&amp;quot;-2048&amp;quot;        Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;12&amp;quot;    Name=&amp;quot;Velocity max&amp;quot;                              Value=&amp;quot;2048&amp;quot;         Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;13&amp;quot;    Name=&amp;quot;Velocity sensor&amp;quot;                           Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;14&amp;quot;    Name=&amp;quot;DQ P&amp;quot;                                      Value=&amp;quot;20&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;15&amp;quot;    Name=&amp;quot;DQ I&amp;quot;                                      Value=&amp;quot;2&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;16&amp;quot;    Name=&amp;quot;DQ D&amp;quot;                                      Value=&amp;quot;2&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;17&amp;quot;    Name=&amp;quot;DQ AntiWindUp&amp;quot;                             Value=&amp;quot;409600&amp;quot;       Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;18&amp;quot;    Name=&amp;quot;DQ min&amp;quot;                                    Value=&amp;quot;-1024&amp;quot;        Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;19&amp;quot;    Name=&amp;quot;DQ max&amp;quot;                                    Value=&amp;quot;1024&amp;quot;         Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;20&amp;quot;    Name=&amp;quot;OpenLoop current P&amp;quot;                        Value=&amp;quot;20&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;21&amp;quot;    Name=&amp;quot;OpenLoop current I&amp;quot;                        Value=&amp;quot;2&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;22&amp;quot;    Name=&amp;quot;OpenLoop current D&amp;quot;                        Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;23&amp;quot;    Name=&amp;quot;OpenLoop current AntiWindUp&amp;quot;               Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;24&amp;quot;    Name=&amp;quot;OpenLoop current min&amp;quot;                      Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;25&amp;quot;    Name=&amp;quot;OpenLoop current max&amp;quot;                      Value=&amp;quot;1024&amp;quot;         Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;4&amp;quot;  SubIndex=&amp;quot;0&amp;quot;     Name=&amp;quot;CAN max. missed coms&amp;quot;                      Value=&amp;quot;1000&amp;quot;         Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;4&amp;quot;  SubIndex=&amp;quot;1&amp;quot;     Name=&amp;quot;CAN ID Source&amp;quot;                             Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;4&amp;quot;  SubIndex=&amp;quot;2&amp;quot;     Name=&amp;quot;CAN ID&amp;quot;                                    Value=&amp;quot;32&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;4&amp;quot;  SubIndex=&amp;quot;3&amp;quot;     Name=&amp;quot;SPI Active&amp;quot;                                Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Joint0&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Board Parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Serial no. || Serial number of the product. Used to identify the date of manufacture.&lt;br /&gt;
|-&lt;br /&gt;
| Firmwareversion || Firmware version number to identify the current software version.&lt;br /&gt;
|-&lt;br /&gt;
| Hardwareno. || Hardware version number to identify the hardware configuration used.&lt;br /&gt;
|-&lt;br /&gt;
| min. supply Voltage || Minimum permissible supply voltage. The minimum supply voltage should be approx. 2V below the nominal voltage. If the supply voltage falls below this limit, the board issues an error message.&lt;br /&gt;
|-&lt;br /&gt;
| max. Boardtemp. || Maximum permissible board temperature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Motor Parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Encoder Tics || Number of encoder pulses per revolution according to data sheet.&lt;br /&gt;
|-&lt;br /&gt;
| No. of Polepairs || Number of pole pairs in the motor according to the data sheet.&lt;br /&gt;
|-&lt;br /&gt;
| max. RPM || Maximum rotational speed of the motor. Setting is made according to the data sheet of the motor or on the basis of subsequent components. The value 0 cancels the limitation.&lt;br /&gt;
|-&lt;br /&gt;
| max. Motortemp. || Maximum temperature in the motor. The measurement is performed via an optional sensor. The value 0 deactivates the query.&lt;br /&gt;
|-&lt;br /&gt;
| max. Current || Maximum motor current according to data sheet.&lt;br /&gt;
|-&lt;br /&gt;
| StartUpMethod || Method used to set up the motor when starting the controller. With the automatic start options, the motor starts IPO afterwards. &lt;br /&gt;
* 0: Openloop&lt;br /&gt;
* 1: Closedloop with rotor alignment&lt;br /&gt;
* 2: Closedloop with index search&lt;br /&gt;
* 3: Closedloop for DC Motor&lt;br /&gt;
* 4: Closedloop with rotor alignment and check for free rotation &lt;br /&gt;
* 10: Closedloop with rotor alignment and autostart&lt;br /&gt;
|-&lt;br /&gt;
| EncoderInverted || Setting for the direction of rotation of the encoder. The direction of rotation of the signals at the input of the controller must be clockwise according to DIN EN 60034-8. After a change, the controller must be restarted. &lt;br /&gt;
* 0: Encoder not inverted&lt;br /&gt;
* 1: Encoder inverted&lt;br /&gt;
|-&lt;br /&gt;
| MotorInverted || The direction of rotation of the motor must be clockwise according to DIN EN 60034-8. If the setting is incorrect, the motor does not rotate. Only the motor current increases. &lt;br /&gt;
* 0: Motor not inverted&lt;br /&gt;
* 1: Motor inverted&lt;br /&gt;
|-&lt;br /&gt;
| OpenLoopCurrent || Setpoint current for the openloop control of the motor.&lt;br /&gt;
|-&lt;br /&gt;
| OpenLoopCurrent Standstill || Setpoint current for the openloop control at standstill.&lt;br /&gt;
|-&lt;br /&gt;
| OpenLoopCurrent Calibration || Set current for rotor alignment.&lt;br /&gt;
|-&lt;br /&gt;
| Calibration Time || Duration for the alignment of the rotor.&lt;br /&gt;
|-&lt;br /&gt;
| Motor Nominal Current || Maximum motor current that must not be exceeded for more then 2 seconds continously.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Axis Parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Reserved || Reserved for future use.&lt;br /&gt;
|-&lt;br /&gt;
| ReferencingType || Selection for the referencing type. &lt;br /&gt;
* 0: No referencing current position = 0&lt;br /&gt;
* 1: Linear motion&lt;br /&gt;
* 2: Sinusoidal movement (sinusoidal search for the sensor)&lt;br /&gt;
* 3: Half disks (referencing method for axes equipped with a half disk, e.g. Robolink DP)&lt;br /&gt;
* 4: Gearencoder (only Rebel)&lt;br /&gt;
|-&lt;br /&gt;
| ReferencingOffset || Offset for the axis position after referencing.&lt;br /&gt;
|-&lt;br /&gt;
| ReferencingSpeed || Speed for approaching the sensor. &lt;br /&gt;
&#039;&#039;&#039;If the axis is referenced in the wrong direction, this parameter can be set to negative.&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| ReferencingSpeedSlow || Speed for fine positioning of the axis during homing. &lt;br /&gt;
&#039;&#039;&#039;If the axis is referenced in the wrong direction, this parameter can be set to negative.&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| ReferencingSwitchType || Type of the reference sensor. &lt;br /&gt;
* 0: n.C.&lt;br /&gt;
* 1: n.O.&lt;br /&gt;
|-&lt;br /&gt;
| max. Positionlag || Permissible position error of the axis. With fast movements, the axis runs after the position setpoint. If the limit value is exceeded, the axis stops and an error message appears. If the value is set to 0, there is no monitoring.&lt;br /&gt;
|-&lt;br /&gt;
| Break Type || Parameter for activating a brake on the robot axis. If the robot has a holding brake, which should be controlled by the motor controller, this value must be set. The brakes are released when the axes are activated. &lt;br /&gt;
* 0: No brake&lt;br /&gt;
* 1: Friction brake&lt;br /&gt;
* 2: Blocking brake. &lt;br /&gt;
In blocking brake mode, a free-positioning movement occurs. A blocking brake means a pin or similar, which blocks the rotor. A friction brake describes a disc brake.&lt;br /&gt;
|-&lt;br /&gt;
| Break PWM High || If a brake is configured on the axis, this parameter specifies the PWM value for releasing the brake.&lt;br /&gt;
|-&lt;br /&gt;
| Break PWM Low || Voltage to hold the brake after releasing the brake; the motor controller lowers the output voltage to the specified value.&lt;br /&gt;
|-&lt;br /&gt;
| IPO Position || Positive position value for the IPO. In standalone mode, the IPO moves this value symmetrically around the zero point, from -IPO position to IPO position.&lt;br /&gt;
|-&lt;br /&gt;
| IPO Velocity || Speed for IPO mode in standalone operation.&lt;br /&gt;
|-&lt;br /&gt;
| Axis inverted || Changes the direction of the axis.&lt;br /&gt;
|-&lt;br /&gt;
| Gear ratio || Gear ratio of the gear unit. For i=1:50 correspondingly 50. Only integer values are possible.&lt;br /&gt;
|-&lt;br /&gt;
| Axis Enc Type || Encoder type.&lt;br /&gt;
* 0: No absolute value transmitter (e.g. linear axis with referencing switch)&lt;br /&gt;
* 1: Hatron absolute value transmitter (e.g. ReBeL-01 and ReBeL-02)&lt;br /&gt;
* 2: ICMU absolute value transmitter (e.g. ReBeL-03)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Control Parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Position P || P component for position control.&lt;br /&gt;
|-&lt;br /&gt;
| Position I || I component for position control.&lt;br /&gt;
|-&lt;br /&gt;
| Position P scale || Scaling of the P component by 2&amp;lt;sup&amp;gt;x&amp;lt;/sup&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| Position min. || Minimum limitation for the output of the position control.&lt;br /&gt;
|-&lt;br /&gt;
| Position max. || Maximum limitation for the output of the position control.&lt;br /&gt;
|-&lt;br /&gt;
| Velocity P || P component for speed control.&lt;br /&gt;
|-&lt;br /&gt;
| Velocity I || I portion for speed control.&lt;br /&gt;
|-&lt;br /&gt;
| Velocity P scale || Scaling of the P component in 2&amp;lt;sup&amp;gt;x&amp;lt;/sup&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| Velocity min. || Minimum limitation for the output of the speed control.&lt;br /&gt;
|-&lt;br /&gt;
| Velocity max. || Maximum limitation for the output of the speed control.&lt;br /&gt;
|-&lt;br /&gt;
| DQ-P || P component for DQ control.&lt;br /&gt;
|-&lt;br /&gt;
| DQ-I || I component for DQ control.&lt;br /&gt;
|-&lt;br /&gt;
| DQ back calc || Backcalculation factor for DQ controller.&lt;br /&gt;
|-&lt;br /&gt;
| DQ-min. || Minimum limitation for the output of the DQ control.&lt;br /&gt;
|-&lt;br /&gt;
| DQ-max. || Maximum limitation for the output of the DQ control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop P || P component for Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop I || I component for Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop D || D component for Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop AntiWindUp || AntiWindUp for Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop min. || Minimum limitation for the output of the Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop max. || Maximum limitation for the output of the Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Communication Parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| CAN max. missed Coms || Maximum number of failed communication attempts on the CAN bus. Exceeding the value leads to the motor controller being switched off.&lt;br /&gt;
|-&lt;br /&gt;
| CAN ID Source || Source for the CAN ID. &lt;br /&gt;
* 1: Hardware jumper&lt;br /&gt;
* 2: Parameter set.&lt;br /&gt;
|-&lt;br /&gt;
| CAN ID || CAN ID for the controller.&lt;br /&gt;
|-&lt;br /&gt;
| SPI Active || Enable SPI communication.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:CPRog]][[Category:Configuration]][[Category:Referencing]]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Firmware_Parameter_Configuration&amp;diff=1058</id>
		<title>Firmware Parameter Configuration</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Firmware_Parameter_Configuration&amp;diff=1058"/>
		<updated>2026-06-12T11:16:53Z</updated>

		<summary type="html">&lt;p&gt;OLT: /* General Procedure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;While most robot specific settings are stored in the configuration files in CPRog/iRC and on the embedded control axis specific settings are stored in the axis control modules themselves. This includes parameters for motion, referencing and motor current. This article explains these parameters and how to access them.&lt;br /&gt;
&lt;br /&gt;
This article applies to all robots with modular control, robolink DCI and ReBeL joints. It does not apply to the Mover robots.&lt;br /&gt;
&lt;br /&gt;
= General Procedure =&lt;br /&gt;
* Load the firmware parameters from the axis modules&lt;br /&gt;
* Change values using a basic text editor&lt;br /&gt;
* Upload the file to the modules&lt;br /&gt;
* Restart the robot&lt;br /&gt;
&lt;br /&gt;
Since iRC version 15.0.0 you can change the firmware parameters directly in software. Simply go to &amp;quot;File -&amp;gt; Firmware Configuration&amp;quot; and &amp;quot;Load parameters from axes&amp;quot;. Change the values and upload them back to the modules via &amp;quot;Write parameters to axes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Download Configuration ==&lt;br /&gt;
&lt;br /&gt;
* Open CPRog/iRC&lt;br /&gt;
* Connect to the robot via Ethernet or a USB-CAN-Adapter&lt;br /&gt;
* Check if all green LEDs on top of &#039;&#039;&#039;all&#039;&#039;&#039; motor modules are blinking. If a module is not blinking, it might not be configured correctly. Did you save the project and restart the hardware?&lt;br /&gt;
* Click &amp;quot;File&amp;quot; at the top of CPRog/iRC to access the backstage menu&lt;br /&gt;
* Click &amp;quot;Get Amp configuration&amp;quot; (see the image below)&lt;br /&gt;
* Now a parameter file is written in the Data\Backup directory in the CPRog/iRC installation directory (e.g. C:\CPRog\Data\Backup or C:\iRC-igusRobotControl\Data\Backup)&lt;br /&gt;
&lt;br /&gt;
== Upload Configuration ==&lt;br /&gt;
&lt;br /&gt;
* Change the file according to your requirements using a basic text editor like Notepad or Notepad++ (see section Parameter File below)&lt;br /&gt;
* Click &amp;quot;Set Amp configuration&amp;quot;&lt;br /&gt;
* Choose the updated .dat file&lt;br /&gt;
* Wait until all parameters are written, approx 20s. Another backup of the previous values is also created.&lt;br /&gt;
* For some parameter, e.g. the encoder direction, the control needs a cold restart&lt;br /&gt;
* Test if the changes result in a better performance.&lt;br /&gt;
&lt;br /&gt;
[[File:CPRogAmpConfig.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Verification of Joint Operation ==&lt;br /&gt;
Now the correct operation of the joints needs to be verified.&lt;br /&gt;
* Be ready to press the &#039;&#039;&#039;emergency stop&#039;&#039;&#039; button. Changing parameters can result in unexpected motion, especially when setting up an unknown axis.&lt;br /&gt;
* Once the controller has booted up, the motor module LEDs are blinking green, &#039;&#039;&#039;connect&#039;&#039;&#039;, &#039;&#039;&#039;reset&#039;&#039;&#039; and &#039;&#039;&#039;enable&#039;&#039;&#039; the robot.&lt;br /&gt;
* Try to move the joint by clicking on the buttons in the jog section of CPRog/iRC.&lt;br /&gt;
* If the joint moves correctly check whether it references. Click &#039;&#039;&#039;Reference&#039;&#039;&#039;, then &#039;&#039;&#039;Reset&#039;&#039;&#039;, &#039;&#039;&#039;Enable&#039;&#039;&#039;, &#039;&#039;&#039;Reference axis&#039;&#039;&#039;. Watch for collisions and use the emergency stop if necessary - the referencing motion might not stop if not set up correctly. If the joint shows up as &amp;quot;referenced&amp;quot; the referencing works correctly. The position lag error is the expected state, reset it by clicking &#039;&#039;&#039;Reset&#039;&#039;&#039; and &#039;&#039;&#039;Enable&#039;&#039;&#039;.&lt;br /&gt;
* Next set up a program that moves the axis over 30-60min. Observe the module temperature in CPRog/iRC and the motor temperature (there are no sensors in the motor itself). Increase the motor current, if the axis is struggling to move or reduce the motor current if the motor or motor module is getting hot.&lt;br /&gt;
&lt;br /&gt;
= Parameter File =&lt;br /&gt;
&lt;br /&gt;
The parameter files contain a set of parameter for each joint of the robot. &amp;quot;Joint0&amp;quot; is the set for the first axis, &amp;quot;Joint1&amp;quot; for the second etc. The parameter &amp;quot;ID&amp;quot; is the CAN ID in decimal format as selected at switch/jumper/etc at the module.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Joint0 ID=&amp;quot;16&amp;quot; Version=&amp;quot;Product 0x42 FW 0x02 0x10&amp;quot;...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Currently there are two parameter formats: V1 and V2. V2 is used by newer BLDC axis controllers (e.g. ReBeL joints). The parameter format is preselected by a configuration parameter.&lt;br /&gt;
&lt;br /&gt;
== Parameter V1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Parameter set for Commonplace Robotics robotics control  /--&amp;gt;&lt;br /&gt;
&amp;lt;!-- Target Robot: igus robolink                              /--&amp;gt;&lt;br /&gt;
&amp;lt;!-- support@cpr-robots.com                                   /--&amp;gt;&lt;br /&gt;
&amp;lt;AmpParameter&amp;gt;&lt;br /&gt;
    &amp;lt;Configuration ModuleType=&amp;quot;RailStepperV02&amp;quot; NrOfJoints=&amp;quot;3&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Joint0 ID=&amp;quot;16&amp;quot; Version=&amp;quot;Product 0x42 FW 0x02 0x10&amp;quot;&lt;br /&gt;
         ComTimeOut=&amp;quot;2000&amp;quot; MaxCurrent=&amp;quot;200&amp;quot; MaxLag=&amp;quot;5000&amp;quot; EncoderErrorDetection=&amp;quot;0&amp;quot; PosP=&amp;quot;1.000&amp;quot; PosI=&amp;quot;0.0000&amp;quot; PosD=&amp;quot;0.000&amp;quot; PosAWU=&amp;quot;30&amp;quot;&lt;br /&gt;
         Encoder=&amp;quot;True&amp;quot; SwapEncoderDirection=&amp;quot;False&amp;quot; EndSwitchRising=&amp;quot;True&amp;quot; StopOnEndSwitch=&amp;quot;False&amp;quot; UseIndexAsRef=&amp;quot;False&amp;quot;&lt;br /&gt;
         RefStraight=&amp;quot;False&amp;quot; RefSinus=&amp;quot;False&amp;quot; RefHalf=&amp;quot;True&amp;quot; SinusRefTics=&amp;quot;2000&amp;quot; SinusRefMaxCycles=&amp;quot;6&amp;quot;&lt;br /&gt;
         Offset=&amp;quot;0&amp;quot; RefSpeed=&amp;quot;50&amp;quot; RefSpeedSlow=&amp;quot;10&amp;quot; RefFromBothSides=&amp;quot;True&amp;quot;&lt;br /&gt;
         SGThreshold=&amp;quot;2&amp;quot; CSLoad=&amp;quot;18&amp;quot; CSStart=&amp;quot;18&amp;quot; CSIdle=&amp;quot;6&amp;quot; CSRef=&amp;quot;15&amp;quot; StartArea=&amp;quot;200&amp;quot;&lt;br /&gt;
         MinSupplyVoltage=&amp;quot;500&amp;quot; MaxTemperature=&amp;quot;500&amp;quot; Microstepping=&amp;quot;0&amp;quot;&lt;br /&gt;
        /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Joint1 ID=&amp;quot;32&amp;quot; Version=&amp;quot;Product 0x42 FW 0x02 0x10&amp;quot;&lt;br /&gt;
         ComTimeOut=&amp;quot;2000&amp;quot; MaxCurrent=&amp;quot;200&amp;quot; MaxLag=&amp;quot;5000&amp;quot; EncoderErrorDetection=&amp;quot;0&amp;quot; PosP=&amp;quot;1.000&amp;quot; PosI=&amp;quot;0.0000&amp;quot; PosD=&amp;quot;0.000&amp;quot; PosAWU=&amp;quot;30&amp;quot;&lt;br /&gt;
         Encoder=&amp;quot;True&amp;quot; SwapEncoderDirection=&amp;quot;False&amp;quot; EndSwitchRising=&amp;quot;True&amp;quot; StopOnEndSwitch=&amp;quot;False&amp;quot; UseIndexAsRef=&amp;quot;False&amp;quot;&lt;br /&gt;
         RefStraight=&amp;quot;False&amp;quot; RefSinus=&amp;quot;False&amp;quot; RefHalf=&amp;quot;True&amp;quot; SinusRefTics=&amp;quot;2000&amp;quot; SinusRefMaxCycles=&amp;quot;6&amp;quot;&lt;br /&gt;
         Offset=&amp;quot;891&amp;quot; RefSpeed=&amp;quot;-50&amp;quot; RefSpeedSlow=&amp;quot;-10&amp;quot; RefFromBothSides=&amp;quot;True&amp;quot;&lt;br /&gt;
         SGThreshold=&amp;quot;2&amp;quot; CSLoad=&amp;quot;26&amp;quot; CSStart=&amp;quot;26&amp;quot; CSIdle=&amp;quot;10&amp;quot; CSRef=&amp;quot;20&amp;quot; StartArea=&amp;quot;200&amp;quot;&lt;br /&gt;
         MinSupplyVoltage=&amp;quot;500&amp;quot; MaxTemperature=&amp;quot;500&amp;quot; Microstepping=&amp;quot;0&amp;quot;&lt;br /&gt;
        /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Joint2 ID=&amp;quot;48&amp;quot; Version=&amp;quot;Product 0x42 FW 0x04 0x07&amp;quot;&lt;br /&gt;
         ComTimeOut=&amp;quot;3000&amp;quot; MaxCurrent=&amp;quot;0&amp;quot; MaxLag=&amp;quot;5000&amp;quot; EncoderErrorDetection=&amp;quot;1000&amp;quot; PosP=&amp;quot;1.000&amp;quot; PosI=&amp;quot;0.0000&amp;quot; PosD=&amp;quot;0.000&amp;quot; PosAWU=&amp;quot;0&amp;quot;&lt;br /&gt;
         Encoder=&amp;quot;True&amp;quot; SwapEncoderDirection=&amp;quot;False&amp;quot; EndSwitchRising=&amp;quot;True&amp;quot; StopOnEndSwitch=&amp;quot;False&amp;quot; UseIndexAsRef=&amp;quot;False&amp;quot;&lt;br /&gt;
         RefStraight=&amp;quot;True&amp;quot; RefSinus=&amp;quot;False&amp;quot; RefHalf=&amp;quot;False&amp;quot; SinusRefTics=&amp;quot;500&amp;quot; SinusRefMaxCycles=&amp;quot;6&amp;quot;&lt;br /&gt;
         Offset=&amp;quot;-1&amp;quot; RefSpeed=&amp;quot;40&amp;quot; RefSpeedSlow=&amp;quot;5&amp;quot; RefFromBothSides=&amp;quot;True&amp;quot;&lt;br /&gt;
         SGThreshold=&amp;quot;2&amp;quot; CSLoad=&amp;quot;10&amp;quot; CSStart=&amp;quot;10&amp;quot; CSIdle=&amp;quot;3&amp;quot; CSRef=&amp;quot;8&amp;quot; StartArea=&amp;quot;200&amp;quot;&lt;br /&gt;
         MinSupplyVoltage=&amp;quot;500&amp;quot; MaxTemperature=&amp;quot;430&amp;quot; Microstepping=&amp;quot;0&amp;quot;&lt;br /&gt;
        /&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
&amp;lt;/AmpParameter&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please only change the values in  quote marks, do not delete any quote marks, do not use decimal separators. This config file is case sensitive, so lower case and upper case matters.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Encoder Parameters===&lt;br /&gt;
If the additional external axis is equipped with a motor encoder enter the parameters as shown below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;All numbers, other than those for PosP PosI and PosD must be integer.&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| ComTimeOut || Maximum duration without communication before the communication error state ([[Error_Codes#CPRCANv2|error COM]]) is entered&lt;br /&gt;
|-&lt;br /&gt;
| MaxCurrent || not used&lt;br /&gt;
|-&lt;br /&gt;
| MaxLag || How many encoder tics is the encoder signal allowed to lag behind the desired motor position. See also parameter EncoderErrorDetection.&lt;br /&gt;
|-&lt;br /&gt;
| EncoderErrorDetection || Encoder error detection: Number of tics the encoder signal is allowed to lag behind the desired motor position before the encoder error state ([[Error_Codes#CPRCANv2|error ENC]]) is entered. Divide this value by the [[Gear Scale]] to translate to degrees or mm.&lt;br /&gt;
|-&lt;br /&gt;
| PosP || PID control parameter P - do not change&lt;br /&gt;
|-&lt;br /&gt;
| PosI || PID control parameter I - do not change&lt;br /&gt;
|-&lt;br /&gt;
| PosD || PID control parameter D - do not change&lt;br /&gt;
|-&lt;br /&gt;
| PosAWU || PID control parameter anti wind up - do not change. This value has no effect if PosI is 0.&lt;br /&gt;
|-&lt;br /&gt;
| Encoder || Enable or disable the encoder (disable only if you got a motor without encoder)&lt;br /&gt;
|-&lt;br /&gt;
| SwapEncoderDirection || Inverts the encoder direction - change if the encoder counts opposite to the motor. This does not change the motion direction, the axis will not move correctly if set to the wrong value!&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Reference/Ini Sensor Parameters===&lt;br /&gt;
These parameters define how the axis references itself. For referencing the referencing/ini switch and/or the motor&#039;s index pulse can be used, different motion patterns are available depending on the axis types.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;All numbers must integer.&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| EndSwitchRising || Trigger on the rising edge (set to True) or on the falling edge (&amp;quot;False&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| StopOnEndSwitch || Stop referencing motion when the end-switch is triggered&lt;br /&gt;
|-&lt;br /&gt;
| UseIndexAsRef || Use the index pulse of the motor for referencing. Set to false to use the referencing switch.&lt;br /&gt;
|-&lt;br /&gt;
| UseIniAndIndexAsRef || Use the index pulse and the referencing switch for referencing.&lt;br /&gt;
|-&lt;br /&gt;
| RefStraight || For linear axes: Moves in one direction until the referencing switch is reached.&lt;br /&gt;
|-&lt;br /&gt;
| RefSinus || Rotational axes: Sinusoidal search motion (increasing back and forth motion until the switch is reached).&lt;br /&gt;
|-&lt;br /&gt;
| RefHalf || For rotational axes with half-disc inis. The state of the referencing switch determines the search direction.&lt;br /&gt;
|-&lt;br /&gt;
| SinusRefTics || How many encoder tics should  the sinusoidal search motion be incremented by per period&lt;br /&gt;
|-&lt;br /&gt;
| SinusRefMaxCycles || How many periods of sinusoidal search motion should be performed&lt;br /&gt;
|-&lt;br /&gt;
| Offset || Distance of the 0 position to the referencing switch in encoder tics (divide by the [[Gear Scale]] to get degrees or mm). To invert the direction of the offset, reverse the sign (+/-).&lt;br /&gt;
|-&lt;br /&gt;
| RefSpeed || Sets the initial referencing speed: lower is slower. To invert the direction of movement, reverse the sign (+/-) of the number. The value -1 is not allowed, use -2 instead.&lt;br /&gt;
|-&lt;br /&gt;
| RefSpeedSlow || Sets the precision referencing speed: lower is slower and more precise. To invert the direction of movement, reverse the sign (+/-) of the number. The value -1 is not allowed, use -2 instead.&lt;br /&gt;
|-&lt;br /&gt;
| RefFromBothSides || Use the midpoint of the trigger signal instead of the rising/falling edge.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Motor Parameters===&lt;br /&gt;
&#039;&#039;&#039;All numbers must be integer.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please read [[Motor Current Parameter]] for a translation of the CS parameters to amps. Values between 1 and 32 are allowed. Low values mean less current and will stall the axis under load, large values will overheat the motor/module.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| SGThreshold || TMC2660 StallGuard threshold&lt;br /&gt;
|-&lt;br /&gt;
| CSLoad || Current under load conditions [[Motor_Current_Parameter|(arbitrary units)]]&lt;br /&gt;
|-&lt;br /&gt;
| CSStart || Current when starting a motion [[Motor_Current_Parameter|(arbitrary units)]]&lt;br /&gt;
|-&lt;br /&gt;
| CSIdle || Current when position is held [[Motor_Current_Parameter|(arbitrary units)]]&lt;br /&gt;
|-&lt;br /&gt;
| CSRef || Current during referencing [[Motor_Current_Parameter|(arbitrary units)]]&lt;br /&gt;
|-&lt;br /&gt;
| StartArea || Speed of the start up current - do not change&lt;br /&gt;
|-&lt;br /&gt;
| MinSupplyVoltage || Minimum voltage, below this the low voltage or estop error ([[Error_Codes#CPRCANv2|error LOWV/ESTOP]]) occurs.&lt;br /&gt;
|-&lt;br /&gt;
| MaxTemperature || Maximum temperature. If the temperature of the electronics module (not motor) exceeds this value the over temperature error ([[Error_Codes#CPRCANv2|error TEMP]]) occurs and the motor is shut off.&lt;br /&gt;
|-&lt;br /&gt;
| Microstepping || Defines the microstepping - set to 0, do not change&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parameter V2 ==&lt;br /&gt;
This format specifies one parameter per line, identified by index and subindex numbers. Name and unit are given for readability.&lt;br /&gt;
&lt;br /&gt;
Please note that some parameters are only informational and can not be written. This includes serial number, firmware version and CAN ID among others.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Parameter set for Commonplace Robotics robotics control  /--&amp;gt;&lt;br /&gt;
&amp;lt;!-- Target Robot: igus robolink                              /--&amp;gt;&lt;br /&gt;
&amp;lt;!-- support@cpr-robots.com                                   /--&amp;gt;&lt;br /&gt;
&amp;lt;AmpParameter&amp;gt;&lt;br /&gt;
    &amp;lt;Configuration ModuleType=&amp;quot;ObjectLibrary&amp;quot; NrOfJoints=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Joint0 ID=&amp;quot;16&amp;quot; Version=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;0&amp;quot;  SubIndex=&amp;quot;0&amp;quot;     Name=&amp;quot;Serialno.&amp;quot;                                 Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;0&amp;quot;  SubIndex=&amp;quot;1&amp;quot;     Name=&amp;quot;Firmware version&amp;quot;                          Value=&amp;quot;135425&amp;quot;       Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;0&amp;quot;  SubIndex=&amp;quot;2&amp;quot;     Name=&amp;quot;Hardwareno.&amp;quot;                               Value=&amp;quot;80&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;0&amp;quot;  SubIndex=&amp;quot;3&amp;quot;     Name=&amp;quot;min. supply Voltage&amp;quot;                       Value=&amp;quot;20000&amp;quot;        Unit=&amp;quot;mV&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;0&amp;quot;  SubIndex=&amp;quot;4&amp;quot;     Name=&amp;quot;max. Boardtemp&amp;quot;                            Value=&amp;quot;70000&amp;quot;        Unit=&amp;quot;m°C&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;0&amp;quot;     Name=&amp;quot;Encoder Tics&amp;quot;                              Value=&amp;quot;4000&amp;quot;         Unit=&amp;quot;1/Rev&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;1&amp;quot;     Name=&amp;quot;no. of pole pairs&amp;quot;                         Value=&amp;quot;4&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;2&amp;quot;     Name=&amp;quot;Winding resistance&amp;quot;                        Value=&amp;quot;50&amp;quot;           Unit=&amp;quot;mOhm&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;3&amp;quot;     Name=&amp;quot;Winding inductance&amp;quot;                        Value=&amp;quot;30&amp;quot;           Unit=&amp;quot;mH&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;4&amp;quot;     Name=&amp;quot;maxRPM&amp;quot;                                    Value=&amp;quot;3000&amp;quot;         Unit=&amp;quot;RPM&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;5&amp;quot;     Name=&amp;quot;max. Motortemp.&amp;quot;                           Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;m°C&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;6&amp;quot;     Name=&amp;quot;max. current&amp;quot;                              Value=&amp;quot;8000&amp;quot;         Unit=&amp;quot;mA&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;7&amp;quot;     Name=&amp;quot;StartUpMethod&amp;quot;                             Value=&amp;quot;4&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;8&amp;quot;     Name=&amp;quot;Rotor offset&amp;quot;                              Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;Tics&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;9&amp;quot;     Name=&amp;quot;Encoder inverted&amp;quot;                          Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;10&amp;quot;    Name=&amp;quot;Motor inverted&amp;quot;                            Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;11&amp;quot;    Name=&amp;quot;OpenLoopCurrent&amp;quot;                           Value=&amp;quot;2000&amp;quot;         Unit=&amp;quot;mA&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;12&amp;quot;    Name=&amp;quot;OpenLoopCurrent Standstill&amp;quot;                Value=&amp;quot;50&amp;quot;           Unit=&amp;quot;mA&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;13&amp;quot;    Name=&amp;quot;OpenLoopCurrent Calibration&amp;quot;               Value=&amp;quot;3200&amp;quot;         Unit=&amp;quot;mA&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;14&amp;quot;    Name=&amp;quot;CalibrationTime&amp;quot;                           Value=&amp;quot;50&amp;quot;           Unit=&amp;quot;ms&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;15&amp;quot;    Name=&amp;quot;RotorCalibrated&amp;quot;                           Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;1&amp;quot;  SubIndex=&amp;quot;16&amp;quot;    Name=&amp;quot;ThirdHarmonicActive&amp;quot;                       Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;0&amp;quot;     Name=&amp;quot;Controltype&amp;quot;                               Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;1&amp;quot;     Name=&amp;quot;Referencing type&amp;quot;                          Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;2&amp;quot;     Name=&amp;quot;Referencing Offset&amp;quot;                        Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;Tics&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;3&amp;quot;     Name=&amp;quot;Referencing speed&amp;quot;                         Value=&amp;quot;30&amp;quot;           Unit=&amp;quot;RPM&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;4&amp;quot;     Name=&amp;quot;Referencing speed slow&amp;quot;                    Value=&amp;quot;10&amp;quot;           Unit=&amp;quot;RPM&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;5&amp;quot;     Name=&amp;quot;Referencing switch type&amp;quot;                   Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;6&amp;quot;     Name=&amp;quot;max. positionlag&amp;quot;                          Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;Tics&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;7&amp;quot;     Name=&amp;quot;Enable Break&amp;quot;                              Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;8&amp;quot;     Name=&amp;quot;Break PWM high&amp;quot;                            Value=&amp;quot;70&amp;quot;           Unit=&amp;quot;%&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;9&amp;quot;     Name=&amp;quot;Break PWM low&amp;quot;                             Value=&amp;quot;70&amp;quot;           Unit=&amp;quot;%&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;10&amp;quot;    Name=&amp;quot;IPO Position&amp;quot;                              Value=&amp;quot;200000&amp;quot;       Unit=&amp;quot;Tics&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;11&amp;quot;    Name=&amp;quot;IPO Velocity&amp;quot;                              Value=&amp;quot;200000&amp;quot;       Unit=&amp;quot;Tics/10ms&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;2&amp;quot;  SubIndex=&amp;quot;12&amp;quot;    Name=&amp;quot;Axis inverted&amp;quot;                             Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;bool&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;0&amp;quot;     Name=&amp;quot;Position P&amp;quot;                                Value=&amp;quot;20&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;1&amp;quot;     Name=&amp;quot;Position I&amp;quot;                                Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;2&amp;quot;     Name=&amp;quot;Position D&amp;quot;                                Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;3&amp;quot;     Name=&amp;quot;Position AntiWindUp&amp;quot;                       Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;4&amp;quot;     Name=&amp;quot;Position min&amp;quot;                              Value=&amp;quot;-2500&amp;quot;        Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;5&amp;quot;     Name=&amp;quot;Position max&amp;quot;                              Value=&amp;quot;2500&amp;quot;         Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;6&amp;quot;     Name=&amp;quot;Position sensor&amp;quot;                           Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;7&amp;quot;     Name=&amp;quot;Velocity P&amp;quot;                                Value=&amp;quot;100&amp;quot;          Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;8&amp;quot;     Name=&amp;quot;Velocity I&amp;quot;                                Value=&amp;quot;20&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;9&amp;quot;     Name=&amp;quot;Velocity D&amp;quot;                                Value=&amp;quot;5&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;10&amp;quot;    Name=&amp;quot;Velocity AntiWindUp&amp;quot;                       Value=&amp;quot;409600&amp;quot;       Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;11&amp;quot;    Name=&amp;quot;Velocity min&amp;quot;                              Value=&amp;quot;-2048&amp;quot;        Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;12&amp;quot;    Name=&amp;quot;Velocity max&amp;quot;                              Value=&amp;quot;2048&amp;quot;         Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;13&amp;quot;    Name=&amp;quot;Velocity sensor&amp;quot;                           Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;14&amp;quot;    Name=&amp;quot;DQ P&amp;quot;                                      Value=&amp;quot;20&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;15&amp;quot;    Name=&amp;quot;DQ I&amp;quot;                                      Value=&amp;quot;2&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;16&amp;quot;    Name=&amp;quot;DQ D&amp;quot;                                      Value=&amp;quot;2&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;17&amp;quot;    Name=&amp;quot;DQ AntiWindUp&amp;quot;                             Value=&amp;quot;409600&amp;quot;       Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;18&amp;quot;    Name=&amp;quot;DQ min&amp;quot;                                    Value=&amp;quot;-1024&amp;quot;        Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;19&amp;quot;    Name=&amp;quot;DQ max&amp;quot;                                    Value=&amp;quot;1024&amp;quot;         Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;20&amp;quot;    Name=&amp;quot;OpenLoop current P&amp;quot;                        Value=&amp;quot;20&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;21&amp;quot;    Name=&amp;quot;OpenLoop current I&amp;quot;                        Value=&amp;quot;2&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;22&amp;quot;    Name=&amp;quot;OpenLoop current D&amp;quot;                        Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;23&amp;quot;    Name=&amp;quot;OpenLoop current AntiWindUp&amp;quot;               Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;24&amp;quot;    Name=&amp;quot;OpenLoop current min&amp;quot;                      Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;3&amp;quot;  SubIndex=&amp;quot;25&amp;quot;    Name=&amp;quot;OpenLoop current max&amp;quot;                      Value=&amp;quot;1024&amp;quot;         Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;4&amp;quot;  SubIndex=&amp;quot;0&amp;quot;     Name=&amp;quot;CAN max. missed coms&amp;quot;                      Value=&amp;quot;1000&amp;quot;         Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;4&amp;quot;  SubIndex=&amp;quot;1&amp;quot;     Name=&amp;quot;CAN ID Source&amp;quot;                             Value=&amp;quot;1&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;4&amp;quot;  SubIndex=&amp;quot;2&amp;quot;     Name=&amp;quot;CAN ID&amp;quot;                                    Value=&amp;quot;32&amp;quot;           Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;FWParameter Index=&amp;quot;4&amp;quot;  SubIndex=&amp;quot;3&amp;quot;     Name=&amp;quot;SPI Active&amp;quot;                                Value=&amp;quot;0&amp;quot;            Unit=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Joint0&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Board Parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Serial no. || Serial number of the product. Used to identify the date of manufacture.&lt;br /&gt;
|-&lt;br /&gt;
| Firmwareversion || Firmware version number to identify the current software version.&lt;br /&gt;
|-&lt;br /&gt;
| Hardwareno. || Hardware version number to identify the hardware configuration used.&lt;br /&gt;
|-&lt;br /&gt;
| min. supply Voltage || Minimum permissible supply voltage. The minimum supply voltage should be approx. 2V below the nominal voltage. If the supply voltage falls below this limit, the board issues an error message.&lt;br /&gt;
|-&lt;br /&gt;
| max. Boardtemp. || Maximum permissible board temperature&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Motor Parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Encoder Tics || Number of encoder pulses per revolution according to data sheet.&lt;br /&gt;
|-&lt;br /&gt;
| No. of Polepairs || Number of pole pairs in the motor according to the data sheet.&lt;br /&gt;
|-&lt;br /&gt;
| max. RPM || Maximum rotational speed of the motor. Setting is made according to the data sheet of the motor or on the basis of subsequent components. The value 0 cancels the limitation.&lt;br /&gt;
|-&lt;br /&gt;
| max. Motortemp. || Maximum temperature in the motor. The measurement is performed via an optional sensor. The value 0 deactivates the query.&lt;br /&gt;
|-&lt;br /&gt;
| max. Current || Maximum motor current according to data sheet.&lt;br /&gt;
|-&lt;br /&gt;
| StartUpMethod || Method used to set up the motor when starting the controller. With the automatic start options, the motor starts IPO afterwards. &lt;br /&gt;
* 0: Openloop&lt;br /&gt;
* 1: Closedloop with rotor alignment&lt;br /&gt;
* 2: Closedloop with index search&lt;br /&gt;
* 3: Closedloop for DC Motor&lt;br /&gt;
* 4: Closedloop with rotor alignment and check for free rotation &lt;br /&gt;
* 10: Closedloop with rotor alignment and autostart&lt;br /&gt;
|-&lt;br /&gt;
| EncoderInverted || Setting for the direction of rotation of the encoder. The direction of rotation of the signals at the input of the controller must be clockwise according to DIN EN 60034-8. After a change, the controller must be restarted. &lt;br /&gt;
* 0: Encoder not inverted&lt;br /&gt;
* 1: Encoder inverted&lt;br /&gt;
|-&lt;br /&gt;
| MotorInverted || The direction of rotation of the motor must be clockwise according to DIN EN 60034-8. If the setting is incorrect, the motor does not rotate. Only the motor current increases. &lt;br /&gt;
* 0: Motor not inverted&lt;br /&gt;
* 1: Motor inverted&lt;br /&gt;
|-&lt;br /&gt;
| OpenLoopCurrent || Setpoint current for the openloop control of the motor.&lt;br /&gt;
|-&lt;br /&gt;
| OpenLoopCurrent Standstill || Setpoint current for the openloop control at standstill.&lt;br /&gt;
|-&lt;br /&gt;
| OpenLoopCurrent Calibration || Set current for rotor alignment.&lt;br /&gt;
|-&lt;br /&gt;
| Calibration Time || Duration for the alignment of the rotor.&lt;br /&gt;
|-&lt;br /&gt;
| Motor Nominal Current || Maximum motor current that must not be exceeded for more then 2 seconds continously.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Axis Parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Reserved || Reserved for future use.&lt;br /&gt;
|-&lt;br /&gt;
| ReferencingType || Selection for the referencing type. &lt;br /&gt;
* 0: No referencing current position = 0&lt;br /&gt;
* 1: Linear motion&lt;br /&gt;
* 2: Sinusoidal movement (sinusoidal search for the sensor)&lt;br /&gt;
* 3: Half disks (referencing method for axes equipped with a half disk, e.g. Robolink DP)&lt;br /&gt;
* 4: Gearencoder (only Rebel)&lt;br /&gt;
|-&lt;br /&gt;
| ReferencingOffset || Offset for the axis position after referencing.&lt;br /&gt;
|-&lt;br /&gt;
| ReferencingSpeed || Speed for approaching the sensor. &lt;br /&gt;
&#039;&#039;&#039;If the axis is referenced in the wrong direction, this parameter can be set to negative.&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| ReferencingSpeedSlow || Speed for fine positioning of the axis during homing. &lt;br /&gt;
&#039;&#039;&#039;If the axis is referenced in the wrong direction, this parameter can be set to negative.&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| ReferencingSwitchType || Type of the reference sensor. &lt;br /&gt;
* 0: n.C.&lt;br /&gt;
* 1: n.O.&lt;br /&gt;
|-&lt;br /&gt;
| max. Positionlag || Permissible position error of the axis. With fast movements, the axis runs after the position setpoint. If the limit value is exceeded, the axis stops and an error message appears. If the value is set to 0, there is no monitoring.&lt;br /&gt;
|-&lt;br /&gt;
| Break Type || Parameter for activating a brake on the robot axis. If the robot has a holding brake, which should be controlled by the motor controller, this value must be set. The brakes are released when the axes are activated. &lt;br /&gt;
* 0: No brake&lt;br /&gt;
* 1: Friction brake&lt;br /&gt;
* 2: Blocking brake. &lt;br /&gt;
In blocking brake mode, a free-positioning movement occurs. A blocking brake means a pin or similar, which blocks the rotor. A friction brake describes a disc brake.&lt;br /&gt;
|-&lt;br /&gt;
| Break PWM High || If a brake is configured on the axis, this parameter specifies the PWM value for releasing the brake.&lt;br /&gt;
|-&lt;br /&gt;
| Break PWM Low || Voltage to hold the brake after releasing the brake; the motor controller lowers the output voltage to the specified value.&lt;br /&gt;
|-&lt;br /&gt;
| IPO Position || Positive position value for the IPO. In standalone mode, the IPO moves this value symmetrically around the zero point, from -IPO position to IPO position.&lt;br /&gt;
|-&lt;br /&gt;
| IPO Velocity || Speed for IPO mode in standalone operation.&lt;br /&gt;
|-&lt;br /&gt;
| Axis inverted || Changes the direction of the axis.&lt;br /&gt;
|-&lt;br /&gt;
| Gear ratio || Gear ratio of the gear unit. For i=1:50 correspondingly 50. Only integer values are possible.&lt;br /&gt;
|-&lt;br /&gt;
| Axis Enc Type || Encoder type.&lt;br /&gt;
* 0: No absolute value transmitter (e.g. linear axis with referencing switch)&lt;br /&gt;
* 1: Hatron absolute value transmitter (e.g. ReBeL-01 and ReBeL-02)&lt;br /&gt;
* 2: ICMU absolute value transmitter (e.g. ReBeL-03)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Control Parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Position P || P component for position control.&lt;br /&gt;
|-&lt;br /&gt;
| Position I || I component for position control.&lt;br /&gt;
|-&lt;br /&gt;
| Position P scale || Scaling of the P component by 2&amp;lt;sup&amp;gt;x&amp;lt;/sup&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| Position min. || Minimum limitation for the output of the position control.&lt;br /&gt;
|-&lt;br /&gt;
| Position max. || Maximum limitation for the output of the position control.&lt;br /&gt;
|-&lt;br /&gt;
| Velocity P || P component for speed control.&lt;br /&gt;
|-&lt;br /&gt;
| Velocity I || I portion for speed control.&lt;br /&gt;
|-&lt;br /&gt;
| Velocity P scale || Scaling of the P component in 2&amp;lt;sup&amp;gt;x&amp;lt;/sup&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| Velocity min. || Minimum limitation for the output of the speed control.&lt;br /&gt;
|-&lt;br /&gt;
| Velocity max. || Maximum limitation for the output of the speed control.&lt;br /&gt;
|-&lt;br /&gt;
| DQ-P || P component for DQ control.&lt;br /&gt;
|-&lt;br /&gt;
| DQ-I || I component for DQ control.&lt;br /&gt;
|-&lt;br /&gt;
| DQ back calc || Backcalculation factor for DQ controller.&lt;br /&gt;
|-&lt;br /&gt;
| DQ-min. || Minimum limitation for the output of the DQ control.&lt;br /&gt;
|-&lt;br /&gt;
| DQ-max. || Maximum limitation for the output of the DQ control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop P || P component for Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop I || I component for Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop D || D component for Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop AntiWindUp || AntiWindUp for Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop min. || Minimum limitation for the output of the Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
| Openloop max. || Maximum limitation for the output of the Openloop current control.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Communication Parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| CAN max. missed Coms || Maximum number of failed communication attempts on the CAN bus. Exceeding the value leads to the motor controller being switched off.&lt;br /&gt;
|-&lt;br /&gt;
| CAN ID Source || Source for the CAN ID. &lt;br /&gt;
* 1: Hardware jumper&lt;br /&gt;
* 2: Parameter set.&lt;br /&gt;
|-&lt;br /&gt;
| CAN ID || CAN ID for the controller.&lt;br /&gt;
|-&lt;br /&gt;
| SPI Active || Enable SPI communication.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:CPRog]][[Category:Configuration]][[Category:Referencing]]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Structured_Programming&amp;diff=1057</id>
		<title>Structured Programming</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Structured_Programming&amp;diff=1057"/>
		<updated>2026-06-10T08:57:53Z</updated>

		<summary type="html">&lt;p&gt;OLT: /* Sub-programs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Choosing a suitable structure for your robot program is important for lowering the programming and maintenance effort. This article explains sub-programs and the matrix command in a pick-and-place example.&lt;br /&gt;
&lt;br /&gt;
You can download the example programs here: [[File:ExamplesStructuredProgramming.zip]]&lt;br /&gt;
&lt;br /&gt;
Find explanations of all robot commands in the [[Software Updates|CPRog/iRC software documentation]].&lt;br /&gt;
&lt;br /&gt;
= Sub-programs =&lt;br /&gt;
Sub-programs are useful for extracting repeated tasks from your program and defining them once in a separate program.&lt;br /&gt;
&lt;br /&gt;
In a pick-and-place scenario objects often are fed to and picked from the same position (or a position recognized by a camera), then placed at some other position.  Instead of repeating the picking commands for each object define them in a separate program, then use the Subprogram command that you can find in the Flow menu to call this program whenever you need to pick an object. If need to change the picking position or precedure later on you will only need to change a few commands in this program instead of many commands for each object.&lt;br /&gt;
&lt;br /&gt;
See the programs &amp;quot;Packaging.xml&amp;quot; and &amp;quot;Layer1.xml&amp;quot; of the examples. Packaging.xml packs a whole box consisting of multiple layers. &amp;quot;Layer1.xml&amp;quot; picks and places several objects into a layer using the sub programs &amp;quot;PickPart.xml&amp;quot; and &amp;quot;PlacePart.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: Recursive sub-program calls are not allowed!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Matrix command =&lt;br /&gt;
The approach described above still relies on defining each placing position manually. If these positions are laid out in a grid the Matrix command can be used to generate the coordinates. This way programs with many placing position can be shrunk down to a few program commands.&lt;br /&gt;
&lt;br /&gt;
This is shown in the example &amp;quot;Layer1_Matrix.xml&amp;quot;. In order to use the matrix command you will need to define 3 corner positions using position variables (Store command) and the number of positions in X and Y direction (see the dimension parameters in the matrix command itself). If the matrix turns out to move non-rectangular you should try to swap the defined corners (unless a diamond-shaped motion pattern is what you need). For each position within the matrix the target variable will be set to the calculated position while the counter variables will enumerate the position in both directions.&lt;br /&gt;
&lt;br /&gt;
[[Category:CPRog]][[Category:Downloads]][[Category:Robot Programming]][[Category:TinyCtrl]]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Log_Files&amp;diff=1056</id>
		<title>Log Files</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Log_Files&amp;diff=1056"/>
		<updated>2026-05-29T11:19:51Z</updated>

		<summary type="html">&lt;p&gt;OLT: /* USB Stick */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The log files contain important information to help with troubleshooting issues. This article explains how to access these files.&lt;br /&gt;
&lt;br /&gt;
= Access log files automatically =&lt;br /&gt;
[[File:IRCSupport.png|thumb|How to access log files via CPRog/iRC]]&lt;br /&gt;
CPRog/iRC can collect all relevant log files automatically starting with V902-11-018.&lt;br /&gt;
&lt;br /&gt;
# Connect your robot&lt;br /&gt;
# Click the question mark in the bottom right corner of the 3D view or &amp;quot;Help&amp;quot; in the menu bar.&lt;br /&gt;
# Click &amp;quot;Collect log files&amp;quot; to create an archive file containing relevant log and configuration files and save it to your computer or click &amp;quot;Contact support&amp;quot; to create the archive and attach it to an E-Mail to our support team.&lt;br /&gt;
# A dialog will ask whether you want to include the log files from the embedded control. Make sure this is checked. If not check the connection to the robot.&lt;br /&gt;
&lt;br /&gt;
If this fails consider [[Software Updates|updating CPRog/iRC]] or follow the manual guide below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== USB Stick ==&lt;br /&gt;
Since version V980-14-004-4 of the Robot Control you can also plug in a normal USB stick directly into the embedded control to get the control logs. This can be usefull, if you can&#039;t get access to the robot via the iRC. This will however only give you a limited set of log files, so if possible, please get the logs via the iRC.&lt;br /&gt;
&lt;br /&gt;
= Access log files manually =&lt;br /&gt;
If the automatic approach does not work, e.g. if the embedded software does not respond, you can access the log files manually. The following sections explain how.&lt;br /&gt;
&lt;br /&gt;
== CPRog / iRC ==&lt;br /&gt;
You can find the following log files in the directory you installed CPRog in, usually &amp;quot;C:\CPRog&amp;quot; or &amp;quot;C:\iRC-igusRobotControl&amp;quot;:&lt;br /&gt;
* install.log&lt;br /&gt;
* startUp.log&lt;br /&gt;
* logMessages.log&lt;br /&gt;
You might also find some older log files that were created on earlier runs of the software:&lt;br /&gt;
* logMessages.log.1&lt;br /&gt;
* logMessages.log.2&lt;br /&gt;
* logMessages.log.3&lt;br /&gt;
&lt;br /&gt;
If you are using V14 or newer find the logs of the simulation in folder &amp;quot;bin-core&amp;quot;:&lt;br /&gt;
* log01.txt&lt;br /&gt;
* log02.txt&lt;br /&gt;
* log03.txt&lt;br /&gt;
* log04.txt&lt;br /&gt;
* log05.txt&lt;br /&gt;
&lt;br /&gt;
The folder RemoteLogs (since V14) contains the log entries that were received while connected to real robots. Unlike the log files that are stored on the embedded control these usually start at the time of connect and therefore are incomplete. However, they are stored for a longer time and may be useful if connecting to the robot is no longer possible.&lt;br /&gt;
&lt;br /&gt;
== Embedded Robot Control ==&lt;br /&gt;
=== RobotControl Core (since V14) ===&lt;br /&gt;
[[FTP and putty Access|Use a SFTP client]] to connect to the embedded control computer. Enter the directory &amp;quot;RobotControl&amp;quot; (absolute path: /home/robot/RobotControl/) and find the following files:&lt;br /&gt;
&lt;br /&gt;
* log01.txt&lt;br /&gt;
* log02.txt&lt;br /&gt;
* log03.txt&lt;br /&gt;
* log04.txt&lt;br /&gt;
* log05.txt&lt;br /&gt;
&lt;br /&gt;
Since V14-003-4 each log file contains up to 10000 entries which can be increased further in the [[Project Configuration File|project configuration file]]. Earlier versions contain up to 5000 entries and are not configurable. To change the size, e.g. to increase the logged time span, find the following line at the bottom of the project configuration file and change the value of CoreLineCnt. If the line is missing make sure you are using the correct version of the embedded software and save the project once.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Logging CoreLineCnt=&amp;quot;10000&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TinyCtrl (till V13) ===&lt;br /&gt;
[[FTP and putty Access|Use a SFTP client]] to connect to the embedded control computer. Enter the directory &amp;quot;TinyCtrl&amp;quot; (absolute path: /home/robot/TinyCtrl/ or /home/root/TinyCtrl/) and find the following files:&lt;br /&gt;
&lt;br /&gt;
* logMessages01.txt&lt;br /&gt;
* logMessages02.txt&lt;br /&gt;
* logMessages03.txt&lt;br /&gt;
* logMessages04.txt&lt;br /&gt;
* logMessages05.txt&lt;br /&gt;
&lt;br /&gt;
[[Category:Support]][[Category:CPRog]][[Category:TinyCtrl]]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Log_Files&amp;diff=1055</id>
		<title>Log Files</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Log_Files&amp;diff=1055"/>
		<updated>2026-05-29T09:20:07Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The log files contain important information to help with troubleshooting issues. This article explains how to access these files.&lt;br /&gt;
&lt;br /&gt;
= Access log files automatically =&lt;br /&gt;
[[File:IRCSupport.png|thumb|How to access log files via CPRog/iRC]]&lt;br /&gt;
CPRog/iRC can collect all relevant log files automatically starting with V902-11-018.&lt;br /&gt;
&lt;br /&gt;
# Connect your robot&lt;br /&gt;
# Click the question mark in the bottom right corner of the 3D view or &amp;quot;Help&amp;quot; in the menu bar.&lt;br /&gt;
# Click &amp;quot;Collect log files&amp;quot; to create an archive file containing relevant log and configuration files and save it to your computer or click &amp;quot;Contact support&amp;quot; to create the archive and attach it to an E-Mail to our support team.&lt;br /&gt;
# A dialog will ask whether you want to include the log files from the embedded control. Make sure this is checked. If not check the connection to the robot.&lt;br /&gt;
&lt;br /&gt;
If this fails consider [[Software Updates|updating CPRog/iRC]] or follow the manual guide below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== USB Stick ==&lt;br /&gt;
Since version 14-004-4 of the Robot Control you can also plug in a normal USB stick directly into the embedded control to get the control logs. This can be usefull, if you can&#039;t get access to the robot via the iRC. This will however only give you a limited set of log files, so if possible, please get the logs via the iRC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Access log files manually =&lt;br /&gt;
If the automatic approach does not work, e.g. if the embedded software does not respond, you can access the log files manually. The following sections explain how.&lt;br /&gt;
&lt;br /&gt;
== CPRog / iRC ==&lt;br /&gt;
You can find the following log files in the directory you installed CPRog in, usually &amp;quot;C:\CPRog&amp;quot; or &amp;quot;C:\iRC-igusRobotControl&amp;quot;:&lt;br /&gt;
* install.log&lt;br /&gt;
* startUp.log&lt;br /&gt;
* logMessages.log&lt;br /&gt;
You might also find some older log files that were created on earlier runs of the software:&lt;br /&gt;
* logMessages.log.1&lt;br /&gt;
* logMessages.log.2&lt;br /&gt;
* logMessages.log.3&lt;br /&gt;
&lt;br /&gt;
If you are using V14 or newer find the logs of the simulation in folder &amp;quot;bin-core&amp;quot;:&lt;br /&gt;
* log01.txt&lt;br /&gt;
* log02.txt&lt;br /&gt;
* log03.txt&lt;br /&gt;
* log04.txt&lt;br /&gt;
* log05.txt&lt;br /&gt;
&lt;br /&gt;
The folder RemoteLogs (since V14) contains the log entries that were received while connected to real robots. Unlike the log files that are stored on the embedded control these usually start at the time of connect and therefore are incomplete. However, they are stored for a longer time and may be useful if connecting to the robot is no longer possible.&lt;br /&gt;
&lt;br /&gt;
== Embedded Robot Control ==&lt;br /&gt;
=== RobotControl Core (since V14) ===&lt;br /&gt;
[[FTP and putty Access|Use a SFTP client]] to connect to the embedded control computer. Enter the directory &amp;quot;RobotControl&amp;quot; (absolute path: /home/robot/RobotControl/) and find the following files:&lt;br /&gt;
&lt;br /&gt;
* log01.txt&lt;br /&gt;
* log02.txt&lt;br /&gt;
* log03.txt&lt;br /&gt;
* log04.txt&lt;br /&gt;
* log05.txt&lt;br /&gt;
&lt;br /&gt;
Since V14-003-4 each log file contains up to 10000 entries which can be increased further in the [[Project Configuration File|project configuration file]]. Earlier versions contain up to 5000 entries and are not configurable. To change the size, e.g. to increase the logged time span, find the following line at the bottom of the project configuration file and change the value of CoreLineCnt. If the line is missing make sure you are using the correct version of the embedded software and save the project once.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Logging CoreLineCnt=&amp;quot;10000&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TinyCtrl (till V13) ===&lt;br /&gt;
[[FTP and putty Access|Use a SFTP client]] to connect to the embedded control computer. Enter the directory &amp;quot;TinyCtrl&amp;quot; (absolute path: /home/robot/TinyCtrl/ or /home/root/TinyCtrl/) and find the following files:&lt;br /&gt;
&lt;br /&gt;
* logMessages01.txt&lt;br /&gt;
* logMessages02.txt&lt;br /&gt;
* logMessages03.txt&lt;br /&gt;
* logMessages04.txt&lt;br /&gt;
* logMessages05.txt&lt;br /&gt;
&lt;br /&gt;
[[Category:Support]][[Category:CPRog]][[Category:TinyCtrl]]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Log_Files&amp;diff=1054</id>
		<title>Log Files</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Log_Files&amp;diff=1054"/>
		<updated>2026-05-29T09:19:28Z</updated>

		<summary type="html">&lt;p&gt;OLT: /* Access log files automatically */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The log files contain important information to help with troubleshooting issues. This article explains how to access these files.&lt;br /&gt;
&lt;br /&gt;
= Access log files automatically =&lt;br /&gt;
[[File:IRCSupport.png|thumb|How to access log files via CPRog/iRC]]&lt;br /&gt;
CPRog/iRC can collect all relevant log files automatically starting with V902-11-018.&lt;br /&gt;
&lt;br /&gt;
# Connect your robot&lt;br /&gt;
# Click the question mark in the bottom right corner of the 3D view or &amp;quot;Help&amp;quot; in the menu bar.&lt;br /&gt;
# Click &amp;quot;Collect log files&amp;quot; to create an archive file containing relevant log and configuration files and save it to your computer or click &amp;quot;Contact support&amp;quot; to create the archive and attach it to an E-Mail to our support team.&lt;br /&gt;
# A dialog will ask whether you want to include the log files from the embedded control. Make sure this is checked. If not check the connection to the robot.&lt;br /&gt;
&lt;br /&gt;
If this fails consider [[Software Updates|updating CPRog/iRC]] or follow the manual guide below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== USB Stick ==&lt;br /&gt;
Since version 14-004-4 of the Robot Control you can also plug in a normal USB stick directly into the embedded control to get the control logs. This can be usefull, if you can&#039;t get access to the robot via the iRC. This will however only give you a limited set of log files, so if possible, please get the logs via the iRC.&lt;br /&gt;
&lt;br /&gt;
= Access log files manually =&lt;br /&gt;
If the automatic approach does not work, e.g. if the embedded software does not respond, you can access the log files manually. The following sections explain how.&lt;br /&gt;
&lt;br /&gt;
== CPRog / iRC ==&lt;br /&gt;
You can find the following log files in the directory you installed CPRog in, usually &amp;quot;C:\CPRog&amp;quot; or &amp;quot;C:\iRC-igusRobotControl&amp;quot;:&lt;br /&gt;
* install.log&lt;br /&gt;
* startUp.log&lt;br /&gt;
* logMessages.log&lt;br /&gt;
You might also find some older log files that were created on earlier runs of the software:&lt;br /&gt;
* logMessages.log.1&lt;br /&gt;
* logMessages.log.2&lt;br /&gt;
* logMessages.log.3&lt;br /&gt;
&lt;br /&gt;
If you are using V14 or newer find the logs of the simulation in folder &amp;quot;bin-core&amp;quot;:&lt;br /&gt;
* log01.txt&lt;br /&gt;
* log02.txt&lt;br /&gt;
* log03.txt&lt;br /&gt;
* log04.txt&lt;br /&gt;
* log05.txt&lt;br /&gt;
&lt;br /&gt;
The folder RemoteLogs (since V14) contains the log entries that were received while connected to real robots. Unlike the log files that are stored on the embedded control these usually start at the time of connect and therefore are incomplete. However, they are stored for a longer time and may be useful if connecting to the robot is no longer possible.&lt;br /&gt;
&lt;br /&gt;
== Embedded Robot Control ==&lt;br /&gt;
=== RobotControl Core (since V14) ===&lt;br /&gt;
[[FTP and putty Access|Use a SFTP client]] to connect to the embedded control computer. Enter the directory &amp;quot;RobotControl&amp;quot; (absolute path: /home/robot/RobotControl/) and find the following files:&lt;br /&gt;
&lt;br /&gt;
* log01.txt&lt;br /&gt;
* log02.txt&lt;br /&gt;
* log03.txt&lt;br /&gt;
* log04.txt&lt;br /&gt;
* log05.txt&lt;br /&gt;
&lt;br /&gt;
Since V14-003-4 each log file contains up to 10000 entries which can be increased further in the [[Project Configuration File|project configuration file]]. Earlier versions contain up to 5000 entries and are not configurable. To change the size, e.g. to increase the logged time span, find the following line at the bottom of the project configuration file and change the value of CoreLineCnt. If the line is missing make sure you are using the correct version of the embedded software and save the project once.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Logging CoreLineCnt=&amp;quot;10000&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TinyCtrl (till V13) ===&lt;br /&gt;
[[FTP and putty Access|Use a SFTP client]] to connect to the embedded control computer. Enter the directory &amp;quot;TinyCtrl&amp;quot; (absolute path: /home/robot/TinyCtrl/ or /home/root/TinyCtrl/) and find the following files:&lt;br /&gt;
&lt;br /&gt;
* logMessages01.txt&lt;br /&gt;
* logMessages02.txt&lt;br /&gt;
* logMessages03.txt&lt;br /&gt;
* logMessages04.txt&lt;br /&gt;
* logMessages05.txt&lt;br /&gt;
&lt;br /&gt;
[[Category:Support]][[Category:CPRog]][[Category:TinyCtrl]]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=MediaWiki:Common.css&amp;diff=1053</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=MediaWiki:Common.css&amp;diff=1053"/>
		<updated>2026-05-27T08:26:44Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
#ca-nstab-main { display: none !important; }&lt;br /&gt;
#ca-talk { display: none !important; }&lt;br /&gt;
#ca-history { display: none !important;}&lt;br /&gt;
#ca-viewsource { display: none !important; }&lt;br /&gt;
#ca-view { display: none !important; }&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=MediaWiki:Common.css&amp;diff=1052</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=MediaWiki:Common.css&amp;diff=1052"/>
		<updated>2026-05-27T08:25:47Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
#ca-nstab-main { display: none !important; }&lt;br /&gt;
#ca-talk { display: none !important; }&lt;br /&gt;
#ca-history { display: none !important;}&lt;br /&gt;
#ca-viewsource { display: none !important; }&lt;br /&gt;
#ca-view { display: none !important; }&lt;br /&gt;
#p-tb { display: none; }&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=MediaWiki:Common.css&amp;diff=1051</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=MediaWiki:Common.css&amp;diff=1051"/>
		<updated>2026-05-27T08:18:51Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
#ca-nstab-main { display: none !important; }&lt;br /&gt;
#ca-talk { display: none !important; }&lt;br /&gt;
#ca-history { display: none !important;}&lt;br /&gt;
#ca-viewsource { display: none !important; }&lt;br /&gt;
#ca-view { display: none !important; }&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=MediaWiki:Common.css&amp;diff=1050</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=MediaWiki:Common.css&amp;diff=1050"/>
		<updated>2026-05-27T08:18:15Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
#ca-nstab-main { display: none !important; }&lt;br /&gt;
#ca-talk { display: none !important; }&lt;br /&gt;
#ca-history { display: none !important;}&lt;br /&gt;
#ca-viewsource { display: none !important; }&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=MediaWiki:Common.css&amp;diff=1049</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=MediaWiki:Common.css&amp;diff=1049"/>
		<updated>2026-05-27T08:17:21Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
#ca-nstab-main { display: none !important; }&lt;br /&gt;
#ca-talk { display: none !important; }&lt;br /&gt;
#ca-history { display: none !important;}&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=MediaWiki:Common.css&amp;diff=1048</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=MediaWiki:Common.css&amp;diff=1048"/>
		<updated>2026-05-27T08:14:33Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
$wgHooks[&#039;SkinTemplateSetupPageCss&#039;][] = &#039;wfHideVariousTabsFromAnonymous&#039;;&lt;br /&gt;
&lt;br /&gt;
function wfHideVariousTabsFromAnonymous( &amp;amp;$hidetabcss ) {&lt;br /&gt;
	global $wgUser;&lt;br /&gt;
&lt;br /&gt;
	if ( !$wgUser-&amp;gt;isLoggedIn() ) {&lt;br /&gt;
		$hidetabcss .= &#039;li#ca-history, li#ca-viewsource, li#ca-edit, li#ca-talk, .vectorMenu { display: none; }&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return true;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=MediaWiki:Common.css&amp;diff=1047</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=MediaWiki:Common.css&amp;diff=1047"/>
		<updated>2026-05-27T08:08:30Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
#p-cactions {&lt;br /&gt;
    display: none !important;&lt;br /&gt;
}&lt;br /&gt;
#ca-history { display: none !important;}&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=MediaWiki:Common.css&amp;diff=1046</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=MediaWiki:Common.css&amp;diff=1046"/>
		<updated>2026-05-27T08:06:42Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
#p-cactions {&lt;br /&gt;
    display: none !important;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Template:Main_page&amp;diff=1045</id>
		<title>Template:Main page</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Template:Main_page&amp;diff=1045"/>
		<updated>2026-05-27T07:59:34Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{DISPLAYTITLE:&amp;lt;span style=&amp;quot;position: absolute; clip: rect(1px 1px 1px 1px); clip: rect(1px, 1px, 1px, 1px);&amp;quot;&amp;gt;{{FULLPAGENAME}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--       BANNER ACROSS TOP OF PAGE        --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {| id=&amp;quot;mp-topbanner&amp;quot; style=&amp;quot;width:100%; text-align:center; margin:1.2em 0 6px 0; border:5px solid #50798a;&amp;quot; --&amp;gt;&lt;br /&gt;
{| id=&amp;quot;mp-topbanner&amp;quot; style=&amp;quot;width:100%; text-align:center;&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;!--        &amp;quot;WELCOME TO CPR wiki AND ARTICLE COUNT        --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:162%; border:none; margin:0; padding:.1em; font-weight: bold&amp;quot;&amp;gt;Welcome to the iRC Wiki!&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;color: grey; font-size:162%; border:none; margin:0; padding:.1em;&amp;quot;&amp;gt;↑ Try using the search-bar at the top ↑&amp;lt;/div&amp;gt;&lt;br /&gt;
Commonplace Robotics, as a part of igus GmbH, develops intuitive robot control software.&lt;br /&gt;
&lt;br /&gt;
You can find all igus robots and many more in our [https://rbtx.com/en-US &#039;&#039;&#039;RBTX marketplace&#039;&#039;&#039;]!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:IRC_V15.png|500px|center|link=IgusRobotControl-Release15-EN]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Get the latest iRC Version [[IgusRobotControl-Release15-EN|here]]!&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div 	style=&amp;quot;display: flex; flex-direction: row;	flex-flow: row wrap; justify-content: space-between; padding: 0; gap: 10px;	margin-top: 10px; margin-bottom: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex: 1; min-width: 210px; border: 1px solid #a2a9b1; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba( 0, 0, 0, 0.2 );&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;&amp;lt;span class=&amp;quot;header_icon&amp;quot; aria-hidden=&amp;quot;true&amp;quot; role=&amp;quot;presentation&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt; iRC - Software &amp;lt;/span&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Software_Updates|Software &#039;&#039;&#039;Downloads&#039;&#039;&#039;]]&lt;br /&gt;
* [[Documentation|Documentation and &#039;&#039;&#039;User Guides&#039;&#039;&#039;]]&lt;br /&gt;
* [[Configuration Files Overview]]&lt;br /&gt;
* [[Control Interfaces]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex: 1; min-width: 210px; border: 1px solid #a2a9b1; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba( 0, 0, 0, 0.2 );&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;&amp;lt;span class=&amp;quot;header_icon&amp;quot; aria-hidden=&amp;quot;true&amp;quot; role=&amp;quot;presentation&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt; IRC - Hardware &amp;lt;/span&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Configuration Files Overview]]&lt;br /&gt;
* [[Digital Inputs / Outputs]]&lt;br /&gt;
* [[Motor Brake]]&lt;br /&gt;
* [[External Axis]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex: 1; min-width: 210px; border: 1px solid #a2a9b1; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba( 0, 0, 0, 0.2 );&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;&amp;lt;span class=&amp;quot;header_icon&amp;quot; aria-hidden=&amp;quot;true&amp;quot; role=&amp;quot;presentation&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt; Robots &amp;lt;/span&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[igus ReBeL]]&#039;&#039;&#039;&lt;br /&gt;
* [[:Category:Gantry|Gantry]]&lt;br /&gt;
* [[:Category:Delta|Delta]]&lt;br /&gt;
* [[:Category:Scara|Scara]]&lt;br /&gt;
* [[AMR Documentation|Mobile Robots]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div 	style=&amp;quot;display: flex; flex-direction: row;	flex-flow: row wrap; justify-content: space-between; padding: 0; gap: 10px;	margin-top: 10px; margin-bottom: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex: 1; min-width: 210px; border: 1px solid #a2a9b1; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba( 0, 0, 0, 0.2 );&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;&amp;lt;span class=&amp;quot;header_icon&amp;quot; aria-hidden=&amp;quot;true&amp;quot; role=&amp;quot;presentation&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt; Programming &amp;lt;/span&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[AI Programming Assist]]&lt;br /&gt;
* [[Example_Library|Example Programs]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex: 1; min-width: 210px; border: 1px solid #a2a9b1; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba( 0, 0, 0, 0.2 );&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;&amp;lt;span class=&amp;quot;header_icon&amp;quot; aria-hidden=&amp;quot;true&amp;quot; role=&amp;quot;presentation&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt; Troubleshooting &amp;lt;/span&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Troubleshooting|Systematic Troubleshooting]]&lt;br /&gt;
* [[Robot Hardware Troubleshooting]]&lt;br /&gt;
* [[Support Routes]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex: 1; min-width: 210px; border: 1px solid #a2a9b1; padding: 0 10px 10px 10px; box-shadow: 0 2px 2px rgba( 0, 0, 0, 0.2 );&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;&amp;lt;span class=&amp;quot;header_icon&amp;quot; aria-hidden=&amp;quot;true&amp;quot; role=&amp;quot;presentation&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt; Legacy &amp;lt;/span&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[:Category:Robolink|Robolink]]&lt;br /&gt;
* [[DCi quickstart guide|Robolink DCi]]&lt;br /&gt;
* [[:Category:Mover|Mover]]&lt;br /&gt;
* [[CPRog Software Troubleshooting]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We are constantly extending and updating this Wiki, please [[Support Routes|get in touch]] for further information!&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=File:RBTX_Academy.png&amp;diff=1044</id>
		<title>File:RBTX Academy.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=File:RBTX_Academy.png&amp;diff=1044"/>
		<updated>2026-05-22T13:06:15Z</updated>

		<summary type="html">&lt;p&gt;OLT: OLT uploaded a new version of File:RBTX Academy.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Example_Library&amp;diff=1043</id>
		<title>Example Library</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Example_Library&amp;diff=1043"/>
		<updated>2026-05-22T09:36:27Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here you can find sample applications that have been developed in- and outside of igus.&lt;br /&gt;
&lt;br /&gt;
Feel free to use them as a starting point for your project!&lt;br /&gt;
Also have a look at other robot types. Often Programs can be easily translated between robots!&lt;br /&gt;
&lt;br /&gt;
If you want to contribute to this page, please contact us!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
= General =&lt;br /&gt;
[[File:IRC_V15.png|thumb|300px|link=General Examples]]&lt;br /&gt;
Non-robot related tools, like controller integration, control interfaces and plugins.&lt;br /&gt;
&lt;br /&gt;
:[[General Examples]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
= Gantry =&lt;br /&gt;
[[File:GANTRY.png|thumb|300px|link=Gantry Examples]]&lt;br /&gt;
Basic allrounder robots, suitable for most industrial applications. Highly adjustable for many use cases.&lt;br /&gt;
&lt;br /&gt;
:[[Gantry Examples]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Delta =&lt;br /&gt;
[[File:DELTA.png|thumb|300px|link=Delta Examples]]&lt;br /&gt;
Delta robots for high speed pick &amp;amp; place tasks.&lt;br /&gt;
&lt;br /&gt;
:[[Delta Examples]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
= Rebel &amp;amp; Robolink = &lt;br /&gt;
[[File:ReBeL.png|thumb|300px|link=ReBeL Examples]]&lt;br /&gt;
Articulated arm robots for complex movements.&lt;br /&gt;
&lt;br /&gt;
:[[ReBeL Examples]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
= Scara =&lt;br /&gt;
[[File:SCARA.png|thumb|300px|link=Scara Examples]]&lt;br /&gt;
Fast, precise &amp;amp; flexible robots for pick &amp;amp; place applications.&lt;br /&gt;
&lt;br /&gt;
:[[Scara Examples]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
= Mobile Platform =&lt;br /&gt;
[[File:EDUMOVE.png|thumb|300px|link=Mobile Platform Examples]]&lt;br /&gt;
Mobile robot that can move around freely.&lt;br /&gt;
&lt;br /&gt;
:[[Mobile Platform Examples]]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=General_Examples&amp;diff=1042</id>
		<title>General Examples</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=General_Examples&amp;diff=1042"/>
		<updated>2026-05-22T09:35:30Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here you can find some example applications for everything that is not directly associated to a robot.&lt;br /&gt;
&lt;br /&gt;
Feel free to use them for your own program!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
= Dispensing Application =&lt;br /&gt;
[[File:GlueExample2Area.MP4|thumb|300px|link=Dispensing_Applications|[[Dispensing_Applications | Dispensing Application]]]]&lt;br /&gt;
General example for dispensing applications.&lt;br /&gt;
&lt;br /&gt;
:[[Dispensing_Applications | Dispensing Application]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
= Moving via Modbus =&lt;br /&gt;
[[File:TitleScreenModbus small.JPG|thumb|300px|link=Moving_Robots_via_Modbus|[[Moving_Robots_via_Modbus | Moving via Modbus]]]]&lt;br /&gt;
How to move your robot via Modbus.&lt;br /&gt;
&lt;br /&gt;
:[[Moving_Robots_via_Modbus | Moving via Modbus]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
= Defining paths via CAD =&lt;br /&gt;
[[File:Screen01_Workpiece.png|thumb|300px|link=Definition_of_a_DXF_file_in_SolidWorks|[[Definition_of_a_DXF_file_in_SolidWorks | Definition of a DXF file in SolidWorks]]]]&lt;br /&gt;
The path and point sequence commands move the robot along a path defined by a DXF or CSV file. At each start and end of a path segment or point the tool can be lowered and lifted or enabled by a digital output. [[Definition of a DXF file in SolidWorks]] explains how to create a path and load it into iRC.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
= Glueing and Dispensing =&lt;br /&gt;
Glueing and dispensing requires different optimizations than pick and place applications. The article [[Dispensing Applications]] shows two approaches using the path command and basic motion commands to follow a path and enable a digital output for the dispenser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
= Palletizing and Error Recovery =&lt;br /&gt;
The article [[Matrix Palletizing and Error Recovery]] explains how palletizing applications can be programmed using matrix commands. The example handles restarting the position on the pallet on error and starting the pallet at any index.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
= Circular Curves =&lt;br /&gt;
[[File:CommandCircularConcept.png|thumb|300px|link=Circular Motion]]&lt;br /&gt;
[[Circular Motion]] explains how to move along circular curves complete circles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot; /div&amp;gt;&lt;br /&gt;
= Program Structure =&lt;br /&gt;
The article [[Structured Programming]] explains how to use sub programs and matrices to create a clean program structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:CPRog]][[Category:Robot Programming]]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Stacking_Application&amp;diff=1041</id>
		<title>Stacking Application</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Stacking_Application&amp;diff=1041"/>
		<updated>2026-05-22T09:30:05Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This ReBeL stacks different components to a single stack that is later added as insert for a product. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Developer&#039;&#039;&#039;: [https://rbtx.com RBTX]&lt;br /&gt;
&lt;br /&gt;
You can find a &#039;&#039;&#039;Video&#039;&#039;&#039; of the application [https://downloads.cpr-robots.com/Wiki-Files/Examples/Stacking/Stacking_Video.mp4 here]!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Program files&#039;&#039;&#039;: [https://downloads.cpr-robots.com/Wiki-Files/Examples/Stacking/Stacking_Program.zip Stacking_Programs.zip]&lt;br /&gt;
&lt;br /&gt;
= Setup =&lt;br /&gt;
&#039;&#039;&#039;Robot Type&#039;&#039;&#039;: igus ReBeL REBEL-6DOF-03&lt;br /&gt;
&lt;br /&gt;
[[File:Stacking_Setup.JPG|thumb|250px|link=https://downloads.cpr-robots.com/Wiki-Files/Examples/Stacking/Stacking_Video.mp4]]&lt;br /&gt;
The ReBeL is equipped with a vacuum gripper with 2 suction cups.&lt;br /&gt;
The rails enter the work space on fixed entry point.&lt;br /&gt;
&lt;br /&gt;
3 Stacks of different parts a placed around the ReBeL. Every component is picked the ReBeL and added to a single stack.&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Mark_Ends_Application&amp;diff=1040</id>
		<title>Mark Ends Application</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Mark_Ends_Application&amp;diff=1040"/>
		<updated>2026-05-22T09:29:45Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this application a Rebel detects the endings of a hose and marks them with a felt pen.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Developer&#039;&#039;&#039;: [https://rbtx.com RBTX]&lt;br /&gt;
&lt;br /&gt;
You can find a &#039;&#039;&#039;Video&#039;&#039;&#039; of the application [https://downloads.cpr-robots.com/Wiki-Files/Examples/MarkEnds/MarkEnds_Video.mp4 here]!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Program files&#039;&#039;&#039;: [https://downloads.cpr-robots.com/Wiki-Files/Examples/MarkEnds/MarkEnds.zip MarkEnds.zip]&lt;br /&gt;
&lt;br /&gt;
= Setup =&lt;br /&gt;
&#039;&#039;&#039;Robot Type&#039;&#039;&#039;: igus ReBeL REBEL-6DOF-03&lt;br /&gt;
&lt;br /&gt;
[[File:MarkEnds_Setup.jpg|thumb|250px|link=https://downloads.cpr-robots.com/Wiki-Files/Examples/MarkEnds/MarkEnds_Video.mp4]]&lt;br /&gt;
The ReBeL is placed in front of a conveyor belt, which is added as external axis to the project. An [[2D Camera Integration | ifm-camera]] is placed over the conveyor belt to detect the endings of the hose.&lt;br /&gt;
&lt;br /&gt;
A felt pen is fixed to the ReBeL and moves to the location of the hose. When the camera detects an ending the conveyor belt stops and the ReBeL marks the ending. Afterwards the conveyor belts moves again, until the second ending is detected.&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=RoundRobin_Application&amp;diff=1039</id>
		<title>RoundRobin Application</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=RoundRobin_Application&amp;diff=1039"/>
		<updated>2026-05-22T09:28:55Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This robot cell was developed as a delta showcase for fairs. It shows a typical pick and place task for delta robots in conjunction with conveyor belts.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Developer&#039;&#039;&#039;: CPR&lt;br /&gt;
&lt;br /&gt;
You can find a &#039;&#039;&#039;video&#039;&#039;&#039; of the result [https://downloads.cpr-robots.com/Wiki-Files/Examples/RoundRobin/DR1000-RoundRobin.mp4 here]!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Program files&#039;&#039;&#039;: [https://downloads.cpr-robots.com/Wiki-Files/Examples/RoundRobin/RoundRobin.zip RoundRobin_Programs.zip]&lt;br /&gt;
&lt;br /&gt;
= Setup =&lt;br /&gt;
&#039;&#039;&#039;Robot Type&#039;&#039;&#039;: igus Delta DLE-DR-1000-3&lt;br /&gt;
&lt;br /&gt;
[[File:RoundRobinDelta.jpg|thumb|500px|link=https://downloads.cpr-robots.com/Wiki-Files/Examples/RoundRobin/DR1000-RoundRobin.mp4]]&lt;br /&gt;
The delta robot is equipped with a vacuum pump for picking little glasses with metal caps. &lt;br /&gt;
&lt;br /&gt;
Whenever the robot is idle, it picks a glass from a tray and places them on the first conveyor. The conveyor then sorts the glasses into of the two end positions using a [https://www.igus.eu/product/22645?C=DE&amp;amp;L=en&amp;amp;artNr=LCA-RG-DSA-1A-1280-0100 Apiro rotary unit] as lane adjustment tool. In a real application a suitable sensor would analyse the glasses and sort them accordingly. Here it switches the destination after each glass.&lt;br /&gt;
&lt;br /&gt;
Once the glass reaches the end holder, a light barrier detects it and sends a signal to the robot control. The robot then picks the glass from there and, depending on the position of the glass, puts it back into the middle tray, or onto the second conveyor.&lt;br /&gt;
&lt;br /&gt;
The second conveyor simply transports the glasses forward. In a real application, this conveyor belt would lead outside of the cell for further processing. Here it stops at the end, where the delta robot can pick it and put it back into the tray.&lt;br /&gt;
&lt;br /&gt;
This setup works infinitely with a variable amount of objects.&lt;br /&gt;
&lt;br /&gt;
[[Category:Delta]]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Arrange_Application&amp;diff=1038</id>
		<title>Arrange Application</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Arrange_Application&amp;diff=1038"/>
		<updated>2026-05-22T09:28:32Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This applications aims at arranging a flower-like bouquet out of wine gum. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Developer&#039;&#039;&#039;: [https://rbtx.com RBTX]&lt;br /&gt;
&lt;br /&gt;
You can find a &#039;&#039;&#039;video&#039;&#039;&#039; of the result [https://downloads.cpr-robots.com/Wiki-Files/Examples/Arrange/Arrange_Video.mp4 here]!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Program files&#039;&#039;&#039;: [https://downloads.cpr-robots.com/Wiki-Files/Examples/Arrange/Arrange_Programs.zip Arrange_Programs.zip]&lt;br /&gt;
&lt;br /&gt;
= Setup =&lt;br /&gt;
&#039;&#039;&#039;Robot Type&#039;&#039;&#039;: igus Delta DLE-DR-0050&lt;br /&gt;
&lt;br /&gt;
[[File:Arrange_Setup.JPG|thumb|500px|link=https://downloads.cpr-robots.com/Wiki-Files/Examples/Arrange/Arrange_Video.mp4]]&lt;br /&gt;
The delta robot is equipped with a vacuum pump and an [[2D Camera Integration | ifm-camera]]. &lt;br /&gt;
&lt;br /&gt;
The vacuum pump is mounted on a external rotary axis, for correct alignment.&lt;br /&gt;
&lt;br /&gt;
The camera detects the different gummy types and picks the correct one for the current arrange step. The gummy is then placed on the correct position of target-tray in a pre-defined order.&lt;br /&gt;
&lt;br /&gt;
[[Category:Delta]]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Pick_and_Place_Stack_Application&amp;diff=1037</id>
		<title>Pick and Place Stack Application</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Pick_and_Place_Stack_Application&amp;diff=1037"/>
		<updated>2026-05-22T09:28:00Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This gantry picks metal rails and stacks them on top of each other.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Developer&#039;&#039;&#039;: [https://rbtx.com RBTX]&lt;br /&gt;
&lt;br /&gt;
You can find a &#039;&#039;&#039;Video&#039;&#039;&#039; of the application [https://downloads.cpr-robots.com/Wiki-Files/Examples/PickAndPlaceStack/PickAndPlaceStack_Video.mp4 here]!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Program files&#039;&#039;&#039;: [https://downloads.cpr-robots.com/Wiki-Files/Examples/PickAndPlaceStack/PickAndPlaceStack_Programs.zip PickAndPlaceStack_Programs.zip]&lt;br /&gt;
&lt;br /&gt;
= Setup =&lt;br /&gt;
&#039;&#039;&#039;Robot Type&#039;&#039;&#039;: igus Gantry DLE-RG-0004-BLDC&lt;br /&gt;
&lt;br /&gt;
[[File:PickAndPlaceStack_Endeffector.JPG|thumb|250px|link=https://downloads.cpr-robots.com/Wiki-Files/Examples/PickAndPlaceStack/PickAndPlaceStack_Video.mp4]]&lt;br /&gt;
A vacuum gripper with 4 suction cups is mounted to a [https://www.igus.eu/product/22645?C=DE&amp;amp;L=en&amp;amp;artNr=LCA-RG-DSA-1A-1280-0100 Apiro rotary unit]. &lt;br /&gt;
&lt;br /&gt;
The rails enter the work space on fixed entry point. They are picked and then rotated while traveling to their place-location. There they are stacked on top of each other.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:PickAndPlaceStack_Result.JPG|thumb|250px|link=https://downloads.cpr-robots.com/Wiki-Files/Examples/PickAndPlaceStack/PickAndPlaceStack_Video.mp4]]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Pen_Glueing_Application&amp;diff=1036</id>
		<title>Pen Glueing Application</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Pen_Glueing_Application&amp;diff=1036"/>
		<updated>2026-05-22T09:27:30Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a straight forward application for marking complex shapes with a glueing pen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Developer&#039;&#039;&#039;: [https://rbtx.com RBTX]&lt;br /&gt;
&lt;br /&gt;
You can find a &#039;&#039;&#039;Video&#039;&#039;&#039; of the application [https://downloads.cpr-robots.com/Wiki-Files/Examples/PenGlueing/PenGlueing_Video.mp4 here]!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Program files&#039;&#039;&#039;: [https://downloads.cpr-robots.com/Wiki-Files/Examples/PenGlueing/PenGlueing_Program.zip PenGlueing_Programs.zip]&lt;br /&gt;
&lt;br /&gt;
= Setup =&lt;br /&gt;
&#039;&#039;&#039;Robot Type&#039;&#039;&#039;: igus Gantry DLE-RG-0012&lt;br /&gt;
&lt;br /&gt;
[[File:PenGlueing_Setup.JPG|thumb|250px|link=https://downloads.cpr-robots.com/Wiki-Files/Examples/PenGlueing/PenGlueing_Video.mp4]]&lt;br /&gt;
A glueing pen is fixed to the gantry and follows a pre-teached path.&lt;br /&gt;
&lt;br /&gt;
[[File:PenGlueing_Result.JPG|thumb|500px|Result|link=https://downloads.cpr-robots.com/Wiki-Files/Examples/PenGlueing/PenGlueing_Video.mp4]]&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Part_Alignment_Application&amp;diff=1035</id>
		<title>Part Alignment Application</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Part_Alignment_Application&amp;diff=1035"/>
		<updated>2026-05-22T09:26:53Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this application a work piece analyzed for orientation and manipulated until it is aligned properly.&lt;br /&gt;
It does not only fix the planar rotation, but also checks, if it is upside down.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Developer&#039;&#039;&#039;: [https://rbtx.com RBTX]&lt;br /&gt;
&lt;br /&gt;
You can find a &#039;&#039;&#039;Video&#039;&#039;&#039; of the application [https://downloads.cpr-robots.com/Wiki-Files/Examples/PartAlignment/PartAlignment_Video.mp4 here]!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Program files&#039;&#039;&#039;: [https://downloads.cpr-robots.com/Wiki-Files/Examples/PartAlignment/PartAlignment_Programs.zip PartAlignment_Programs.zip]&lt;br /&gt;
&lt;br /&gt;
= Setup =&lt;br /&gt;
&#039;&#039;&#039;Robot Type&#039;&#039;&#039;: igus Gantry DLE-RG-0004-BLDC&lt;br /&gt;
&lt;br /&gt;
[[File:PartAlignment_Setup_close.JPG|thumb|250px|link=https://downloads.cpr-robots.com/Wiki-Files/Examples/PartAlignment/PartAlignment_Video.mp4]]&lt;br /&gt;
The gantry is equipped with a vacuum pump, that is fixed to an [https://www.igus.eu/product/22645?C=DE&amp;amp;L=en&amp;amp;artNr=LCA-RG-DSA-1A-1280-0100 Apiro rotary unit] for picking and turning the piece on a horizontally.&lt;br /&gt;
&lt;br /&gt;
The work piece is placed on a conveyor belt that aligns the piece via a metal funnel. At the end of the belt is a light barrier that detects the piece. An [[2D Camera Integration | ifm-camera]] is placed above this barrier, to analyze the current orientation of the piece.&lt;br /&gt;
&lt;br /&gt;
If the piece is upside-down, the gantry picks the piece and places it into a seperate gripper, which is able to turn it.&lt;br /&gt;
Afterwards the piece is aligned again via the conveyor.&lt;br /&gt;
&lt;br /&gt;
Finally the piece is placed to it&#039;s exit destination.&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=Parallel_Picking_Application&amp;diff=1034</id>
		<title>Parallel Picking Application</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=Parallel_Picking_Application&amp;diff=1034"/>
		<updated>2026-05-22T09:26:22Z</updated>

		<summary type="html">&lt;p&gt;OLT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This pick &amp;amp; place application shows, how some creativity can solve issues with imperfect picking. The robot picks five vials at the same time and places them in a tray. However, while picking the vials slip a bit. This problem was solved by leading the vials through a metal comb-like structure.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Developer&#039;&#039;&#039;: [https://rbtx.com RBTX]&lt;br /&gt;
&lt;br /&gt;
You can find a &#039;&#039;&#039;Video&#039;&#039;&#039; of the application [https://downloads.cpr-robots.com/Wiki-Files/Examples/ParallelPicking/ParallelPicking_Video3_Closeup.mp4 here]!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Program files&#039;&#039;&#039;: [https://downloads.cpr-robots.com/Wiki-Files/Examples/ParallelPicking/ParallelPicking_Programs.zip ParallelPicking_Programs.zip]&lt;br /&gt;
&lt;br /&gt;
= Setup =&lt;br /&gt;
&#039;&#039;&#039;Robot Type&#039;&#039;&#039;: igus Gantry DLE-RG-0004-BLDC&lt;br /&gt;
&lt;br /&gt;
[[File:ParallelPicking_Setup.JPG|thumb|250px|link=https://downloads.cpr-robots.com/Wiki-Files/Examples/ParallelPicking/ParallelPicking_Video3_Closeup.mp4]]&lt;br /&gt;
Five vials are placed on a tray. A simple endeffector with five gripping points was constructed to pick the vials. Due to the imperfection during gripping the vials slip a bit. For this reason a metal-comb has been added that alignes the vials. Afterwards the vials can be placed safely in the storage box.&lt;/div&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
</feed>