<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CAN bus - Robot 3T</title>
	<atom:link href="https://robot3t.com/en/product-tag/can-bus/feed/" rel="self" type="application/rss+xml" />
	<link>https://robot3t.com/en/product-tag/can-bus/</link>
	<description>Robot cộng tác &#38; tự động hóa công nghiệp, chế tạo tại Việt Nam</description>
	<lastBuildDate>Fri, 16 Oct 2026 07:14:38 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://robot3t.com/wp-content/uploads/2017/06/cropped-logo-robot3t-icon-100x100.png</url>
	<title>CAN bus - Robot 3T</title>
	<link>https://robot3t.com/en/product-tag/can-bus/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>VJ-03-CAN: Robot Joint with CAN Bus</title>
		<link>https://robot3t.com/en/products/vj-03-can/</link>
		
		<dc:creator><![CDATA[Nguyễn Hằng]]></dc:creator>
		<pubDate>Fri, 16 Oct 2026 01:33:44 +0000</pubDate>
				<guid isPermaLink="false">https://robot3t.com/?post_type=product&#038;p=6289</guid>

					<description><![CDATA[<p>Fully enclosed robot joint with CAN bus: BLDC motor, harmonic gear (ratio 50 / 80 / 100), built-in driver, 20-bit multi-turn absolute encoder and brake in one unit, with M12 connectors. Peak torque up to 328 Nm, ±0.0025° repeatability, CAN 2.0A at 1 Mbit/s, up to 127 joints per bus, 24–48 VDC supply. Designed and built by Robot3T, Vietnam.</p>
<p>The post <a href="https://robot3t.com/en/products/vj-03-can/">VJ-03-CAN: Robot Joint with CAN Bus</a> appeared first on <a href="https://robot3t.com/en/">Robot 3T</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="r3-keyspecs">
<div><strong>Up to 328 Nm</strong><span>Peak torque</span></div>
<div><strong>±0.0025°</strong><span>Repeatability</span></div>
<div><strong>CAN 1 Mbit/s</strong><span>Up to 127 joints per bus</span></div>
<div><strong>24–48 VDC</strong><span>Supply</span></div>
</div>
<p>VJ-03-CAN is the CAN bus version of the VJ-03 joint: the same motor, harmonic gear and torque range, controlled over CAN 2.0A at 1 Mbit/s and built into a fully enclosed housing with screw-locking M12 connectors. Any master with a CAN port – an STM32 board, a PLC or a PC with a USB-CAN adapter – can read position and command position or speed with a handful of simple messages. No EtherCAT master or real-time PC is needed. It suits custom robots, mobile robots, OEM machines and research or teaching labs. Designed and built by Robot3T in Vietnam.</p>
<a href="/en/contact/" class="button primary" style="border-radius:99px;">
		<span>Request a quote</span>
	</a>
 <a href="https://wa.me/84974908615" class="button primary is-outline" style="border-radius:99px;">
		<span>WhatsApp +84 974 908 615</span>
	</a>

<h3 class="r3-spec-title">Typical applications</h3>
<ul>
<li><strong>Custom robots and OEM machines:</strong> multi-axis arms, gantry wrists and rotary tool heads driven from an STM32 or a PLC with a CAN port.</li>
<li><strong>Mobile and service robots:</strong> arms on AMRs and pan-tilt heads; CAN keeps wiring short and noise-tolerant.</li>
<li><strong>Research and education:</strong> students read position and current and command position or speed using a USB-CAN adapter and Python.</li>
<li><strong>Rotary axes and positioners:</strong> indexing tables and camera or sensor gimbals that need high torque and absolute position.</li>
</ul>
<h3 class="r3-spec-title">Why VJ-03-CAN</h3>
<ul>
<li><strong>All-in-one, fully enclosed</strong> – motor, harmonic gear, driver, absolute encoder and brake in one sealed unit, with screw-locking M12 connectors.</li>
<li><strong>Simple CANopen-style protocol</strong> – 16 commands, standard 11-bit IDs; each joint has its own command and reply IDs, so the master can query several joints at once.</li>
<li><strong>Keeps absolute position through power loss</strong> – 20-bit single-turn and multi-turn encoder backed by a 3.6 V battery; no homing at every start-up.</li>
<li><strong>Safe by design</strong> – electromagnetic brake that closes when control is lost, command watchdog, broadcast E-STOP and protection against over-current, over-voltage, over-temperature and encoder faults.</li>
<li><strong>Two ways to move</strong> – stream setpoints every 1–2 ms like EtherCAT, or send a target once and let the joint generate its own acceleration profile.</li>
</ul>
<h3 class="r3-spec-title">Specifications</h3>
<div class="r3-spec">
<table>
<tbody>
<tr>
<td>Model</td>
<td>VJ-03-CAN</td>
</tr>
<tr>
<td>Harmonic gear ratio</td>
<td>50 / 80 / 100</td>
</tr>
<tr>
<td>Rated torque</td>
<td>58 / 92.8 / 116 Nm</td>
</tr>
<tr>
<td>Peak torque</td>
<td>164 / 262.4 / 328 Nm</td>
</tr>
<tr>
<td>Max. output speed (48 VDC)</td>
<td>≈ 48 / 30 / 24 rpm</td>
</tr>
<tr>
<td>Motor</td>
<td>Frameless BLDC Ø85 mm, 8 pole pairs</td>
</tr>
<tr>
<td>Motor shaft torque</td>
<td>1.45 Nm rated · 4.1 Nm peak</td>
</tr>
<tr>
<td>Supply voltage</td>
<td>24–48 VDC</td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<td>Encoder</td>
<td>20-bit absolute, single-turn and multi-turn</td>
</tr>
<tr>
<td>Encoder backup battery</td>
<td>3.6 V</td>
</tr>
<tr>
<td>Repeatability</td>
<td>±0.0025°</td>
</tr>
<tr>
<td>Control interface</td>
<td>CAN 2.0A, 1 Mbit/s, VJ CAN v2 protocol</td>
</tr>
<tr>
<td>Control modes</td>
<td>Position, speed, hand guiding</td>
</tr>
<tr>
<td>Brake</td>
<td>Electromagnetic, fail-safe</td>
</tr>
<tr>
<td>Controller</td>
<td>STM32H7, FOC position – speed – current loops</td>
</tr>
<tr>
<td>Connectors</td>
<td>Screw-locking M12</td>
</tr>
</tbody>
</table>
</div>
<p class="r3-cmp-note">Torque and speed are listed for ratios 50 / 80 / 100. Max. motor shaft speed ≈ 2,400 rpm at 48 VDC (2,000 rpm at 30 VDC).</p>
<h3 class="r3-spec-title">VJ-03-CAN vs. VJ-03 (EtherCAT)</h3>
<div class="r3-cmp">
<table>
<thead>
<tr>
<th></th>
<th>VJ-03</th>
<th>VJ-03-CAN</th>
</tr>
</thead>
<tbody>
<tr>
<td>Interface</td>
<td>EtherCAT 100 Mbps, daisy chain</td>
<td class="r3-cur">CAN 2.0A 1 Mbit/s, shared bus</td>
</tr>
<tr>
<td>Master required</td>
<td>EtherCAT master, real-time PC</td>
<td class="r3-cur">Any device with CAN or a USB-CAN adapter</td>
</tr>
<tr>
<td>Housing and connectors</td>
<td>Standard housing</td>
<td class="r3-cur">Fully enclosed, screw-locking M12</td>
</tr>
<tr>
<td>Best for</td>
<td>Multi-axis cobots with short synchronized cycles</td>
<td class="r3-cur">Custom and mobile robots, OEM, education</td>
</tr>
</tbody>
</table>
</div>
<p class="r3-cmp-note">Same motor, harmonic gear, 20-bit encoder and torque range.</p>
<h3 class="r3-spec-title">CAN interface – bus parameters</h3>
<div class="r3-cmp">
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Frame format</td>
<td>CAN 2.0A, standard 11-bit ID, data frames (no 29-bit IDs, no CAN FD)</td>
</tr>
<tr>
<td>Bit rate</td>
<td>1 Mbit/s, 80 % sample point</td>
</tr>
<tr>
<td>Byte order</td>
<td>Little-endian</td>
</tr>
<tr>
<td>Joints per bus</td>
<td>Up to 127, joint ID N = 1..127, printed on the label</td>
</tr>
<tr>
<td>Units</td>
<td>Position: motor-shaft encoder counts (1,048,576 per rev) · speed: 0.1 rpm motor shaft · current: mA · voltage: 0.1 V</td>
</tr>
<tr>
<td>Command processing cycle</td>
<td>1 ms inside the joint</td>
</tr>
</tbody>
</table>
</div>
<h3 class="r3-spec-title">Identifiers (COB-ID), N = joint ID</h3>
<div class="r3-cmp">
<table>
<thead>
<tr>
<th>COB-ID</th>
<th>Direction</th>
<th>Content</th>
</tr>
</thead>
<tbody>
<tr>
<td>0x000</td>
<td>Master → all joints</td>
<td>Broadcast E-STOP</td>
</tr>
<tr>
<td>0x600 + N</td>
<td>Master → joint N</td>
<td>Command: B0 command code, B1..B7 parameters</td>
</tr>
<tr>
<td>0x580 + N</td>
<td>Joint N → master</td>
<td>Reply: B0 command code, B1 result code, B2..B7 data</td>
</tr>
<tr>
<td>0x700 + N</td>
<td>Joint N → master</td>
<td>Boot-up and heartbeat (state, error code, mode, flags)</td>
</tr>
<tr>
<td>0x180 + N</td>
<td>Joint N → master</td>
<td>Cyclic feedback: int32 position, int16 current, error code, flags</td>
</tr>
</tbody>
</table>
</div>
<p class="r3-cmp-note">Example for joint N = 2: send commands to 0x602, receive replies on 0x582. Every command gets a reply, even when rejected; replies to SET_POSITION and SET_SPEED can be turned off to reduce bus load.</p>
<h3 class="r3-spec-title">Command set</h3>
<div class="r3-cmp">
<table>
<thead>
<tr>
<th>Code</th>
<th>Command</th>
<th>Send</th>
<th>Returns</th>
</tr>
</thead>
<tbody>
<tr>
<td>01</td>
<td>GET_INFO</td>
<td>—</td>
<td>Protocol, firmware and board version, joint ID</td>
</tr>
<tr>
<td>02</td>
<td>ESTOP</td>
<td>—</td>
<td>—</td>
</tr>
<tr>
<td>10</td>
<td>SET_MODE</td>
<td>mode 0..7</td>
<td>—</td>
</tr>
<tr>
<td>11</td>
<td>SET_COMMAND</td>
<td>0 disable · 1 enable · 3 reset</td>
<td>—</td>
</tr>
<tr>
<td>12</td>
<td>SET_POSITION</td>
<td>int32 counts · level 0..15</td>
<td>—</td>
</tr>
<tr>
<td>13</td>
<td>SET_SPEED</td>
<td>int32, 0.1 rpm</td>
<td>—</td>
</tr>
<tr>
<td>14</td>
<td>SET_OUTPUT</td>
<td>0 / 1</td>
<td>—</td>
</tr>
<tr>
<td>20</td>
<td>GET_STATUS</td>
<td>—</td>
<td>Error code, state, mode, command, flags</td>
</tr>
<tr>
<td>21</td>
<td>GET_POSITION</td>
<td>—</td>
<td>int32 counts (absolute)</td>
</tr>
<tr>
<td>22</td>
<td>GET_ENCODER</td>
<td>1 single-turn · 2 multi-turn · 3 absolute</td>
<td>uint32</td>
</tr>
<tr>
<td>23</td>
<td>GET_CURRENT</td>
<td>—</td>
<td>int32 mA</td>
</tr>
<tr>
<td>24</td>
<td>GET_VBUS</td>
<td>—</td>
<td>Supply voltage, 0.1 V</td>
</tr>
<tr>
<td>25</td>
<td>GET_ENC_BAT</td>
<td>—</td>
<td>Encoder battery voltage, 0.1 V · alarm</td>
</tr>
<tr>
<td>30</td>
<td>SET_CONFIG</td>
<td>parameter · uint32</td>
<td>—</td>
</tr>
<tr>
<td>31</td>
<td>GET_CONFIG</td>
<td>parameter</td>
<td>uint32</td>
</tr>
</tbody>
</table>
</div>
<p class="r3-cmp-note">Result codes: 00 OK · 01 unknown command · 02 missing bytes · 03 invalid value · 04 wrong state. Encoder reset, brake release and remote restart require the A5 confirmation byte.</p>
<h3 class="r3-spec-title">Modes and configuration</h3>
<ul class="r3-feat">
<li><strong>Mode 1 – position:</strong> stream setpoints every 1–2 ms (level 0), or send a target once (levels 1..15) for a built-in trapezoidal profile</li>
<li><strong>Mode 2 – speed:</strong> zero speed holds position without drift</li>
<li><strong>Mode 3 – hand guiding:</strong> reduced stiffness for teaching by hand</li>
<li><strong>Jerk-free enable:</strong> holds the current position, releases the brake after 200 ms</li>
<li><strong>Heartbeat:</strong> configurable period, sent immediately on error change</li>
<li><strong>Cyclic feedback:</strong> position and current, from 1 ms period</li>
<li><strong>Command watchdog:</strong> joint decelerates and brakes if the master or cable is lost</li>
<li><strong>Profile speed and acceleration:</strong> set with SET_CONFIG, effective immediately</li>
<li><strong>Absolute or relative position:</strong> selected with parameter 7</li>
<li><strong>Service:</strong> RS232 debug port, 115,200 bps</li>
</ul>
<h3 class="r3-spec-title">Example: move joint N = 2 to 100,000 counts</h3>
<div class="r3-cmp">
<table>
<thead>
<tr>
<th>Step</th>
<th>Send 0x602</th>
<th>Receive 0x582</th>
</tr>
</thead>
<tbody>
<tr>
<td>Heartbeat 100 ms</td>
<td>30 01 64 00 00 00</td>
<td>30 00 01</td>
</tr>
<tr>
<td>Watchdog 100 ms</td>
<td>30 03 64 00 00 00</td>
<td>30 00 03</td>
</tr>
<tr>
<td>Check errors</td>
<td>20</td>
<td>20 00 00 01 00 00 00</td>
</tr>
<tr>
<td>Position mode</td>
<td>10 01</td>
<td>10 00</td>
</tr>
<tr>
<td>Enable</td>
<td>11 01</td>
<td>11 00</td>
</tr>
<tr>
<td>Go to 100,000 counts, level 8</td>
<td>12 A0 86 01 00 08</td>
<td>12 00</td>
</tr>
<tr>
<td>Read position</td>
<td>21</td>
<td>21 00 A0 86 01 00</td>
</tr>
<tr>
<td>Stop and brake</td>
<td>11 00</td>
<td>11 00</td>
</tr>
</tbody>
</table>
</div>
<p class="r3-cmp-note">Emergency stop for all joints: send 02 00 to ID 0x000. You can test quickly with any USB-CAN tool (PCAN-View, ECANTools, SavvyCAN): 1000 kbit/s, Standard frames.</p>
<h3 class="r3-spec-title">CAN bus wiring</h3>
<ul>
<li><strong>Daisy-chain topology:</strong> master → joint 1 → joint 2 → … → last joint; no star wiring, stubs no longer than 0.3 m.</li>
<li><strong>Termination:</strong> two 120 Ω resistors at the two far ends of the bus. With power off, CANH–CANL should read about 60 Ω.</li>
<li><strong>Cable:</strong> 120 Ω twisted-pair CANH/CANL, 0.2–0.35 mm², shielded near power wiring; up to about 40 m at 1 Mbit/s, under 25 m recommended on a robot.</li>
<li><strong>Ground:</strong> connect signal ground between the master and every joint.</li>
</ul>
<h3 class="r3-spec-title">Supplied with the joint</h3>
<ul>
<li>Full CAN integration manual: wiring, command set, operating sequence, error codes and troubleshooting.</li>
<li>Sample code: reading position and status, position and speed moves, safe stop.</li>
<li>Options: USB-CAN adapter, M12 cables, 48 VDC power supply, training fixtures.</li>
</ul>
<h3 class="r3-spec-title">Video</h3>
<div class="row align-middle r3-video-row"  id="row-1630606228">

	<div id="col-1593867781" class="col medium-4 small-12 large-4"  >
				<div class="col-inner"  >
			
			
<div class="video video-fit mb" style="padding-top:177%;"><p><iframe title="VJ-03-CAN – Robot Joint with CAN Bus, up to 328 Nm | Robot3T #shorts" width="1020" height="574" src="https://www.youtube.com/embed/WWifH3F5KHg?feature=oembed&#038;enablejsapi=1" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
</div>
		</div>
					</div>

	

	<div id="col-852855078" class="col medium-8 small-12 large-8"  >
				<div class="col-inner"  >
			
			
<p class="r3-video-cap"><strong>Sealed joint, M12 connectors, CAN bus</strong></p>
<p>VJ-03-CAN packs the motor, harmonic gear, driver, absolute encoder and brake into one sealed housing. Plug in 24–48 VDC and a CAN cable, and any CAN master can drive it.</p>
<ul>
<li><strong>Housing:</strong> fully enclosed, screw-locking M12 connectors.</li>
<li><strong>Output:</strong> harmonic gear flange with keyed hollow shaft, up to 328 Nm peak.</li>
<li><strong>Control:</strong> CAN 2.0A at 1 Mbit/s, up to 127 joints on one bus.</li>
<li><strong>Feedback:</strong> 20-bit multi-turn absolute encoder, ±0.0025° repeatability.</li>
<li><strong>Safety:</strong> fail-safe brake, command watchdog, broadcast E-STOP.</li>
</ul>
<a href="/en/contact/" class="button primary is-outline" style="border-radius:99px;">
		<span>Request a quote</span>
	</a>
 <a href="https://drive.google.com/file/d/1YktqDLAGdhMuhL_OpEbASgvS-hM_0QNk/view" target="_blank" class="button primary is-outline" rel="noopener" style="border-radius:99px;">
		<span>Download CAN manual</span>
	<i class="icon-download" aria-hidden="true"></i></a>

		</div>
					</div>

	
</div>
<h3 class="r3-spec-title">FAQ</h3>
<p><strong>What do I need to control the joint?</strong><br />A 24–48 VDC supply and any device with a 1 Mbit/s CAN 2.0 port: an STM32 microcontroller, a PLC with a CAN module, or a PC with a USB-CAN adapter. The driver is built into the joint.</p>
<p><strong>Is it standard CANopen CiA 402?</strong><br />Not fully. The joint uses CANopen-style ID assignment (0x600 + N, 0x580 + N, 0x700 + N, 0x180 + N) with a compact command set of its own, so you can program it quickly without a CANopen stack. If your project requires CiA 402 or 29-bit IDs, contact us about a custom firmware version.</p>
<p><strong>How many joints can one bus run?</strong><br />Up to 127 joint addresses. A 6-joint arm at a 2 ms cycle uses about 35–65 % of the bus, depending on whether replies are enabled.</p>
<p><strong>Will it lose position after a power cut?</strong><br />No. The multi-turn absolute encoder is backed by a 3.6 V battery, and the joint reports the battery voltage so you can replace it before it runs low (below 3.0 V).</p>
<p><strong>VJ-03-CAN or VJ-03 EtherCAT?</strong><br />Choose CAN for your own controller, mobile robots or teaching. Choose EtherCAT for multi-axis cobots that need very short synchronized cycles.</p>
<div class="r3-cta">
<h3>Building your own robot or motion axis?</h3>
<p>Tell us your payload, reach, speed and the controller you use. Robot3T engineers will recommend the right joint and send a free quote.</p>
<a href="/en/contact/" class="button primary" style="border-radius:99px;">
		<span>Request a quote</span>
	</a>
</div>
<p>The post <a href="https://robot3t.com/en/products/vj-03-can/">VJ-03-CAN: Robot Joint with CAN Bus</a> appeared first on <a href="https://robot3t.com/en/">Robot 3T</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
