<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.cpr-robots.com/index.php?action=history&amp;feed=atom&amp;title=CAN_Protocol</id>
	<title>CAN Protocol - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.cpr-robots.com/index.php?action=history&amp;feed=atom&amp;title=CAN_Protocol"/>
	<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=CAN_Protocol&amp;action=history"/>
	<updated>2026-05-01T19:37:11Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=CAN_Protocol&amp;diff=184&amp;oldid=prev</id>
		<title>OLT: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=CAN_Protocol&amp;diff=184&amp;oldid=prev"/>
		<updated>2025-08-11T10:13:23Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:13, 11 August 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>OLT</name></author>
	</entry>
	<entry>
		<id>https://wiki.cpr-robots.com/index.php?title=CAN_Protocol&amp;diff=183&amp;oldid=prev</id>
		<title>cpr&gt;Mab: Text updated</title>
		<link rel="alternate" type="text/html" href="https://wiki.cpr-robots.com/index.php?title=CAN_Protocol&amp;diff=183&amp;oldid=prev"/>
		<updated>2025-03-27T11:11:22Z</updated>

		<summary type="html">&lt;p&gt;Text updated&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Searching for igus Rebel robot or joints docs? Then please go to this page: [[Rebel Joint]] for specific documentation!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Commonplace Robotics uses the CAN field bus to send position set point values from the robot controller to the  joint modules. The applied protocols are custom, but quite simple. &lt;br /&gt;
&lt;br /&gt;
=Protocol versions=&lt;br /&gt;
* CPRCAN: 16 bit position data. Used for  Mover4 and  Mover6 robots and Slider platforms&lt;br /&gt;
* CPRCANv2: 32 bit position data. Used for SRA, Mover6-2016 (understands both, CPRCAN and CPRCANV2) and all stepper based robots.&lt;br /&gt;
* CPRCANv3: 16 bit motor current values and new firmware parameter messages. Used for BLDC controls including [[Igus ReBeL|igus ReBeL arms]]. Follow the CPRCANv2 examples since the protocol is mostly the same.&lt;br /&gt;
&lt;br /&gt;
The position set point messages have to be send in a loop at a constant frequency of e.g. 10 or 20 Hz. If the jitter is too big the motion might not be smooth or the communication (timeout) error may occur. Additionally the application has to send state change messages like reset errors and enable motors. &lt;br /&gt;
&lt;br /&gt;
The modules answer the position or IO state message with position/input states and an error code that provides the current state.&lt;br /&gt;
&lt;br /&gt;
=CPR CAN Documentation and Demo Code=&lt;br /&gt;
* Documentation&lt;br /&gt;
** [[Rebel_Joint|CANv2/CANv3 protocol specification]]&lt;br /&gt;
** [http://www.cpr-robots.com/download/CAN/UserGuide_ProtocolCPRCAN.pdf CANv1/CANv2 documentation]&lt;br /&gt;
&lt;br /&gt;
* Example source code&lt;br /&gt;
** [https://github.com/CommonplaceRobotics/CANV2ProtocolDemoClient CANv2 example source code in C# for Windows]&lt;br /&gt;
*** If you do not need motor current values you can use this example for CANv3 without any changes&lt;br /&gt;
** [https://github.com/CPR-Robots/Mover4 CANv1 example source code in C++ for Linux] (deprecated)&lt;br /&gt;
** [http://www.cpr-robots.com/download/CAN/CPRMoverDemoCSharp.zip CANv1 example source code in C# for Windows] for Visual Studio Express 2012 (deprecated) &lt;br /&gt;
&lt;br /&gt;
=CAN Hardware / Drivers=&lt;br /&gt;
Most robot controls from Commonplace Robotics come with an embedded control computer, in which case you do not need to access the CAN protocol, use the [[Control Interfaces|high level control interfaces]] instead. For robot controls without embedded control computer, e.g. the [[igus ReBeL|igus ReBeL Open Source version]] or separate ReBeL joints we recommend using the [https://www.peak-system.com/PCAN-USB.199.0.html PCAN USB adapter]. This adapter is supported by our support tools (e.g. [[Module Control]] for configuring joints) and example source code. We recommend not to use other adapters since we will not be able to support you.&lt;br /&gt;
&lt;br /&gt;
[[Category:Downloads]]&lt;/div&gt;</summary>
		<author><name>cpr&gt;Mab</name></author>
	</entry>
</feed>