<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://support.hitecrcd.net:7700/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Choiyh</id>
	<title>HITEC_HELP - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://support.hitecrcd.net:7700/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Choiyh"/>
	<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php/Special:Contributions/Choiyh"/>
	<updated>2026-05-21T20:03:41Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=2002</id>
		<title>CanServo/Protoco/T2-Message</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=2002"/>
		<updated>2026-05-21T04:50:15Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* 개요 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 개요 ==&lt;br /&gt;
&lt;br /&gt;
* 여러 개의 T-Message 가 섞이는 경우, 수신 측에서 분석 실패가 발생할 수 있습니다.&lt;br /&gt;
** CRC16만으로는 16 비트 초과의 변질을 감지할 수 없습니다.&lt;br /&gt;
** 예를 들어, 5개 패킷으로 이루어진 메시지에서 1-2개 패킷이 유실되어도 CRC가 맞을 가능성이 있습니다.&lt;br /&gt;
*** 실제로 이런 일이 발생하였습니다.&lt;br /&gt;
&lt;br /&gt;
* 완벽을 위한 조건은 다음과 같습니다.&lt;br /&gt;
** 발신자 구분 = CAN ID를 통해서 구분&lt;br /&gt;
** 메시지마다 증가하는 시퀸스&lt;br /&gt;
** 패킷마다 증가하는 시퀸스&lt;br /&gt;
** 실제 전달하는 메시지의 길이&lt;br /&gt;
** 체크섬&lt;br /&gt;
*** 발신자 구분이 가능하면 CRC 16, 구분이 불가능하면 CRC32 ?&lt;br /&gt;
*** 의문: 패킷1개가 바뀌는 경우에는 7바이트가 바뀌는 것인데 CRC16,32의미가 있는가? 그래도 확률상 32가 나음?&lt;br /&gt;
** 체크섬, 메시지 길이의 위치 = 처음에 넣음. 마지막에 넣는 다면, 이것도 유동적이라 부적절함.&lt;br /&gt;
&lt;br /&gt;
* 사용 조건&lt;br /&gt;
** 1개 패킷으로 보낼 수 없는 경우에 T2-Messsage 전송&lt;br /&gt;
&lt;br /&gt;
* Format&lt;br /&gt;
** Message = L(2), crc(2 or 4), msg body(L byte)&lt;br /&gt;
** Packet = part of msg(max 7 or 63), tail byte (begin/end flag, packet seq: 4 bit, msg seq: 2 bit)&lt;br /&gt;
*** packet seq 의 최상위 bit는 toggle flag 자리를 사용&lt;br /&gt;
*** 검토: packet seq, msg seq bit 배분, 4/2, 3/3&lt;br /&gt;
&lt;br /&gt;
* T-Message 와의 구분&lt;br /&gt;
** T-Message의 toggle flag 는 1 부터 시작.&lt;br /&gt;
** packet seq 가 0 부터 시작하므로, toggle bit 자리가 0이 되어 구분이 가능.&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/T-Message&amp;diff=2001</id>
		<title>CanServo/Protocol/T-Message</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/T-Message&amp;diff=2001"/>
		<updated>2026-05-21T04:45:54Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* T-Message */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Up ==&lt;br /&gt;
&lt;br /&gt;
* Up page: [[CanServo/Protocol/0]]&lt;br /&gt;
&lt;br /&gt;
== T-Message ==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;T-Message&amp;quot; defines how to transmit messages that cannot be sent in a single packet.&lt;br /&gt;
** Of course, 1 packet is also possible.&lt;br /&gt;
&lt;br /&gt;
* This content refers to the message format of UAVCAN.&lt;br /&gt;
** Thanks to UAVCAN&lt;br /&gt;
&lt;br /&gt;
* Note:&lt;br /&gt;
** CRC16 : byte order : low byte first, little endian&lt;br /&gt;
&lt;br /&gt;
* Reference:&lt;br /&gt;
** [[Code/CRC16]]&lt;br /&gt;
&lt;br /&gt;
* Transmission method&lt;br /&gt;
** Check the length of the message to be sent, and if it cannot be sent in one packet, calculate CRC16 and add it to the end of the message.&lt;br /&gt;
*** The starting value for CRC16 calculation is 0xFFFF (-1).&lt;br /&gt;
** Repeat the process of cutting from the front, attaching the Tail Byte, and sending it as one packet.&lt;br /&gt;
*** At this time, if the length (including Tail Byte) exceeds 8 bytes, the exact length is placed in the first byte.&lt;br /&gt;
** NOTE: If it is not an FD, the maximum is 8 bytes, so it can be up to 7 bytes.&lt;br /&gt;
*** In the case of FD, the maximum is 64 bytes, so excluding the first byte of length, it can be up to 62 bytes.&lt;br /&gt;
&lt;br /&gt;
* 주의 사항&lt;br /&gt;
** Host가 발신하는 경우는, Host 단독 발신이므로, 문제가 없습니다.&lt;br /&gt;
** 여러 서보가 동시에 보내면서 수신 측에서는 섞일 수 있습니다.&lt;br /&gt;
** 같은 CAN ID 로 동시에 여러 T-Message가 전송 될 때에는, Tail Byte 의 변화와 CRC16 등으로 분석합니다.&lt;br /&gt;
** 소스는 CAN-AIO-UI 의 cTMsg (구 소스: cLongMsg) 참조&lt;br /&gt;
&lt;br /&gt;
=== CAN-FD ===&lt;br /&gt;
&lt;br /&gt;
* CAN-FD data is expanded up to 64 bytes.&lt;br /&gt;
** 0~8, 12, 16, 20, 24, 32, 48, 64&lt;br /&gt;
&lt;br /&gt;
* [[CanServo/Protocol/CAN-FD]]&lt;br /&gt;
&lt;br /&gt;
=== Tail Byte ===&lt;br /&gt;
&lt;br /&gt;
* Tail Byte&lt;br /&gt;
** bit 7 = first packet&lt;br /&gt;
** bit 6 = last packet&lt;br /&gt;
** bit 5 = 1 if first packet, toggle bit on each packet&lt;br /&gt;
** bit 4:0 = Seq, 0 ~ 31, inc 1 on each message&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/T-Message&amp;diff=2000</id>
		<title>CanServo/Protocol/T-Message</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/T-Message&amp;diff=2000"/>
		<updated>2026-05-21T04:45:14Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* CAN 2.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Up ==&lt;br /&gt;
&lt;br /&gt;
* Up page: [[CanServo/Protocol/0]]&lt;br /&gt;
&lt;br /&gt;
== T-Message ==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;T-Message&amp;quot; defines how to transmit messages that cannot be sent in a single packet.&lt;br /&gt;
** Of course, 1 packet is also possible.&lt;br /&gt;
&lt;br /&gt;
* This content refers to the message format of UAVCAN.&lt;br /&gt;
** Thanks to UAVCAN&lt;br /&gt;
&lt;br /&gt;
* Note:&lt;br /&gt;
** CRC16 : byte order : low byte first, little endian&lt;br /&gt;
&lt;br /&gt;
* Reference:&lt;br /&gt;
** [[Code/CRC16]]&lt;br /&gt;
&lt;br /&gt;
* Transmission method&lt;br /&gt;
** Check the length of the message to be sent, and if it cannot be sent in one packet, calculate CRC16 and add it to the end of the message.&lt;br /&gt;
*** The starting value for CRC16 calculation is 0xFFFF (-1).&lt;br /&gt;
** Repeat the process of cutting from the front, attaching the Tail Byte, and sending it as one packet.&lt;br /&gt;
*** At this time, if the length (including Tail Byte) exceeds 8 bytes, the exact length is placed in the first byte.&lt;br /&gt;
** NOTE: If it is not an FD, the maximum is 8 bytes, so it can be up to 7 bytes.&lt;br /&gt;
*** In the case of FD, the maximum is 64 bytes, so excluding the first byte of length, it can be up to 62 bytes.&lt;br /&gt;
&lt;br /&gt;
* 주의 사항&lt;br /&gt;
** Host가 발신하는 경우는, 연결된 메시지를 연속으로 전송하면 됩니다.&lt;br /&gt;
** 여러 서보가 동시에 보내면서 수신 측에서는 섞일 수 있습니다.&lt;br /&gt;
** 같은 CAN ID 로 동시에 여러 T-Message가 전송 될 때에는, Tail Byte 의 변화와 CRC16 등으로 분석합니다.&lt;br /&gt;
** 소스는 CAN-AIO-UI 의 cTMsg (구 소스: cLongMsg) 참조&lt;br /&gt;
&lt;br /&gt;
=== CAN-FD ===&lt;br /&gt;
&lt;br /&gt;
* CAN-FD data is expanded up to 64 bytes.&lt;br /&gt;
** 0~8, 12, 16, 20, 24, 32, 48, 64&lt;br /&gt;
&lt;br /&gt;
* [[CanServo/Protocol/CAN-FD]]&lt;br /&gt;
&lt;br /&gt;
=== Tail Byte ===&lt;br /&gt;
&lt;br /&gt;
* Tail Byte&lt;br /&gt;
** bit 7 = first packet&lt;br /&gt;
** bit 6 = last packet&lt;br /&gt;
** bit 5 = 1 if first packet, toggle bit on each packet&lt;br /&gt;
** bit 4:0 = Seq, 0 ~ 31, inc 1 on each message&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/0&amp;diff=1999</id>
		<title>CanServo/Protocol/0</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/0&amp;diff=1999"/>
		<updated>2026-05-21T02:04:44Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* Section / platform */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Protocol Sections ==&lt;br /&gt;
* [[SERVO/PROTOCOL/CAN/V1.0/ENG]] - V1.0 - w/W, r/R, x/X, v/V&lt;br /&gt;
** Write/Read 1 or 2 register&lt;br /&gt;
* Prohibited keywords ( 금지 키워드 )&lt;br /&gt;
** ZRU1, ZRU2&lt;br /&gt;
* [[CanServo/Protocol/V1.1]] - V1.1 - ZUID, ZIDS, ZG??, ZR??, ZS??, ZX??, FILE(ZGFL, ZSDF, ZFWU), ZMSG&lt;br /&gt;
** Simple Broadcast UID and Set IDs(ID1,ID2) via UID - ZUID, ZIDS&lt;br /&gt;
** Write/Read register's bits by ID or UID&lt;br /&gt;
** FILE Access&lt;br /&gt;
** Message: ZMSG&lt;br /&gt;
* [[CanServo/Protocol/V1.2]] - V1.2 - p/P, g/G, o/O, y/Y&lt;br /&gt;
** Write/Read 1 or 2 register with 2 byte address in 1 packet&lt;br /&gt;
*** address = max 1024 range (0~1023)&lt;br /&gt;
* [[CanServo/Protocol/V1.3]] - V1.3 - ZU??(Except ZUID), K&lt;br /&gt;
** Write/Read 1 or 2 register via UID&lt;br /&gt;
** Broadcast UID&lt;br /&gt;
** UID search&lt;br /&gt;
* [[CanServo/Protocol/V1.4]] - V1.4 - sync&lt;br /&gt;
* [[CanServo/Protocol/V1.5]] - V1.5 - ZKW?, ZKR?, ZKX?, ZKV?&lt;br /&gt;
** 260409 - 폐기, V2.2 로 대치&lt;br /&gt;
** Write/Read N register(s)&lt;br /&gt;
* [[CanServo/Protocol/V1.6]] - V1.6 - Zc??, Zr??&lt;br /&gt;
** Custom CAN / CAN-FD&lt;br /&gt;
* [[CanServo/Protocol/V1.7]] - V1.7 - Pot Calibration - ZP??&lt;br /&gt;
* [[CanServo/Protocol/V1.8]] - V1.8 - zs? - Address 256이상인 Stream 설정 및 Stream 전용 Message (2026_02_06)&lt;br /&gt;
* [[CanServo/Protocol/V1.9]] - V1.9 - ZZ??, PZ 읽기, (2026_02_06)&lt;br /&gt;
* [[CanServo/Protocol/V2.1]] - V2.1 - Zb??, Write / Read N register's bit(s) by ID or UID&lt;br /&gt;
* [[CanServo/Protocol/V2.2]] - V2.2 - ZkW?, ZkR?, ZkX?, ZkV?&lt;br /&gt;
** Write/Read N register(s) with N1&lt;br /&gt;
&lt;br /&gt;
== Message Types ==&lt;br /&gt;
&lt;br /&gt;
* Tail Byte 유무에 따라 S-Message/T-Message(OLD Short Message / Long Message)로 나눕니다.&lt;br /&gt;
** [[CanServo/Protocol/S-Message]] - Single Packet ( without Tail byte )&lt;br /&gt;
** [[CanServo/Protocol/T-Message]] - Single/Multi Packet with Tail byte&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! CAN ID&lt;br /&gt;
! [[CanServo/Protocol/S-Message | S-Message]]&lt;br /&gt;
! [[CanServo/Protocol/T-Message | T-Message]]&lt;br /&gt;
|-&lt;br /&gt;
! Host -&amp;gt; Servo&lt;br /&gt;
| 0(Broadcast) or ID2&lt;br /&gt;
| 0x7FE, ID2+4&lt;br /&gt;
|-&lt;br /&gt;
! Servo -&amp;gt; Host&lt;br /&gt;
| ID2 or ID2+1&lt;br /&gt;
| 0x7FF, ID2+5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* CAN-FD 도입에 따른 S-Message/T-Message 운영 방침&lt;br /&gt;
** 아래 2026_02_11 기록 확인 요망&lt;br /&gt;
&lt;br /&gt;
* RR 정의 (2026_01_14)&lt;br /&gt;
** 이 날짜 이전 버전은 +2, +3 가 되며, Return + 1 (실제로는 bit OR 1) option을 설정하면 꼬이므로, 다음과 같이 변경함.&lt;br /&gt;
** ID2 + 2 = RR MCU 1 Access&lt;br /&gt;
** ID2 + 3 = RR MCU 1 Return + 1 option&lt;br /&gt;
** ID2 + 6 = RR MCU 2 Access&lt;br /&gt;
** ID2 + 7 = RR MCU 2 Return + 1 option&lt;br /&gt;
&lt;br /&gt;
* NOTE: ID2 must aligned by 8.&lt;br /&gt;
&lt;br /&gt;
== Target ID ==&lt;br /&gt;
&lt;br /&gt;
* Target Servo ID만 존재하고, ID2 정보가 없는 메시지(V1.0, V1.2, V1.5 등)&lt;br /&gt;
** CAN ID = 0 혹은 0x7FE 를 통해 전달하면 ID1 만 확인됩니다.&lt;br /&gt;
** ID2 구분이 필요하면, ID2, ID2+4 를 통해서 전달해야 합니다.&lt;br /&gt;
** 서보는, ID2 구분이 되도록, ID2(혹은 ID2+1), ID2+5를 통해 반환합니다.&lt;br /&gt;
&lt;br /&gt;
== Section / platform ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Section&lt;br /&gt;
! Short&lt;br /&gt;
! Long&lt;br /&gt;
! ST&lt;br /&gt;
! AT&lt;br /&gt;
! R1CAN&lt;br /&gt;
! R2CAN&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.1&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.2&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.3&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
| 2.3(3)&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.4&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
| 2.3(3)&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.5&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.6&lt;br /&gt;
| -&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
3.0(2) 260514&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.7&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.8&lt;br /&gt;
| -&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
3.0(2) 260514&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
3.0(2) 260514&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
3.0(2) 260514&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ID2+4/5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* DATE: 2024_11_25, G491 R1CAN&lt;br /&gt;
&lt;br /&gt;
== Message Return Rule ==&lt;br /&gt;
&lt;br /&gt;
NOTE: 우선 순위 높은 규칙부터 나열합니다.&lt;br /&gt;
&lt;br /&gt;
* CAN Data Type (CAN, FD, BRS) 유지&lt;br /&gt;
* ID2 구분이 필요한 메시지 (메시지 내용에 ID2 가 없는 경우)&lt;br /&gt;
** V1.0, V1.2: ID2 ( 또는 설정에 따라 ID2 + 1 )&lt;br /&gt;
** V1.5: ID2 + 5&lt;br /&gt;
** V2.2: ID2 + 5&lt;br /&gt;
* T-Message: T-Message 로 반환&lt;br /&gt;
** ID2+4 수신시, ID2+5 반환&lt;br /&gt;
** 0x7FE 수신시, 0x7FF 반환&lt;br /&gt;
* (여기까지오면, 0 또는 ID2 인 S-Message)&lt;br /&gt;
** CAN 수신시&lt;br /&gt;
*** 반환 메시지 (유동적일 때는 최대) 길이가 8바이트 초과인 경우에는 ID2+5 T-Message 반환&lt;br /&gt;
*** ID2 또는 ID2+1, S-Message 반환&lt;br /&gt;
** FD 또는 FD/BRS 수신시&lt;br /&gt;
*** 반환 메시지 (유동적일 때는 최대) 길이가 63바이트 초과인 경우에는 ID2+5 T-Message 반환&lt;br /&gt;
*** ID2 또는 ID2+1, S-Message 반환&lt;br /&gt;
&lt;br /&gt;
== Protocol Recv CAN ID Rule ==&lt;br /&gt;
&lt;br /&gt;
* 조사&lt;br /&gt;
** V1.0 - 8 byte 이하 고정 길이, ID1만 있음, CAN ID = Short&lt;br /&gt;
*** return CAN ID = ID2 또는 ID2 + 1&lt;br /&gt;
** V1.1 - 63 byte 이하 고정 길이, UID 또는 ID2/ID1 포함, CAN ID = Long&lt;br /&gt;
*** 0x7Fx, ID2+5 가능?&lt;br /&gt;
** V1.2 - V1.0 과 같음&lt;br /&gt;
*** return CAN ID = ID2 또는 ID2 + 1&lt;br /&gt;
** V1.3 - 63 byte 이하 고정 길이(일부 유동), UID 또는 ID2/ID1 포함, CAN ID = Long&lt;br /&gt;
*** 0x7Fx, ID2+5 가능?&lt;br /&gt;
** V1.4 - sync, ID 없음, 모든 CAN ID  가능, CAN ID = Any&lt;br /&gt;
** V1.5 - 8 byte 초과 유동적 길이, ID1만 있음, CAN ID = Long&lt;br /&gt;
*** 0x7Fx 가능, return CAN ID = ID2 + 5 권장&lt;br /&gt;
** V1.6 - Long, ID2/ID1 포함, CAN ID = Long&lt;br /&gt;
** V1.7 - 다양한 길이의 고정 길이, ID2/ID1 포함, 모든 CAN ID 가능, CAN ID = Long&lt;br /&gt;
** V1.8 - 안씀?&lt;br /&gt;
** V1.9 - Long, ID2/ID1 포함, 모든 CAN ID 가능, CAN ID = Long&lt;br /&gt;
&lt;br /&gt;
* 결론&lt;br /&gt;
** Short = V1.0, V1.2&lt;br /&gt;
** Any = V1.4&lt;br /&gt;
** Long = 이외&lt;br /&gt;
&lt;br /&gt;
== CAN-FD ==&lt;br /&gt;
&lt;br /&gt;
* [[CanServo/Protocol/CAN-FD]]&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
=== 2026_04_09 ===&lt;br /&gt;
&lt;br /&gt;
* V1.9&lt;br /&gt;
** N1 적용, ID2 추가&lt;br /&gt;
** R1CAN 적용&lt;br /&gt;
* V2.1&lt;br /&gt;
** N1 적용&lt;br /&gt;
** R1CAN 적용&lt;br /&gt;
* V2.2 (신규)&lt;br /&gt;
** N1 적용&lt;br /&gt;
* V1.5 (폐기)&lt;br /&gt;
** V2.2 로 대치&lt;br /&gt;
** 주의: N1 없이, R2CAN에 적용된 상태임.&lt;br /&gt;
&lt;br /&gt;
=== 2026_03_16 ===&lt;br /&gt;
&lt;br /&gt;
* Short/Long Message 명칭 변경&lt;br /&gt;
** Short Message -&amp;gt; S-Message ( message in Single packet )&lt;br /&gt;
** Long Message -&amp;gt; T-Message ( message with Tail byte )&lt;br /&gt;
&lt;br /&gt;
=== 2026_03_05 ===&lt;br /&gt;
&lt;br /&gt;
* V1.5 메시지는, (0x7FE, ID2+4) 수신 CAN ID에 상관없이 , 무조건 ID2+5 로 반환&lt;br /&gt;
&lt;br /&gt;
=== 2026_02_11 ===&lt;br /&gt;
&lt;br /&gt;
* CAN-FD 도입에 따른 Short / Long Message 운영 방침 정리&lt;br /&gt;
** CAN-FD 기능이 도입되면서, 어느 정도 긴 문장도 1개 패킷으로 가능하게 되었습니다.&lt;br /&gt;
** 예: ZKV2 메시지가 CAN-FD 1개 packet으로 가능&lt;br /&gt;
** 이때 테스트 자동화 과정에서, 모든 경우의 수를 수행하면서, Long Message를 Short Message CAN ID에 전송하여서 문제가 발생함.&lt;br /&gt;
*** 예를 들어, p로 시작하는 패킷이 전달되면 이상 동작을 함.&lt;br /&gt;
*** 발신 UI가 잘못한 것.&lt;br /&gt;
** 이런 일이 생기지 않도록 아예 분리합니다.&lt;br /&gt;
** Long Message 로 보내면 TAIL BYTE 때문에 1바이트 늘어나게 되는데 이는 큰 문제는 아니므로, 고정 적으로 할당합니다.&lt;br /&gt;
** 즉, CAN에서 Short / Long Message로 정의되었던 내용은, CAN-FD에서도 그대로 Short / Long Message로 사용합니다.&lt;br /&gt;
** DroneCAN에서의 우리 프로토콜 사용 방침&lt;br /&gt;
*** Long Message만 사용합니다.&lt;br /&gt;
**** Short Message로만 가능한 V1.0, V1.2 사용 불가&lt;br /&gt;
*** ID2 = 0 ~ 127&lt;br /&gt;
*** DroneCAN 통신 방해를 하지 않기 위해, CAN 2.0A 로 작동합니다.&lt;br /&gt;
&lt;br /&gt;
=== 2026_01_14 ===&lt;br /&gt;
&lt;br /&gt;
* SR33 RR MCU 1/2 Access 기준 변경&lt;br /&gt;
** 변경전: ID2 + 2, ID2 + 3&lt;br /&gt;
** 변경후: ID2 + 2, ID2 + 6&lt;br /&gt;
** 사유: Return +1 option을 설정하면, 실제로는 OR 1 이기 때문에, +3, +3 으로 꼬임&lt;br /&gt;
*** 만일 +1 이라고 해도, +3, +4 가 되어, Long Message와 꼬임.&lt;br /&gt;
&lt;br /&gt;
=== 2025_06_19 ===&lt;br /&gt;
&lt;br /&gt;
* (6) Return message has bug&lt;br /&gt;
** (4) Replace message keyword&lt;br /&gt;
*** ZRUU: ZSUU, ZXUU, ZGUU -&amp;gt; ZRuu, ZSuu, ZXuu, ZGuu&lt;br /&gt;
*** ZRID: ZSID, ZXID, ZGID -&amp;gt; ZRid, ZSid, ZXid, ZGid&lt;br /&gt;
*** ZUV1: ZUW1, ZUX1, ZUR1 -&amp;gt; ZUv1, ZUw1, ZUx1, ZUr1&lt;br /&gt;
*** ZUV2: ZUW2, ZUX2, ZUR2 -&amp;gt; ZUv2, ZUw2, ZUx2, ZUr2&lt;br /&gt;
*** 과거 FW가 반응하지 않도록 메시지의 키워드를 변경합니다.&lt;br /&gt;
*** [[CanServo/Protocol/V1.1#2025_06_19]]&lt;br /&gt;
*** [[CanServo/Protocol/V1.3#2025_06_19]]&lt;br /&gt;
** (2) No replace:&lt;br /&gt;
*** ZMSG -&amp;gt; 전송 코드 수정으로 해결&lt;br /&gt;
*** ZGFL -&amp;gt;  조심해서 사용&lt;br /&gt;
&lt;br /&gt;
=== 2025_03 ===&lt;br /&gt;
* V1.6 추가&lt;br /&gt;
&lt;br /&gt;
=== 2025_02 ===&lt;br /&gt;
** CAN-FD 추가&lt;br /&gt;
** Short Mesasge 추가&lt;br /&gt;
** V1.5 추가&lt;br /&gt;
** ID2+X 추가&lt;br /&gt;
&lt;br /&gt;
=== 2024_11 ===&lt;br /&gt;
** R1CAN 추가&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/0&amp;diff=1998</id>
		<title>CanServo/Protocol/0</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/0&amp;diff=1998"/>
		<updated>2026-05-21T02:02:53Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* Section / platform */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Protocol Sections ==&lt;br /&gt;
* [[SERVO/PROTOCOL/CAN/V1.0/ENG]] - V1.0 - w/W, r/R, x/X, v/V&lt;br /&gt;
** Write/Read 1 or 2 register&lt;br /&gt;
* Prohibited keywords ( 금지 키워드 )&lt;br /&gt;
** ZRU1, ZRU2&lt;br /&gt;
* [[CanServo/Protocol/V1.1]] - V1.1 - ZUID, ZIDS, ZG??, ZR??, ZS??, ZX??, FILE(ZGFL, ZSDF, ZFWU), ZMSG&lt;br /&gt;
** Simple Broadcast UID and Set IDs(ID1,ID2) via UID - ZUID, ZIDS&lt;br /&gt;
** Write/Read register's bits by ID or UID&lt;br /&gt;
** FILE Access&lt;br /&gt;
** Message: ZMSG&lt;br /&gt;
* [[CanServo/Protocol/V1.2]] - V1.2 - p/P, g/G, o/O, y/Y&lt;br /&gt;
** Write/Read 1 or 2 register with 2 byte address in 1 packet&lt;br /&gt;
*** address = max 1024 range (0~1023)&lt;br /&gt;
* [[CanServo/Protocol/V1.3]] - V1.3 - ZU??(Except ZUID), K&lt;br /&gt;
** Write/Read 1 or 2 register via UID&lt;br /&gt;
** Broadcast UID&lt;br /&gt;
** UID search&lt;br /&gt;
* [[CanServo/Protocol/V1.4]] - V1.4 - sync&lt;br /&gt;
* [[CanServo/Protocol/V1.5]] - V1.5 - ZKW?, ZKR?, ZKX?, ZKV?&lt;br /&gt;
** 260409 - 폐기, V2.2 로 대치&lt;br /&gt;
** Write/Read N register(s)&lt;br /&gt;
* [[CanServo/Protocol/V1.6]] - V1.6 - Zc??, Zr??&lt;br /&gt;
** Custom CAN / CAN-FD&lt;br /&gt;
* [[CanServo/Protocol/V1.7]] - V1.7 - Pot Calibration - ZP??&lt;br /&gt;
* [[CanServo/Protocol/V1.8]] - V1.8 - zs? - Address 256이상인 Stream 설정 및 Stream 전용 Message (2026_02_06)&lt;br /&gt;
* [[CanServo/Protocol/V1.9]] - V1.9 - ZZ??, PZ 읽기, (2026_02_06)&lt;br /&gt;
* [[CanServo/Protocol/V2.1]] - V2.1 - Zb??, Write / Read N register's bit(s) by ID or UID&lt;br /&gt;
* [[CanServo/Protocol/V2.2]] - V2.2 - ZkW?, ZkR?, ZkX?, ZkV?&lt;br /&gt;
** Write/Read N register(s) with N1&lt;br /&gt;
&lt;br /&gt;
== Message Types ==&lt;br /&gt;
&lt;br /&gt;
* Tail Byte 유무에 따라 S-Message/T-Message(OLD Short Message / Long Message)로 나눕니다.&lt;br /&gt;
** [[CanServo/Protocol/S-Message]] - Single Packet ( without Tail byte )&lt;br /&gt;
** [[CanServo/Protocol/T-Message]] - Single/Multi Packet with Tail byte&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! CAN ID&lt;br /&gt;
! [[CanServo/Protocol/S-Message | S-Message]]&lt;br /&gt;
! [[CanServo/Protocol/T-Message | T-Message]]&lt;br /&gt;
|-&lt;br /&gt;
! Host -&amp;gt; Servo&lt;br /&gt;
| 0(Broadcast) or ID2&lt;br /&gt;
| 0x7FE, ID2+4&lt;br /&gt;
|-&lt;br /&gt;
! Servo -&amp;gt; Host&lt;br /&gt;
| ID2 or ID2+1&lt;br /&gt;
| 0x7FF, ID2+5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* CAN-FD 도입에 따른 S-Message/T-Message 운영 방침&lt;br /&gt;
** 아래 2026_02_11 기록 확인 요망&lt;br /&gt;
&lt;br /&gt;
* RR 정의 (2026_01_14)&lt;br /&gt;
** 이 날짜 이전 버전은 +2, +3 가 되며, Return + 1 (실제로는 bit OR 1) option을 설정하면 꼬이므로, 다음과 같이 변경함.&lt;br /&gt;
** ID2 + 2 = RR MCU 1 Access&lt;br /&gt;
** ID2 + 3 = RR MCU 1 Return + 1 option&lt;br /&gt;
** ID2 + 6 = RR MCU 2 Access&lt;br /&gt;
** ID2 + 7 = RR MCU 2 Return + 1 option&lt;br /&gt;
&lt;br /&gt;
* NOTE: ID2 must aligned by 8.&lt;br /&gt;
&lt;br /&gt;
== Target ID ==&lt;br /&gt;
&lt;br /&gt;
* Target Servo ID만 존재하고, ID2 정보가 없는 메시지(V1.0, V1.2, V1.5 등)&lt;br /&gt;
** CAN ID = 0 혹은 0x7FE 를 통해 전달하면 ID1 만 확인됩니다.&lt;br /&gt;
** ID2 구분이 필요하면, ID2, ID2+4 를 통해서 전달해야 합니다.&lt;br /&gt;
** 서보는, ID2 구분이 되도록, ID2(혹은 ID2+1), ID2+5를 통해 반환합니다.&lt;br /&gt;
&lt;br /&gt;
== Section / platform ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Section&lt;br /&gt;
! Short&lt;br /&gt;
! Long&lt;br /&gt;
! ST&lt;br /&gt;
! AT&lt;br /&gt;
! G491&lt;br /&gt;
! RR&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.1&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.2&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.3&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
| 2.3(3)&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.4&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
| 2.3(3)&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.5&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.6&lt;br /&gt;
| -&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
3.0(2) 260514&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.7&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.8&lt;br /&gt;
| -&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
3.0(2) 260514&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
3.0(2) 260514&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
3.0(2) 260514&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ID2+4/5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* DATE: 2024_11_25, G491 R1CAN&lt;br /&gt;
&lt;br /&gt;
== Message Return Rule ==&lt;br /&gt;
&lt;br /&gt;
NOTE: 우선 순위 높은 규칙부터 나열합니다.&lt;br /&gt;
&lt;br /&gt;
* CAN Data Type (CAN, FD, BRS) 유지&lt;br /&gt;
* ID2 구분이 필요한 메시지 (메시지 내용에 ID2 가 없는 경우)&lt;br /&gt;
** V1.0, V1.2: ID2 ( 또는 설정에 따라 ID2 + 1 )&lt;br /&gt;
** V1.5: ID2 + 5&lt;br /&gt;
** V2.2: ID2 + 5&lt;br /&gt;
* T-Message: T-Message 로 반환&lt;br /&gt;
** ID2+4 수신시, ID2+5 반환&lt;br /&gt;
** 0x7FE 수신시, 0x7FF 반환&lt;br /&gt;
* (여기까지오면, 0 또는 ID2 인 S-Message)&lt;br /&gt;
** CAN 수신시&lt;br /&gt;
*** 반환 메시지 (유동적일 때는 최대) 길이가 8바이트 초과인 경우에는 ID2+5 T-Message 반환&lt;br /&gt;
*** ID2 또는 ID2+1, S-Message 반환&lt;br /&gt;
** FD 또는 FD/BRS 수신시&lt;br /&gt;
*** 반환 메시지 (유동적일 때는 최대) 길이가 63바이트 초과인 경우에는 ID2+5 T-Message 반환&lt;br /&gt;
*** ID2 또는 ID2+1, S-Message 반환&lt;br /&gt;
&lt;br /&gt;
== Protocol Recv CAN ID Rule ==&lt;br /&gt;
&lt;br /&gt;
* 조사&lt;br /&gt;
** V1.0 - 8 byte 이하 고정 길이, ID1만 있음, CAN ID = Short&lt;br /&gt;
*** return CAN ID = ID2 또는 ID2 + 1&lt;br /&gt;
** V1.1 - 63 byte 이하 고정 길이, UID 또는 ID2/ID1 포함, CAN ID = Long&lt;br /&gt;
*** 0x7Fx, ID2+5 가능?&lt;br /&gt;
** V1.2 - V1.0 과 같음&lt;br /&gt;
*** return CAN ID = ID2 또는 ID2 + 1&lt;br /&gt;
** V1.3 - 63 byte 이하 고정 길이(일부 유동), UID 또는 ID2/ID1 포함, CAN ID = Long&lt;br /&gt;
*** 0x7Fx, ID2+5 가능?&lt;br /&gt;
** V1.4 - sync, ID 없음, 모든 CAN ID  가능, CAN ID = Any&lt;br /&gt;
** V1.5 - 8 byte 초과 유동적 길이, ID1만 있음, CAN ID = Long&lt;br /&gt;
*** 0x7Fx 가능, return CAN ID = ID2 + 5 권장&lt;br /&gt;
** V1.6 - Long, ID2/ID1 포함, CAN ID = Long&lt;br /&gt;
** V1.7 - 다양한 길이의 고정 길이, ID2/ID1 포함, 모든 CAN ID 가능, CAN ID = Long&lt;br /&gt;
** V1.8 - 안씀?&lt;br /&gt;
** V1.9 - Long, ID2/ID1 포함, 모든 CAN ID 가능, CAN ID = Long&lt;br /&gt;
&lt;br /&gt;
* 결론&lt;br /&gt;
** Short = V1.0, V1.2&lt;br /&gt;
** Any = V1.4&lt;br /&gt;
** Long = 이외&lt;br /&gt;
&lt;br /&gt;
== CAN-FD ==&lt;br /&gt;
&lt;br /&gt;
* [[CanServo/Protocol/CAN-FD]]&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
=== 2026_04_09 ===&lt;br /&gt;
&lt;br /&gt;
* V1.9&lt;br /&gt;
** N1 적용, ID2 추가&lt;br /&gt;
** R1CAN 적용&lt;br /&gt;
* V2.1&lt;br /&gt;
** N1 적용&lt;br /&gt;
** R1CAN 적용&lt;br /&gt;
* V2.2 (신규)&lt;br /&gt;
** N1 적용&lt;br /&gt;
* V1.5 (폐기)&lt;br /&gt;
** V2.2 로 대치&lt;br /&gt;
** 주의: N1 없이, R2CAN에 적용된 상태임.&lt;br /&gt;
&lt;br /&gt;
=== 2026_03_16 ===&lt;br /&gt;
&lt;br /&gt;
* Short/Long Message 명칭 변경&lt;br /&gt;
** Short Message -&amp;gt; S-Message ( message in Single packet )&lt;br /&gt;
** Long Message -&amp;gt; T-Message ( message with Tail byte )&lt;br /&gt;
&lt;br /&gt;
=== 2026_03_05 ===&lt;br /&gt;
&lt;br /&gt;
* V1.5 메시지는, (0x7FE, ID2+4) 수신 CAN ID에 상관없이 , 무조건 ID2+5 로 반환&lt;br /&gt;
&lt;br /&gt;
=== 2026_02_11 ===&lt;br /&gt;
&lt;br /&gt;
* CAN-FD 도입에 따른 Short / Long Message 운영 방침 정리&lt;br /&gt;
** CAN-FD 기능이 도입되면서, 어느 정도 긴 문장도 1개 패킷으로 가능하게 되었습니다.&lt;br /&gt;
** 예: ZKV2 메시지가 CAN-FD 1개 packet으로 가능&lt;br /&gt;
** 이때 테스트 자동화 과정에서, 모든 경우의 수를 수행하면서, Long Message를 Short Message CAN ID에 전송하여서 문제가 발생함.&lt;br /&gt;
*** 예를 들어, p로 시작하는 패킷이 전달되면 이상 동작을 함.&lt;br /&gt;
*** 발신 UI가 잘못한 것.&lt;br /&gt;
** 이런 일이 생기지 않도록 아예 분리합니다.&lt;br /&gt;
** Long Message 로 보내면 TAIL BYTE 때문에 1바이트 늘어나게 되는데 이는 큰 문제는 아니므로, 고정 적으로 할당합니다.&lt;br /&gt;
** 즉, CAN에서 Short / Long Message로 정의되었던 내용은, CAN-FD에서도 그대로 Short / Long Message로 사용합니다.&lt;br /&gt;
** DroneCAN에서의 우리 프로토콜 사용 방침&lt;br /&gt;
*** Long Message만 사용합니다.&lt;br /&gt;
**** Short Message로만 가능한 V1.0, V1.2 사용 불가&lt;br /&gt;
*** ID2 = 0 ~ 127&lt;br /&gt;
*** DroneCAN 통신 방해를 하지 않기 위해, CAN 2.0A 로 작동합니다.&lt;br /&gt;
&lt;br /&gt;
=== 2026_01_14 ===&lt;br /&gt;
&lt;br /&gt;
* SR33 RR MCU 1/2 Access 기준 변경&lt;br /&gt;
** 변경전: ID2 + 2, ID2 + 3&lt;br /&gt;
** 변경후: ID2 + 2, ID2 + 6&lt;br /&gt;
** 사유: Return +1 option을 설정하면, 실제로는 OR 1 이기 때문에, +3, +3 으로 꼬임&lt;br /&gt;
*** 만일 +1 이라고 해도, +3, +4 가 되어, Long Message와 꼬임.&lt;br /&gt;
&lt;br /&gt;
=== 2025_06_19 ===&lt;br /&gt;
&lt;br /&gt;
* (6) Return message has bug&lt;br /&gt;
** (4) Replace message keyword&lt;br /&gt;
*** ZRUU: ZSUU, ZXUU, ZGUU -&amp;gt; ZRuu, ZSuu, ZXuu, ZGuu&lt;br /&gt;
*** ZRID: ZSID, ZXID, ZGID -&amp;gt; ZRid, ZSid, ZXid, ZGid&lt;br /&gt;
*** ZUV1: ZUW1, ZUX1, ZUR1 -&amp;gt; ZUv1, ZUw1, ZUx1, ZUr1&lt;br /&gt;
*** ZUV2: ZUW2, ZUX2, ZUR2 -&amp;gt; ZUv2, ZUw2, ZUx2, ZUr2&lt;br /&gt;
*** 과거 FW가 반응하지 않도록 메시지의 키워드를 변경합니다.&lt;br /&gt;
*** [[CanServo/Protocol/V1.1#2025_06_19]]&lt;br /&gt;
*** [[CanServo/Protocol/V1.3#2025_06_19]]&lt;br /&gt;
** (2) No replace:&lt;br /&gt;
*** ZMSG -&amp;gt; 전송 코드 수정으로 해결&lt;br /&gt;
*** ZGFL -&amp;gt;  조심해서 사용&lt;br /&gt;
&lt;br /&gt;
=== 2025_03 ===&lt;br /&gt;
* V1.6 추가&lt;br /&gt;
&lt;br /&gt;
=== 2025_02 ===&lt;br /&gt;
** CAN-FD 추가&lt;br /&gt;
** Short Mesasge 추가&lt;br /&gt;
** V1.5 추가&lt;br /&gt;
** ID2+X 추가&lt;br /&gt;
&lt;br /&gt;
=== 2024_11 ===&lt;br /&gt;
** R1CAN 추가&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/0&amp;diff=1997</id>
		<title>CanServo/Protocol/0</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/0&amp;diff=1997"/>
		<updated>2026-05-21T02:02:31Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* Section / platform */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Protocol Sections ==&lt;br /&gt;
* [[SERVO/PROTOCOL/CAN/V1.0/ENG]] - V1.0 - w/W, r/R, x/X, v/V&lt;br /&gt;
** Write/Read 1 or 2 register&lt;br /&gt;
* Prohibited keywords ( 금지 키워드 )&lt;br /&gt;
** ZRU1, ZRU2&lt;br /&gt;
* [[CanServo/Protocol/V1.1]] - V1.1 - ZUID, ZIDS, ZG??, ZR??, ZS??, ZX??, FILE(ZGFL, ZSDF, ZFWU), ZMSG&lt;br /&gt;
** Simple Broadcast UID and Set IDs(ID1,ID2) via UID - ZUID, ZIDS&lt;br /&gt;
** Write/Read register's bits by ID or UID&lt;br /&gt;
** FILE Access&lt;br /&gt;
** Message: ZMSG&lt;br /&gt;
* [[CanServo/Protocol/V1.2]] - V1.2 - p/P, g/G, o/O, y/Y&lt;br /&gt;
** Write/Read 1 or 2 register with 2 byte address in 1 packet&lt;br /&gt;
*** address = max 1024 range (0~1023)&lt;br /&gt;
* [[CanServo/Protocol/V1.3]] - V1.3 - ZU??(Except ZUID), K&lt;br /&gt;
** Write/Read 1 or 2 register via UID&lt;br /&gt;
** Broadcast UID&lt;br /&gt;
** UID search&lt;br /&gt;
* [[CanServo/Protocol/V1.4]] - V1.4 - sync&lt;br /&gt;
* [[CanServo/Protocol/V1.5]] - V1.5 - ZKW?, ZKR?, ZKX?, ZKV?&lt;br /&gt;
** 260409 - 폐기, V2.2 로 대치&lt;br /&gt;
** Write/Read N register(s)&lt;br /&gt;
* [[CanServo/Protocol/V1.6]] - V1.6 - Zc??, Zr??&lt;br /&gt;
** Custom CAN / CAN-FD&lt;br /&gt;
* [[CanServo/Protocol/V1.7]] - V1.7 - Pot Calibration - ZP??&lt;br /&gt;
* [[CanServo/Protocol/V1.8]] - V1.8 - zs? - Address 256이상인 Stream 설정 및 Stream 전용 Message (2026_02_06)&lt;br /&gt;
* [[CanServo/Protocol/V1.9]] - V1.9 - ZZ??, PZ 읽기, (2026_02_06)&lt;br /&gt;
* [[CanServo/Protocol/V2.1]] - V2.1 - Zb??, Write / Read N register's bit(s) by ID or UID&lt;br /&gt;
* [[CanServo/Protocol/V2.2]] - V2.2 - ZkW?, ZkR?, ZkX?, ZkV?&lt;br /&gt;
** Write/Read N register(s) with N1&lt;br /&gt;
&lt;br /&gt;
== Message Types ==&lt;br /&gt;
&lt;br /&gt;
* Tail Byte 유무에 따라 S-Message/T-Message(OLD Short Message / Long Message)로 나눕니다.&lt;br /&gt;
** [[CanServo/Protocol/S-Message]] - Single Packet ( without Tail byte )&lt;br /&gt;
** [[CanServo/Protocol/T-Message]] - Single/Multi Packet with Tail byte&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! CAN ID&lt;br /&gt;
! [[CanServo/Protocol/S-Message | S-Message]]&lt;br /&gt;
! [[CanServo/Protocol/T-Message | T-Message]]&lt;br /&gt;
|-&lt;br /&gt;
! Host -&amp;gt; Servo&lt;br /&gt;
| 0(Broadcast) or ID2&lt;br /&gt;
| 0x7FE, ID2+4&lt;br /&gt;
|-&lt;br /&gt;
! Servo -&amp;gt; Host&lt;br /&gt;
| ID2 or ID2+1&lt;br /&gt;
| 0x7FF, ID2+5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* CAN-FD 도입에 따른 S-Message/T-Message 운영 방침&lt;br /&gt;
** 아래 2026_02_11 기록 확인 요망&lt;br /&gt;
&lt;br /&gt;
* RR 정의 (2026_01_14)&lt;br /&gt;
** 이 날짜 이전 버전은 +2, +3 가 되며, Return + 1 (실제로는 bit OR 1) option을 설정하면 꼬이므로, 다음과 같이 변경함.&lt;br /&gt;
** ID2 + 2 = RR MCU 1 Access&lt;br /&gt;
** ID2 + 3 = RR MCU 1 Return + 1 option&lt;br /&gt;
** ID2 + 6 = RR MCU 2 Access&lt;br /&gt;
** ID2 + 7 = RR MCU 2 Return + 1 option&lt;br /&gt;
&lt;br /&gt;
* NOTE: ID2 must aligned by 8.&lt;br /&gt;
&lt;br /&gt;
== Target ID ==&lt;br /&gt;
&lt;br /&gt;
* Target Servo ID만 존재하고, ID2 정보가 없는 메시지(V1.0, V1.2, V1.5 등)&lt;br /&gt;
** CAN ID = 0 혹은 0x7FE 를 통해 전달하면 ID1 만 확인됩니다.&lt;br /&gt;
** ID2 구분이 필요하면, ID2, ID2+4 를 통해서 전달해야 합니다.&lt;br /&gt;
** 서보는, ID2 구분이 되도록, ID2(혹은 ID2+1), ID2+5를 통해 반환합니다.&lt;br /&gt;
&lt;br /&gt;
== Section / platform ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Section&lt;br /&gt;
! Short&lt;br /&gt;
! Long&lt;br /&gt;
! ST&lt;br /&gt;
! AT&lt;br /&gt;
! G491&lt;br /&gt;
! RR&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.1&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.2&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.3&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
| 2.3(3)&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.4&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
| 2.3(3)&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.5&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.6&lt;br /&gt;
| -&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
3.0(2) 260514&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.7&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.8&lt;br /&gt;
| -&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
3.0(2) 260514&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
3.0(2) 260514&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ID2+4/5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* DATE: 2024_11_25, G491 R1CAN&lt;br /&gt;
&lt;br /&gt;
== Message Return Rule ==&lt;br /&gt;
&lt;br /&gt;
NOTE: 우선 순위 높은 규칙부터 나열합니다.&lt;br /&gt;
&lt;br /&gt;
* CAN Data Type (CAN, FD, BRS) 유지&lt;br /&gt;
* ID2 구분이 필요한 메시지 (메시지 내용에 ID2 가 없는 경우)&lt;br /&gt;
** V1.0, V1.2: ID2 ( 또는 설정에 따라 ID2 + 1 )&lt;br /&gt;
** V1.5: ID2 + 5&lt;br /&gt;
** V2.2: ID2 + 5&lt;br /&gt;
* T-Message: T-Message 로 반환&lt;br /&gt;
** ID2+4 수신시, ID2+5 반환&lt;br /&gt;
** 0x7FE 수신시, 0x7FF 반환&lt;br /&gt;
* (여기까지오면, 0 또는 ID2 인 S-Message)&lt;br /&gt;
** CAN 수신시&lt;br /&gt;
*** 반환 메시지 (유동적일 때는 최대) 길이가 8바이트 초과인 경우에는 ID2+5 T-Message 반환&lt;br /&gt;
*** ID2 또는 ID2+1, S-Message 반환&lt;br /&gt;
** FD 또는 FD/BRS 수신시&lt;br /&gt;
*** 반환 메시지 (유동적일 때는 최대) 길이가 63바이트 초과인 경우에는 ID2+5 T-Message 반환&lt;br /&gt;
*** ID2 또는 ID2+1, S-Message 반환&lt;br /&gt;
&lt;br /&gt;
== Protocol Recv CAN ID Rule ==&lt;br /&gt;
&lt;br /&gt;
* 조사&lt;br /&gt;
** V1.0 - 8 byte 이하 고정 길이, ID1만 있음, CAN ID = Short&lt;br /&gt;
*** return CAN ID = ID2 또는 ID2 + 1&lt;br /&gt;
** V1.1 - 63 byte 이하 고정 길이, UID 또는 ID2/ID1 포함, CAN ID = Long&lt;br /&gt;
*** 0x7Fx, ID2+5 가능?&lt;br /&gt;
** V1.2 - V1.0 과 같음&lt;br /&gt;
*** return CAN ID = ID2 또는 ID2 + 1&lt;br /&gt;
** V1.3 - 63 byte 이하 고정 길이(일부 유동), UID 또는 ID2/ID1 포함, CAN ID = Long&lt;br /&gt;
*** 0x7Fx, ID2+5 가능?&lt;br /&gt;
** V1.4 - sync, ID 없음, 모든 CAN ID  가능, CAN ID = Any&lt;br /&gt;
** V1.5 - 8 byte 초과 유동적 길이, ID1만 있음, CAN ID = Long&lt;br /&gt;
*** 0x7Fx 가능, return CAN ID = ID2 + 5 권장&lt;br /&gt;
** V1.6 - Long, ID2/ID1 포함, CAN ID = Long&lt;br /&gt;
** V1.7 - 다양한 길이의 고정 길이, ID2/ID1 포함, 모든 CAN ID 가능, CAN ID = Long&lt;br /&gt;
** V1.8 - 안씀?&lt;br /&gt;
** V1.9 - Long, ID2/ID1 포함, 모든 CAN ID 가능, CAN ID = Long&lt;br /&gt;
&lt;br /&gt;
* 결론&lt;br /&gt;
** Short = V1.0, V1.2&lt;br /&gt;
** Any = V1.4&lt;br /&gt;
** Long = 이외&lt;br /&gt;
&lt;br /&gt;
== CAN-FD ==&lt;br /&gt;
&lt;br /&gt;
* [[CanServo/Protocol/CAN-FD]]&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
=== 2026_04_09 ===&lt;br /&gt;
&lt;br /&gt;
* V1.9&lt;br /&gt;
** N1 적용, ID2 추가&lt;br /&gt;
** R1CAN 적용&lt;br /&gt;
* V2.1&lt;br /&gt;
** N1 적용&lt;br /&gt;
** R1CAN 적용&lt;br /&gt;
* V2.2 (신규)&lt;br /&gt;
** N1 적용&lt;br /&gt;
* V1.5 (폐기)&lt;br /&gt;
** V2.2 로 대치&lt;br /&gt;
** 주의: N1 없이, R2CAN에 적용된 상태임.&lt;br /&gt;
&lt;br /&gt;
=== 2026_03_16 ===&lt;br /&gt;
&lt;br /&gt;
* Short/Long Message 명칭 변경&lt;br /&gt;
** Short Message -&amp;gt; S-Message ( message in Single packet )&lt;br /&gt;
** Long Message -&amp;gt; T-Message ( message with Tail byte )&lt;br /&gt;
&lt;br /&gt;
=== 2026_03_05 ===&lt;br /&gt;
&lt;br /&gt;
* V1.5 메시지는, (0x7FE, ID2+4) 수신 CAN ID에 상관없이 , 무조건 ID2+5 로 반환&lt;br /&gt;
&lt;br /&gt;
=== 2026_02_11 ===&lt;br /&gt;
&lt;br /&gt;
* CAN-FD 도입에 따른 Short / Long Message 운영 방침 정리&lt;br /&gt;
** CAN-FD 기능이 도입되면서, 어느 정도 긴 문장도 1개 패킷으로 가능하게 되었습니다.&lt;br /&gt;
** 예: ZKV2 메시지가 CAN-FD 1개 packet으로 가능&lt;br /&gt;
** 이때 테스트 자동화 과정에서, 모든 경우의 수를 수행하면서, Long Message를 Short Message CAN ID에 전송하여서 문제가 발생함.&lt;br /&gt;
*** 예를 들어, p로 시작하는 패킷이 전달되면 이상 동작을 함.&lt;br /&gt;
*** 발신 UI가 잘못한 것.&lt;br /&gt;
** 이런 일이 생기지 않도록 아예 분리합니다.&lt;br /&gt;
** Long Message 로 보내면 TAIL BYTE 때문에 1바이트 늘어나게 되는데 이는 큰 문제는 아니므로, 고정 적으로 할당합니다.&lt;br /&gt;
** 즉, CAN에서 Short / Long Message로 정의되었던 내용은, CAN-FD에서도 그대로 Short / Long Message로 사용합니다.&lt;br /&gt;
** DroneCAN에서의 우리 프로토콜 사용 방침&lt;br /&gt;
*** Long Message만 사용합니다.&lt;br /&gt;
**** Short Message로만 가능한 V1.0, V1.2 사용 불가&lt;br /&gt;
*** ID2 = 0 ~ 127&lt;br /&gt;
*** DroneCAN 통신 방해를 하지 않기 위해, CAN 2.0A 로 작동합니다.&lt;br /&gt;
&lt;br /&gt;
=== 2026_01_14 ===&lt;br /&gt;
&lt;br /&gt;
* SR33 RR MCU 1/2 Access 기준 변경&lt;br /&gt;
** 변경전: ID2 + 2, ID2 + 3&lt;br /&gt;
** 변경후: ID2 + 2, ID2 + 6&lt;br /&gt;
** 사유: Return +1 option을 설정하면, 실제로는 OR 1 이기 때문에, +3, +3 으로 꼬임&lt;br /&gt;
*** 만일 +1 이라고 해도, +3, +4 가 되어, Long Message와 꼬임.&lt;br /&gt;
&lt;br /&gt;
=== 2025_06_19 ===&lt;br /&gt;
&lt;br /&gt;
* (6) Return message has bug&lt;br /&gt;
** (4) Replace message keyword&lt;br /&gt;
*** ZRUU: ZSUU, ZXUU, ZGUU -&amp;gt; ZRuu, ZSuu, ZXuu, ZGuu&lt;br /&gt;
*** ZRID: ZSID, ZXID, ZGID -&amp;gt; ZRid, ZSid, ZXid, ZGid&lt;br /&gt;
*** ZUV1: ZUW1, ZUX1, ZUR1 -&amp;gt; ZUv1, ZUw1, ZUx1, ZUr1&lt;br /&gt;
*** ZUV2: ZUW2, ZUX2, ZUR2 -&amp;gt; ZUv2, ZUw2, ZUx2, ZUr2&lt;br /&gt;
*** 과거 FW가 반응하지 않도록 메시지의 키워드를 변경합니다.&lt;br /&gt;
*** [[CanServo/Protocol/V1.1#2025_06_19]]&lt;br /&gt;
*** [[CanServo/Protocol/V1.3#2025_06_19]]&lt;br /&gt;
** (2) No replace:&lt;br /&gt;
*** ZMSG -&amp;gt; 전송 코드 수정으로 해결&lt;br /&gt;
*** ZGFL -&amp;gt;  조심해서 사용&lt;br /&gt;
&lt;br /&gt;
=== 2025_03 ===&lt;br /&gt;
* V1.6 추가&lt;br /&gt;
&lt;br /&gt;
=== 2025_02 ===&lt;br /&gt;
** CAN-FD 추가&lt;br /&gt;
** Short Mesasge 추가&lt;br /&gt;
** V1.5 추가&lt;br /&gt;
** ID2+X 추가&lt;br /&gt;
&lt;br /&gt;
=== 2024_11 ===&lt;br /&gt;
** R1CAN 추가&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/0&amp;diff=1996</id>
		<title>CanServo/Protocol/0</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/0&amp;diff=1996"/>
		<updated>2026-05-21T02:02:06Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* Section / platform */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Protocol Sections ==&lt;br /&gt;
* [[SERVO/PROTOCOL/CAN/V1.0/ENG]] - V1.0 - w/W, r/R, x/X, v/V&lt;br /&gt;
** Write/Read 1 or 2 register&lt;br /&gt;
* Prohibited keywords ( 금지 키워드 )&lt;br /&gt;
** ZRU1, ZRU2&lt;br /&gt;
* [[CanServo/Protocol/V1.1]] - V1.1 - ZUID, ZIDS, ZG??, ZR??, ZS??, ZX??, FILE(ZGFL, ZSDF, ZFWU), ZMSG&lt;br /&gt;
** Simple Broadcast UID and Set IDs(ID1,ID2) via UID - ZUID, ZIDS&lt;br /&gt;
** Write/Read register's bits by ID or UID&lt;br /&gt;
** FILE Access&lt;br /&gt;
** Message: ZMSG&lt;br /&gt;
* [[CanServo/Protocol/V1.2]] - V1.2 - p/P, g/G, o/O, y/Y&lt;br /&gt;
** Write/Read 1 or 2 register with 2 byte address in 1 packet&lt;br /&gt;
*** address = max 1024 range (0~1023)&lt;br /&gt;
* [[CanServo/Protocol/V1.3]] - V1.3 - ZU??(Except ZUID), K&lt;br /&gt;
** Write/Read 1 or 2 register via UID&lt;br /&gt;
** Broadcast UID&lt;br /&gt;
** UID search&lt;br /&gt;
* [[CanServo/Protocol/V1.4]] - V1.4 - sync&lt;br /&gt;
* [[CanServo/Protocol/V1.5]] - V1.5 - ZKW?, ZKR?, ZKX?, ZKV?&lt;br /&gt;
** 260409 - 폐기, V2.2 로 대치&lt;br /&gt;
** Write/Read N register(s)&lt;br /&gt;
* [[CanServo/Protocol/V1.6]] - V1.6 - Zc??, Zr??&lt;br /&gt;
** Custom CAN / CAN-FD&lt;br /&gt;
* [[CanServo/Protocol/V1.7]] - V1.7 - Pot Calibration - ZP??&lt;br /&gt;
* [[CanServo/Protocol/V1.8]] - V1.8 - zs? - Address 256이상인 Stream 설정 및 Stream 전용 Message (2026_02_06)&lt;br /&gt;
* [[CanServo/Protocol/V1.9]] - V1.9 - ZZ??, PZ 읽기, (2026_02_06)&lt;br /&gt;
* [[CanServo/Protocol/V2.1]] - V2.1 - Zb??, Write / Read N register's bit(s) by ID or UID&lt;br /&gt;
* [[CanServo/Protocol/V2.2]] - V2.2 - ZkW?, ZkR?, ZkX?, ZkV?&lt;br /&gt;
** Write/Read N register(s) with N1&lt;br /&gt;
&lt;br /&gt;
== Message Types ==&lt;br /&gt;
&lt;br /&gt;
* Tail Byte 유무에 따라 S-Message/T-Message(OLD Short Message / Long Message)로 나눕니다.&lt;br /&gt;
** [[CanServo/Protocol/S-Message]] - Single Packet ( without Tail byte )&lt;br /&gt;
** [[CanServo/Protocol/T-Message]] - Single/Multi Packet with Tail byte&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! CAN ID&lt;br /&gt;
! [[CanServo/Protocol/S-Message | S-Message]]&lt;br /&gt;
! [[CanServo/Protocol/T-Message | T-Message]]&lt;br /&gt;
|-&lt;br /&gt;
! Host -&amp;gt; Servo&lt;br /&gt;
| 0(Broadcast) or ID2&lt;br /&gt;
| 0x7FE, ID2+4&lt;br /&gt;
|-&lt;br /&gt;
! Servo -&amp;gt; Host&lt;br /&gt;
| ID2 or ID2+1&lt;br /&gt;
| 0x7FF, ID2+5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* CAN-FD 도입에 따른 S-Message/T-Message 운영 방침&lt;br /&gt;
** 아래 2026_02_11 기록 확인 요망&lt;br /&gt;
&lt;br /&gt;
* RR 정의 (2026_01_14)&lt;br /&gt;
** 이 날짜 이전 버전은 +2, +3 가 되며, Return + 1 (실제로는 bit OR 1) option을 설정하면 꼬이므로, 다음과 같이 변경함.&lt;br /&gt;
** ID2 + 2 = RR MCU 1 Access&lt;br /&gt;
** ID2 + 3 = RR MCU 1 Return + 1 option&lt;br /&gt;
** ID2 + 6 = RR MCU 2 Access&lt;br /&gt;
** ID2 + 7 = RR MCU 2 Return + 1 option&lt;br /&gt;
&lt;br /&gt;
* NOTE: ID2 must aligned by 8.&lt;br /&gt;
&lt;br /&gt;
== Target ID ==&lt;br /&gt;
&lt;br /&gt;
* Target Servo ID만 존재하고, ID2 정보가 없는 메시지(V1.0, V1.2, V1.5 등)&lt;br /&gt;
** CAN ID = 0 혹은 0x7FE 를 통해 전달하면 ID1 만 확인됩니다.&lt;br /&gt;
** ID2 구분이 필요하면, ID2, ID2+4 를 통해서 전달해야 합니다.&lt;br /&gt;
** 서보는, ID2 구분이 되도록, ID2(혹은 ID2+1), ID2+5를 통해 반환합니다.&lt;br /&gt;
&lt;br /&gt;
== Section / platform ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Section&lt;br /&gt;
! Short&lt;br /&gt;
! Long&lt;br /&gt;
! ST&lt;br /&gt;
! AT&lt;br /&gt;
! G491&lt;br /&gt;
! RR&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.1&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.2&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.3&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
| 2.3(3)&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.4&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
| 2.3(3)&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.5&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.6&lt;br /&gt;
| -&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
3.0(2) 260514&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.7&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.8&lt;br /&gt;
| -&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
3.0(2) 260514&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ID2+4/5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* DATE: 2024_11_25, G491 R1CAN&lt;br /&gt;
&lt;br /&gt;
== Message Return Rule ==&lt;br /&gt;
&lt;br /&gt;
NOTE: 우선 순위 높은 규칙부터 나열합니다.&lt;br /&gt;
&lt;br /&gt;
* CAN Data Type (CAN, FD, BRS) 유지&lt;br /&gt;
* ID2 구분이 필요한 메시지 (메시지 내용에 ID2 가 없는 경우)&lt;br /&gt;
** V1.0, V1.2: ID2 ( 또는 설정에 따라 ID2 + 1 )&lt;br /&gt;
** V1.5: ID2 + 5&lt;br /&gt;
** V2.2: ID2 + 5&lt;br /&gt;
* T-Message: T-Message 로 반환&lt;br /&gt;
** ID2+4 수신시, ID2+5 반환&lt;br /&gt;
** 0x7FE 수신시, 0x7FF 반환&lt;br /&gt;
* (여기까지오면, 0 또는 ID2 인 S-Message)&lt;br /&gt;
** CAN 수신시&lt;br /&gt;
*** 반환 메시지 (유동적일 때는 최대) 길이가 8바이트 초과인 경우에는 ID2+5 T-Message 반환&lt;br /&gt;
*** ID2 또는 ID2+1, S-Message 반환&lt;br /&gt;
** FD 또는 FD/BRS 수신시&lt;br /&gt;
*** 반환 메시지 (유동적일 때는 최대) 길이가 63바이트 초과인 경우에는 ID2+5 T-Message 반환&lt;br /&gt;
*** ID2 또는 ID2+1, S-Message 반환&lt;br /&gt;
&lt;br /&gt;
== Protocol Recv CAN ID Rule ==&lt;br /&gt;
&lt;br /&gt;
* 조사&lt;br /&gt;
** V1.0 - 8 byte 이하 고정 길이, ID1만 있음, CAN ID = Short&lt;br /&gt;
*** return CAN ID = ID2 또는 ID2 + 1&lt;br /&gt;
** V1.1 - 63 byte 이하 고정 길이, UID 또는 ID2/ID1 포함, CAN ID = Long&lt;br /&gt;
*** 0x7Fx, ID2+5 가능?&lt;br /&gt;
** V1.2 - V1.0 과 같음&lt;br /&gt;
*** return CAN ID = ID2 또는 ID2 + 1&lt;br /&gt;
** V1.3 - 63 byte 이하 고정 길이(일부 유동), UID 또는 ID2/ID1 포함, CAN ID = Long&lt;br /&gt;
*** 0x7Fx, ID2+5 가능?&lt;br /&gt;
** V1.4 - sync, ID 없음, 모든 CAN ID  가능, CAN ID = Any&lt;br /&gt;
** V1.5 - 8 byte 초과 유동적 길이, ID1만 있음, CAN ID = Long&lt;br /&gt;
*** 0x7Fx 가능, return CAN ID = ID2 + 5 권장&lt;br /&gt;
** V1.6 - Long, ID2/ID1 포함, CAN ID = Long&lt;br /&gt;
** V1.7 - 다양한 길이의 고정 길이, ID2/ID1 포함, 모든 CAN ID 가능, CAN ID = Long&lt;br /&gt;
** V1.8 - 안씀?&lt;br /&gt;
** V1.9 - Long, ID2/ID1 포함, 모든 CAN ID 가능, CAN ID = Long&lt;br /&gt;
&lt;br /&gt;
* 결론&lt;br /&gt;
** Short = V1.0, V1.2&lt;br /&gt;
** Any = V1.4&lt;br /&gt;
** Long = 이외&lt;br /&gt;
&lt;br /&gt;
== CAN-FD ==&lt;br /&gt;
&lt;br /&gt;
* [[CanServo/Protocol/CAN-FD]]&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
=== 2026_04_09 ===&lt;br /&gt;
&lt;br /&gt;
* V1.9&lt;br /&gt;
** N1 적용, ID2 추가&lt;br /&gt;
** R1CAN 적용&lt;br /&gt;
* V2.1&lt;br /&gt;
** N1 적용&lt;br /&gt;
** R1CAN 적용&lt;br /&gt;
* V2.2 (신규)&lt;br /&gt;
** N1 적용&lt;br /&gt;
* V1.5 (폐기)&lt;br /&gt;
** V2.2 로 대치&lt;br /&gt;
** 주의: N1 없이, R2CAN에 적용된 상태임.&lt;br /&gt;
&lt;br /&gt;
=== 2026_03_16 ===&lt;br /&gt;
&lt;br /&gt;
* Short/Long Message 명칭 변경&lt;br /&gt;
** Short Message -&amp;gt; S-Message ( message in Single packet )&lt;br /&gt;
** Long Message -&amp;gt; T-Message ( message with Tail byte )&lt;br /&gt;
&lt;br /&gt;
=== 2026_03_05 ===&lt;br /&gt;
&lt;br /&gt;
* V1.5 메시지는, (0x7FE, ID2+4) 수신 CAN ID에 상관없이 , 무조건 ID2+5 로 반환&lt;br /&gt;
&lt;br /&gt;
=== 2026_02_11 ===&lt;br /&gt;
&lt;br /&gt;
* CAN-FD 도입에 따른 Short / Long Message 운영 방침 정리&lt;br /&gt;
** CAN-FD 기능이 도입되면서, 어느 정도 긴 문장도 1개 패킷으로 가능하게 되었습니다.&lt;br /&gt;
** 예: ZKV2 메시지가 CAN-FD 1개 packet으로 가능&lt;br /&gt;
** 이때 테스트 자동화 과정에서, 모든 경우의 수를 수행하면서, Long Message를 Short Message CAN ID에 전송하여서 문제가 발생함.&lt;br /&gt;
*** 예를 들어, p로 시작하는 패킷이 전달되면 이상 동작을 함.&lt;br /&gt;
*** 발신 UI가 잘못한 것.&lt;br /&gt;
** 이런 일이 생기지 않도록 아예 분리합니다.&lt;br /&gt;
** Long Message 로 보내면 TAIL BYTE 때문에 1바이트 늘어나게 되는데 이는 큰 문제는 아니므로, 고정 적으로 할당합니다.&lt;br /&gt;
** 즉, CAN에서 Short / Long Message로 정의되었던 내용은, CAN-FD에서도 그대로 Short / Long Message로 사용합니다.&lt;br /&gt;
** DroneCAN에서의 우리 프로토콜 사용 방침&lt;br /&gt;
*** Long Message만 사용합니다.&lt;br /&gt;
**** Short Message로만 가능한 V1.0, V1.2 사용 불가&lt;br /&gt;
*** ID2 = 0 ~ 127&lt;br /&gt;
*** DroneCAN 통신 방해를 하지 않기 위해, CAN 2.0A 로 작동합니다.&lt;br /&gt;
&lt;br /&gt;
=== 2026_01_14 ===&lt;br /&gt;
&lt;br /&gt;
* SR33 RR MCU 1/2 Access 기준 변경&lt;br /&gt;
** 변경전: ID2 + 2, ID2 + 3&lt;br /&gt;
** 변경후: ID2 + 2, ID2 + 6&lt;br /&gt;
** 사유: Return +1 option을 설정하면, 실제로는 OR 1 이기 때문에, +3, +3 으로 꼬임&lt;br /&gt;
*** 만일 +1 이라고 해도, +3, +4 가 되어, Long Message와 꼬임.&lt;br /&gt;
&lt;br /&gt;
=== 2025_06_19 ===&lt;br /&gt;
&lt;br /&gt;
* (6) Return message has bug&lt;br /&gt;
** (4) Replace message keyword&lt;br /&gt;
*** ZRUU: ZSUU, ZXUU, ZGUU -&amp;gt; ZRuu, ZSuu, ZXuu, ZGuu&lt;br /&gt;
*** ZRID: ZSID, ZXID, ZGID -&amp;gt; ZRid, ZSid, ZXid, ZGid&lt;br /&gt;
*** ZUV1: ZUW1, ZUX1, ZUR1 -&amp;gt; ZUv1, ZUw1, ZUx1, ZUr1&lt;br /&gt;
*** ZUV2: ZUW2, ZUX2, ZUR2 -&amp;gt; ZUv2, ZUw2, ZUx2, ZUr2&lt;br /&gt;
*** 과거 FW가 반응하지 않도록 메시지의 키워드를 변경합니다.&lt;br /&gt;
*** [[CanServo/Protocol/V1.1#2025_06_19]]&lt;br /&gt;
*** [[CanServo/Protocol/V1.3#2025_06_19]]&lt;br /&gt;
** (2) No replace:&lt;br /&gt;
*** ZMSG -&amp;gt; 전송 코드 수정으로 해결&lt;br /&gt;
*** ZGFL -&amp;gt;  조심해서 사용&lt;br /&gt;
&lt;br /&gt;
=== 2025_03 ===&lt;br /&gt;
* V1.6 추가&lt;br /&gt;
&lt;br /&gt;
=== 2025_02 ===&lt;br /&gt;
** CAN-FD 추가&lt;br /&gt;
** Short Mesasge 추가&lt;br /&gt;
** V1.5 추가&lt;br /&gt;
** ID2+X 추가&lt;br /&gt;
&lt;br /&gt;
=== 2024_11 ===&lt;br /&gt;
** R1CAN 추가&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/0&amp;diff=1995</id>
		<title>CanServo/Protocol/0</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/0&amp;diff=1995"/>
		<updated>2026-05-21T02:01:38Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* Section / platform */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Protocol Sections ==&lt;br /&gt;
* [[SERVO/PROTOCOL/CAN/V1.0/ENG]] - V1.0 - w/W, r/R, x/X, v/V&lt;br /&gt;
** Write/Read 1 or 2 register&lt;br /&gt;
* Prohibited keywords ( 금지 키워드 )&lt;br /&gt;
** ZRU1, ZRU2&lt;br /&gt;
* [[CanServo/Protocol/V1.1]] - V1.1 - ZUID, ZIDS, ZG??, ZR??, ZS??, ZX??, FILE(ZGFL, ZSDF, ZFWU), ZMSG&lt;br /&gt;
** Simple Broadcast UID and Set IDs(ID1,ID2) via UID - ZUID, ZIDS&lt;br /&gt;
** Write/Read register's bits by ID or UID&lt;br /&gt;
** FILE Access&lt;br /&gt;
** Message: ZMSG&lt;br /&gt;
* [[CanServo/Protocol/V1.2]] - V1.2 - p/P, g/G, o/O, y/Y&lt;br /&gt;
** Write/Read 1 or 2 register with 2 byte address in 1 packet&lt;br /&gt;
*** address = max 1024 range (0~1023)&lt;br /&gt;
* [[CanServo/Protocol/V1.3]] - V1.3 - ZU??(Except ZUID), K&lt;br /&gt;
** Write/Read 1 or 2 register via UID&lt;br /&gt;
** Broadcast UID&lt;br /&gt;
** UID search&lt;br /&gt;
* [[CanServo/Protocol/V1.4]] - V1.4 - sync&lt;br /&gt;
* [[CanServo/Protocol/V1.5]] - V1.5 - ZKW?, ZKR?, ZKX?, ZKV?&lt;br /&gt;
** 260409 - 폐기, V2.2 로 대치&lt;br /&gt;
** Write/Read N register(s)&lt;br /&gt;
* [[CanServo/Protocol/V1.6]] - V1.6 - Zc??, Zr??&lt;br /&gt;
** Custom CAN / CAN-FD&lt;br /&gt;
* [[CanServo/Protocol/V1.7]] - V1.7 - Pot Calibration - ZP??&lt;br /&gt;
* [[CanServo/Protocol/V1.8]] - V1.8 - zs? - Address 256이상인 Stream 설정 및 Stream 전용 Message (2026_02_06)&lt;br /&gt;
* [[CanServo/Protocol/V1.9]] - V1.9 - ZZ??, PZ 읽기, (2026_02_06)&lt;br /&gt;
* [[CanServo/Protocol/V2.1]] - V2.1 - Zb??, Write / Read N register's bit(s) by ID or UID&lt;br /&gt;
* [[CanServo/Protocol/V2.2]] - V2.2 - ZkW?, ZkR?, ZkX?, ZkV?&lt;br /&gt;
** Write/Read N register(s) with N1&lt;br /&gt;
&lt;br /&gt;
== Message Types ==&lt;br /&gt;
&lt;br /&gt;
* Tail Byte 유무에 따라 S-Message/T-Message(OLD Short Message / Long Message)로 나눕니다.&lt;br /&gt;
** [[CanServo/Protocol/S-Message]] - Single Packet ( without Tail byte )&lt;br /&gt;
** [[CanServo/Protocol/T-Message]] - Single/Multi Packet with Tail byte&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! CAN ID&lt;br /&gt;
! [[CanServo/Protocol/S-Message | S-Message]]&lt;br /&gt;
! [[CanServo/Protocol/T-Message | T-Message]]&lt;br /&gt;
|-&lt;br /&gt;
! Host -&amp;gt; Servo&lt;br /&gt;
| 0(Broadcast) or ID2&lt;br /&gt;
| 0x7FE, ID2+4&lt;br /&gt;
|-&lt;br /&gt;
! Servo -&amp;gt; Host&lt;br /&gt;
| ID2 or ID2+1&lt;br /&gt;
| 0x7FF, ID2+5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* CAN-FD 도입에 따른 S-Message/T-Message 운영 방침&lt;br /&gt;
** 아래 2026_02_11 기록 확인 요망&lt;br /&gt;
&lt;br /&gt;
* RR 정의 (2026_01_14)&lt;br /&gt;
** 이 날짜 이전 버전은 +2, +3 가 되며, Return + 1 (실제로는 bit OR 1) option을 설정하면 꼬이므로, 다음과 같이 변경함.&lt;br /&gt;
** ID2 + 2 = RR MCU 1 Access&lt;br /&gt;
** ID2 + 3 = RR MCU 1 Return + 1 option&lt;br /&gt;
** ID2 + 6 = RR MCU 2 Access&lt;br /&gt;
** ID2 + 7 = RR MCU 2 Return + 1 option&lt;br /&gt;
&lt;br /&gt;
* NOTE: ID2 must aligned by 8.&lt;br /&gt;
&lt;br /&gt;
== Target ID ==&lt;br /&gt;
&lt;br /&gt;
* Target Servo ID만 존재하고, ID2 정보가 없는 메시지(V1.0, V1.2, V1.5 등)&lt;br /&gt;
** CAN ID = 0 혹은 0x7FE 를 통해 전달하면 ID1 만 확인됩니다.&lt;br /&gt;
** ID2 구분이 필요하면, ID2, ID2+4 를 통해서 전달해야 합니다.&lt;br /&gt;
** 서보는, ID2 구분이 되도록, ID2(혹은 ID2+1), ID2+5를 통해 반환합니다.&lt;br /&gt;
&lt;br /&gt;
== Section / platform ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Section&lt;br /&gt;
! Short&lt;br /&gt;
! Long&lt;br /&gt;
! ST&lt;br /&gt;
! AT&lt;br /&gt;
! G491&lt;br /&gt;
! RR&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.1&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.2&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.3&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
| 2.3(3)&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.4&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
| 2.3(3)&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.5&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.6&lt;br /&gt;
| -&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
3.0(2) 260514&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.7&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.8&lt;br /&gt;
| -&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ID2+4/5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* DATE: 2024_11_25, G491 R1CAN&lt;br /&gt;
&lt;br /&gt;
== Message Return Rule ==&lt;br /&gt;
&lt;br /&gt;
NOTE: 우선 순위 높은 규칙부터 나열합니다.&lt;br /&gt;
&lt;br /&gt;
* CAN Data Type (CAN, FD, BRS) 유지&lt;br /&gt;
* ID2 구분이 필요한 메시지 (메시지 내용에 ID2 가 없는 경우)&lt;br /&gt;
** V1.0, V1.2: ID2 ( 또는 설정에 따라 ID2 + 1 )&lt;br /&gt;
** V1.5: ID2 + 5&lt;br /&gt;
** V2.2: ID2 + 5&lt;br /&gt;
* T-Message: T-Message 로 반환&lt;br /&gt;
** ID2+4 수신시, ID2+5 반환&lt;br /&gt;
** 0x7FE 수신시, 0x7FF 반환&lt;br /&gt;
* (여기까지오면, 0 또는 ID2 인 S-Message)&lt;br /&gt;
** CAN 수신시&lt;br /&gt;
*** 반환 메시지 (유동적일 때는 최대) 길이가 8바이트 초과인 경우에는 ID2+5 T-Message 반환&lt;br /&gt;
*** ID2 또는 ID2+1, S-Message 반환&lt;br /&gt;
** FD 또는 FD/BRS 수신시&lt;br /&gt;
*** 반환 메시지 (유동적일 때는 최대) 길이가 63바이트 초과인 경우에는 ID2+5 T-Message 반환&lt;br /&gt;
*** ID2 또는 ID2+1, S-Message 반환&lt;br /&gt;
&lt;br /&gt;
== Protocol Recv CAN ID Rule ==&lt;br /&gt;
&lt;br /&gt;
* 조사&lt;br /&gt;
** V1.0 - 8 byte 이하 고정 길이, ID1만 있음, CAN ID = Short&lt;br /&gt;
*** return CAN ID = ID2 또는 ID2 + 1&lt;br /&gt;
** V1.1 - 63 byte 이하 고정 길이, UID 또는 ID2/ID1 포함, CAN ID = Long&lt;br /&gt;
*** 0x7Fx, ID2+5 가능?&lt;br /&gt;
** V1.2 - V1.0 과 같음&lt;br /&gt;
*** return CAN ID = ID2 또는 ID2 + 1&lt;br /&gt;
** V1.3 - 63 byte 이하 고정 길이(일부 유동), UID 또는 ID2/ID1 포함, CAN ID = Long&lt;br /&gt;
*** 0x7Fx, ID2+5 가능?&lt;br /&gt;
** V1.4 - sync, ID 없음, 모든 CAN ID  가능, CAN ID = Any&lt;br /&gt;
** V1.5 - 8 byte 초과 유동적 길이, ID1만 있음, CAN ID = Long&lt;br /&gt;
*** 0x7Fx 가능, return CAN ID = ID2 + 5 권장&lt;br /&gt;
** V1.6 - Long, ID2/ID1 포함, CAN ID = Long&lt;br /&gt;
** V1.7 - 다양한 길이의 고정 길이, ID2/ID1 포함, 모든 CAN ID 가능, CAN ID = Long&lt;br /&gt;
** V1.8 - 안씀?&lt;br /&gt;
** V1.9 - Long, ID2/ID1 포함, 모든 CAN ID 가능, CAN ID = Long&lt;br /&gt;
&lt;br /&gt;
* 결론&lt;br /&gt;
** Short = V1.0, V1.2&lt;br /&gt;
** Any = V1.4&lt;br /&gt;
** Long = 이외&lt;br /&gt;
&lt;br /&gt;
== CAN-FD ==&lt;br /&gt;
&lt;br /&gt;
* [[CanServo/Protocol/CAN-FD]]&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
=== 2026_04_09 ===&lt;br /&gt;
&lt;br /&gt;
* V1.9&lt;br /&gt;
** N1 적용, ID2 추가&lt;br /&gt;
** R1CAN 적용&lt;br /&gt;
* V2.1&lt;br /&gt;
** N1 적용&lt;br /&gt;
** R1CAN 적용&lt;br /&gt;
* V2.2 (신규)&lt;br /&gt;
** N1 적용&lt;br /&gt;
* V1.5 (폐기)&lt;br /&gt;
** V2.2 로 대치&lt;br /&gt;
** 주의: N1 없이, R2CAN에 적용된 상태임.&lt;br /&gt;
&lt;br /&gt;
=== 2026_03_16 ===&lt;br /&gt;
&lt;br /&gt;
* Short/Long Message 명칭 변경&lt;br /&gt;
** Short Message -&amp;gt; S-Message ( message in Single packet )&lt;br /&gt;
** Long Message -&amp;gt; T-Message ( message with Tail byte )&lt;br /&gt;
&lt;br /&gt;
=== 2026_03_05 ===&lt;br /&gt;
&lt;br /&gt;
* V1.5 메시지는, (0x7FE, ID2+4) 수신 CAN ID에 상관없이 , 무조건 ID2+5 로 반환&lt;br /&gt;
&lt;br /&gt;
=== 2026_02_11 ===&lt;br /&gt;
&lt;br /&gt;
* CAN-FD 도입에 따른 Short / Long Message 운영 방침 정리&lt;br /&gt;
** CAN-FD 기능이 도입되면서, 어느 정도 긴 문장도 1개 패킷으로 가능하게 되었습니다.&lt;br /&gt;
** 예: ZKV2 메시지가 CAN-FD 1개 packet으로 가능&lt;br /&gt;
** 이때 테스트 자동화 과정에서, 모든 경우의 수를 수행하면서, Long Message를 Short Message CAN ID에 전송하여서 문제가 발생함.&lt;br /&gt;
*** 예를 들어, p로 시작하는 패킷이 전달되면 이상 동작을 함.&lt;br /&gt;
*** 발신 UI가 잘못한 것.&lt;br /&gt;
** 이런 일이 생기지 않도록 아예 분리합니다.&lt;br /&gt;
** Long Message 로 보내면 TAIL BYTE 때문에 1바이트 늘어나게 되는데 이는 큰 문제는 아니므로, 고정 적으로 할당합니다.&lt;br /&gt;
** 즉, CAN에서 Short / Long Message로 정의되었던 내용은, CAN-FD에서도 그대로 Short / Long Message로 사용합니다.&lt;br /&gt;
** DroneCAN에서의 우리 프로토콜 사용 방침&lt;br /&gt;
*** Long Message만 사용합니다.&lt;br /&gt;
**** Short Message로만 가능한 V1.0, V1.2 사용 불가&lt;br /&gt;
*** ID2 = 0 ~ 127&lt;br /&gt;
*** DroneCAN 통신 방해를 하지 않기 위해, CAN 2.0A 로 작동합니다.&lt;br /&gt;
&lt;br /&gt;
=== 2026_01_14 ===&lt;br /&gt;
&lt;br /&gt;
* SR33 RR MCU 1/2 Access 기준 변경&lt;br /&gt;
** 변경전: ID2 + 2, ID2 + 3&lt;br /&gt;
** 변경후: ID2 + 2, ID2 + 6&lt;br /&gt;
** 사유: Return +1 option을 설정하면, 실제로는 OR 1 이기 때문에, +3, +3 으로 꼬임&lt;br /&gt;
*** 만일 +1 이라고 해도, +3, +4 가 되어, Long Message와 꼬임.&lt;br /&gt;
&lt;br /&gt;
=== 2025_06_19 ===&lt;br /&gt;
&lt;br /&gt;
* (6) Return message has bug&lt;br /&gt;
** (4) Replace message keyword&lt;br /&gt;
*** ZRUU: ZSUU, ZXUU, ZGUU -&amp;gt; ZRuu, ZSuu, ZXuu, ZGuu&lt;br /&gt;
*** ZRID: ZSID, ZXID, ZGID -&amp;gt; ZRid, ZSid, ZXid, ZGid&lt;br /&gt;
*** ZUV1: ZUW1, ZUX1, ZUR1 -&amp;gt; ZUv1, ZUw1, ZUx1, ZUr1&lt;br /&gt;
*** ZUV2: ZUW2, ZUX2, ZUR2 -&amp;gt; ZUv2, ZUw2, ZUx2, ZUr2&lt;br /&gt;
*** 과거 FW가 반응하지 않도록 메시지의 키워드를 변경합니다.&lt;br /&gt;
*** [[CanServo/Protocol/V1.1#2025_06_19]]&lt;br /&gt;
*** [[CanServo/Protocol/V1.3#2025_06_19]]&lt;br /&gt;
** (2) No replace:&lt;br /&gt;
*** ZMSG -&amp;gt; 전송 코드 수정으로 해결&lt;br /&gt;
*** ZGFL -&amp;gt;  조심해서 사용&lt;br /&gt;
&lt;br /&gt;
=== 2025_03 ===&lt;br /&gt;
* V1.6 추가&lt;br /&gt;
&lt;br /&gt;
=== 2025_02 ===&lt;br /&gt;
** CAN-FD 추가&lt;br /&gt;
** Short Mesasge 추가&lt;br /&gt;
** V1.5 추가&lt;br /&gt;
** ID2+X 추가&lt;br /&gt;
&lt;br /&gt;
=== 2024_11 ===&lt;br /&gt;
** R1CAN 추가&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/FW_Files/en&amp;diff=1994</id>
		<title>CanServo/FW Files/en</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/FW_Files/en&amp;diff=1994"/>
		<updated>2026-05-13T23:45:21Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* Manual */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== NOTE ==&lt;br /&gt;
&lt;br /&gt;
* These files for manual update only.&lt;br /&gt;
* &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;주의: 이곳의 파일이 최신이 아닐수 있으며, 서보에는 다른 FW 나 Param 가 들어가 있을수 있습니다.&amp;lt;/p&amp;gt;&lt;br /&gt;
* &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;NOTE: The file here may not be the latest, and the servo may contain other FW or Param.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Manual ==&lt;br /&gt;
&lt;br /&gt;
=== CAN / DroneCAN Servo Protocol ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Manual/HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_5.pdf HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_5.pdf] - FW Ver 1.4 to 2.3(5) - 260323&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Manual/HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_6.pdf HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_6.pdf] - FW Ver 1.4 to 2.3(5) - 260507&lt;br /&gt;
&lt;br /&gt;
=== CRC16 ===&lt;br /&gt;
* [[Code/CRC16]]&lt;br /&gt;
&lt;br /&gt;
=== SetGet Protocol in DroneCAN ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Manual/2021_03_11-UAVCAN-servo-set,get-register-protocol.txt 2021_03_11-UAVCAN-servo-set,get-register-protocol.txt] - Set,Get Protocol to read/write register in DroneCAN - 210311&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
&lt;br /&gt;
=== AIO (All in one) UI ===&lt;br /&gt;
&lt;br /&gt;
* AIO UI ?&lt;br /&gt;
** &amp;quot;All&amp;quot; is include config, simple test, param list, fw update.&lt;br /&gt;
&lt;br /&gt;
* Versions&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_06_15_01.zip 2023-06-15]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_07_28_01.zip 2023-07-28]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_08_30_01.zip 2023-08-30] - include FW Ver 2.2 functions&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_10_05_01.zip 2023-10-05] - include FW Ver 2.3 functions&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2025_05_14_02-exe.zip 2025-05-14] - Param Window: button: save param to file&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2025_11_13_01-exe.zip 2025-11-13]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2025_11_14_01-exe.zip 2025-11-14] - Retry if read reg operation fails&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2026_01_06_01-exe.zip 2026-01-06] - include FW Ver 2.3(2) functions&lt;br /&gt;
&lt;br /&gt;
* Download file and unzip, run exe&lt;br /&gt;
* DotNet framework 4 needed&lt;br /&gt;
&lt;br /&gt;
* Manual&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/PDF/CAN-UI-2022_07_15.pdf AIO-UI-MANUAL-220715]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/PDF/CAN-UI-Write-Param-CAN-AT-2025_11_13_01.pdf AIO-UI-WRITE-PARAM-MANUAL-251113]&lt;br /&gt;
&lt;br /&gt;
=== Config &amp;amp; Test UI ===&lt;br /&gt;
&lt;br /&gt;
* HITEC-CAN-SERVO-CONFIG-2023_04_11_01.exe&lt;br /&gt;
** http://support.hitecrcd.net:7700/files/UI/HITEC-CAN-SERVO-CONFIG-2023_04_11_01.zip&lt;br /&gt;
* HITEC-CAN-SERVO-CONFIG-2023_09_11_01.exe - added option &amp;quot;Write Message Type&amp;quot;&lt;br /&gt;
** http://support.hitecrcd.net:7700/files/UI/HITEC-CAN-SERVO-CONFIG-2023_09_11_01.zip&lt;br /&gt;
* HITEC-CAN-SERVO-CONFIG-2024_12_18_01.exe - Velocity Target&lt;br /&gt;
** http://support.hitecrcd.net:7700/files/UI/HITEC-CAN-SERVO-CONFIG-2024_12_18_01.zip&lt;br /&gt;
&lt;br /&gt;
* Process&lt;br /&gt;
** Download and Unzip&lt;br /&gt;
** DotNet framework 4 needed&lt;br /&gt;
&lt;br /&gt;
=== App FW Update UI ===&lt;br /&gt;
&lt;br /&gt;
* The product platform can be identified by its firmware version.&lt;br /&gt;
** ST MCU: FW Ver &amp;lt; 1.7&lt;br /&gt;
** AT MCU: FW Ver &amp;gt;= 1.7 and FW Ver &amp;lt; 2.5&lt;br /&gt;
* FW Update&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN_UPDATE_V2-2022_09_14_01.zip CAN_UPDATE_V2-2022_09_14_01.zip]&lt;br /&gt;
** Manual&lt;br /&gt;
*** [http://support.hitecrcd.net:7700/files/PDF/CAN-SERVO-FIRMWARE-UPDATE-PROGRAM-2020_06_23_01.pdf CAN-SERVO-FIRMWARE-UPDATE-PROGRAM-2020_06_23_01.pdf]&lt;br /&gt;
** Note: ST MCU Platform&lt;br /&gt;
*** FW Ver 1.6(4) - (Reg 0x60) Velocity Target - Set this value with Velocity Max (Reg 0x54)&lt;br /&gt;
*** FW Ver 1.6(2) DroneCAN - Under 1.6(2), RUN MODE is ignored, but in 1.6(2), MULTI-TURN is enabled according to RUN MODE, so be sure to check RUN MODE&lt;br /&gt;
*** FW Ver 1.5(2) - After writing the new parameter file, downgrading below this version may result in different behavior.&lt;br /&gt;
*** FW Ver 1.3 - Unit of Velocity Max is posdiff/100msec. The unit is posdiff/msec below this version.&lt;br /&gt;
&lt;br /&gt;
=== DotNet framework 4 ===&lt;br /&gt;
* https://www.microsoft.com/en-us/download/details.aspx?id=24872 - client version&lt;br /&gt;
* https://dotnet.microsoft.com/en-us/download/dotnet-framework/thank-you/net40-web-installer - web installer version&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT MCU Version ==&lt;br /&gt;
&lt;br /&gt;
* AT Version&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.2 ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_23_09_07_01_V4.2.zip App_ATcanServo_20_23_09_07_01_V4.2.zip] - Ver 2.2 /A&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.3 ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_23_10_05_01_V4.3.zip App_ATcanServo_20_23_10_05_01_V4.3.zip] - Ver 2.3 /A&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.3(1) ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_24_01_02_01_V4.3(1).zip App_ATcanServo_20_24_01_02_01_V4.3(1).zip] - Ver 2.3(1) /A&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.3(2) ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_24_07_03_01_V4.3(2)-0.zip App_ATcanServo_20_24_07_03_01_V4.3(2)-0.zip] - Ver 2.3(2) /A&lt;br /&gt;
&lt;br /&gt;
=== NOTE ===&lt;br /&gt;
&lt;br /&gt;
* When downloading, please use a CAN ID other than 0.&lt;br /&gt;
** ex) 0x7F0&lt;br /&gt;
&lt;br /&gt;
=== NOTE ===&lt;br /&gt;
&lt;br /&gt;
* When ID is not set&lt;br /&gt;
** If either Servo ID or Node ID is 0, the servo will periodically send a message with CAN ID = 0x7FF&lt;br /&gt;
&lt;br /&gt;
=== Param Files ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;Do not use param files of ST MCU Version&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FW Ver 2.3(2) ====&lt;br /&gt;
&lt;br /&gt;
* NOTE: When updating FW to version 2.3(2) or later, parameter updates are recommended for the following models.&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Param/PARAM-MD145SW_CAN_AT-2025_11_07_03_Pub.zip PARAM-MD145SW_CAN_AT-2025_11_07_03_Pub.zip]&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Param/PARAM-MD250MW_CAN_AT-2025_08_13_01_Pub.zip PARAM-MD250MW_CAN_AT-2025_08_13_01_Pub.zip]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== ST MCU Version ==&lt;br /&gt;
&lt;br /&gt;
=== UI ===&lt;br /&gt;
&lt;br /&gt;
==== Parameter Writer ====&lt;br /&gt;
&lt;br /&gt;
* V2.1&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN_SERVO_FACTORY_PROGRAM_2020_05_13_01-V2.1.zip CAN_SERVO_FACTORY_PROGRAM_2020_05_13_01-V2.1.zip]&lt;br /&gt;
** Product&lt;br /&gt;
*** MDxxx-CAN/DroneCAN&lt;br /&gt;
*** SG50-CAN/DroneCAN&lt;br /&gt;
*** SG33-CAN/DroneCAN&lt;br /&gt;
&lt;br /&gt;
* V2.2&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN_SERVO_FACTORY_PROGRAM_2020_11_03_01-V2.2.zip CAN_SERVO_FACTORY_PROGRAM_2020_11_03_01-V2.2.zip]&lt;br /&gt;
** Product&lt;br /&gt;
*** SG15-CAN/DroneCAN&lt;br /&gt;
*** SG20-CAN/DroneCAN&lt;br /&gt;
*** MDB961-CAN/DroneCAN&lt;br /&gt;
*** MDB77x-CAN/DroneCAN&lt;br /&gt;
&lt;br /&gt;
* Note: Download zip file and unzip for exe&lt;br /&gt;
&lt;br /&gt;
=== Parameter Files ===&lt;br /&gt;
&lt;br /&gt;
* MD-CAN/DroneCAN - Param Files: (for ST MCU Version: FW Ver &amp;lt; 1.7)&lt;br /&gt;
** MD65MG - [http://support.hitecrcd.net:7700/files/Param/MD65MG-CAN-2021_09_06_01.csv MD65MG-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD70MH - [http://support.hitecrcd.net:7700/files/Param/MD70MH-CAN-2021_09_06_01.csv MD70MH-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD85MG - [http://support.hitecrcd.net:7700/files/Param/MD85MG-CAN-2021_09_28_01.csv MD85MG-CAN-2021_09_28_01.csv]&lt;br /&gt;
** MD89MW - [http://support.hitecrcd.net:7700/files/Param/MD89MW-CAN-2021_09_09_01.csv MD89MW-CAN-2021_09_09_01.csv]&lt;br /&gt;
** MD145SW - [http://support.hitecrcd.net:7700/files/Param/MD145SW-CAN-2021_09_06_01.csv MD145SW-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD245MW - [http://support.hitecrcd.net:7700/files/Param/MD245MW-CAN-2021_09_06_01.csv MD245MW-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD250MW - [http://support.hitecrcd.net:7700/files/Param/MD250MW-CAN-2021_09_06_01.csv MD250MW-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD940MW - [http://support.hitecrcd.net:7700/files/Param/MD940SW-CAN-2021_09_16_01.csv MD940SW-CAN-2021_09_16_01.csv]&lt;br /&gt;
** MD950MW - [http://support.hitecrcd.net:7700/files/Param/MD950TW-CAN-2021_11_28_02.csv MD950TW-CAN-2021_11_28_02.csv]&lt;br /&gt;
** Changed&lt;br /&gt;
*** Default Travel Range: +/- 60 deg&lt;br /&gt;
**** Reg 176 : 16300 -&amp;gt; 10922&lt;br /&gt;
**** Reg 178 : 91 -&amp;gt; 5462&lt;br /&gt;
*** PID Values changed for Ver 1.5(2)+&lt;br /&gt;
&lt;br /&gt;
* SG50-CAN/DroneCAN - Param File: (for ST MCU Version: FW Ver &amp;lt; 1.7)&lt;br /&gt;
** 24V - [http://support.hitecrcd.net:7700/files/Param/PARAM_SG50CAN_2021_11_23_01.csv PARAM_SG50CAN_2021_11_23_01.csv]&lt;br /&gt;
*** Changed&lt;br /&gt;
**** Default Travel Range: +/- 60 deg&lt;br /&gt;
***** Reg 176 : 16300 -&amp;gt; 10922&lt;br /&gt;
***** Reg 178 : 91 -&amp;gt; 5462&lt;br /&gt;
&lt;br /&gt;
* SG33-CAN/DroneCAN - Param File: (for ST MCU Version: FW Ver &amp;lt; 1.7)&lt;br /&gt;
** 12V, Torque Type - [http://support.hitecrcd.net:7700/files/Param/PARAM_SG33CAN_2021_09_07_01.csv PARAM_SG33CAN_2021_09_07_01.csv]&lt;br /&gt;
*** Changed&lt;br /&gt;
**** Default Travel Range: +/- 60 deg&lt;br /&gt;
***** Reg 176 : 16300 -&amp;gt; 10922&lt;br /&gt;
***** Reg 178 : 91 -&amp;gt; 5462&lt;br /&gt;
**** PID Values changed for Ver 1.5(2)&lt;br /&gt;
***** Reg 138 : 3700 -&amp;gt; 3700&lt;br /&gt;
***** Reg 140 : 50 -&amp;gt; 0&lt;br /&gt;
***** Reg 142 : 0 -&amp;gt; 0&lt;br /&gt;
***** Reg 144 : 0 -&amp;gt; 550&lt;br /&gt;
&lt;br /&gt;
* Note:&lt;br /&gt;
** FW Ver 1.5(2) 미만에서 1.5(2) 이상으로 FW 업데이트하고, Param Write 작업을 한 이후에는,&lt;br /&gt;
** FW Ver 1.5(2) 미만으로 되돌리는 경우에는 동작이 이상하게 될 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.5(2) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== MD ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_MD2_B2_CAN_20_21_09_06_01_V_11_05_02.xhy App_MD2_B2_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_MD2_B2_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_MD2_B2_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
==== SG50 ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG50_CAN_20_21_09_06_01_V_11_05_02.xhy App_SG50_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG50_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_SG50_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
==== SG33 ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG33_CAN_20_21_09_06_01_V_11_05_02.xhy App_SG33_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG33_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_SG33_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
==== SG20 / MDB961WP ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG20_CAN_20_21_09_06_01_V_11_05_02.xhy App_SG20_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG20_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_SG20_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(2) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== Caution for DroneCAN ====&lt;br /&gt;
&lt;br /&gt;
* 1.6(2) 미만에서는 RUN MODE 가 무시되었지만, 1.6(2) 에서 RUN MODE 에 따라 MULTI-TURN 이 가능하게 되므로, RUN MODE 를 반드시 확인하기 바랍니다.&lt;br /&gt;
** [http://support.hitecrcd.net:7700/index.php/CanServo/MODE/RUN RUN MODE]&lt;br /&gt;
* Under 1.6(2), RUN MODE is ignored, but in 1.6(2), MULTI-TURN is enabled according to RUN MODE, so be sure to check RUN MODE.&lt;br /&gt;
** [http://support.hitecrcd.net:7700/index.php/CanServo/MODE/RUN/en RUN MODE/en]&lt;br /&gt;
&lt;br /&gt;
==== MD ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_10_11_01_V1.6(2)/App_MD2_B2_CAN_20_22_10_11_01_V_11_06_02.zip App_MD2_B2_CAN_20_22_10_11_01_V_11_06_02.zip] - Ver 1.6(2) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_10_11_01_V1.6(2)/App_MD2_B2_UAVCAN_20_22_10_11_01_V_21_06_02.zip App_MD2_B2_UAVCAN_20_22_10_11_01_V_21_06_02.zip] - Ver 1.6(2) /U&lt;br /&gt;
&lt;br /&gt;
==== SG33 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_12_28_01_V1.6(2)/App_SG33_CAN_20_22_12_28_01_V_11_06_02.zip App_SG33_CAN_20_22_12_28_01_V_11_06_02.zip] - Ver 1.6(2) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_12_28_01_V1.6(2)/App_SG33_UAVCAN_20_22_12_28_01_V_21_06_02.zip App_SG33_UAVCAN_20_22_12_28_01_V_21_06_02.zip] - Ver 1.6(2) /U&lt;br /&gt;
&lt;br /&gt;
==== SG20 / MDB961WP ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_23_03_23_31_V1.6(2)/App_SG20_CAN_20_23_03_23_31_V_11_06_02.zip App_SG20_CAN_20_23_03_23_31_V_11_06_02.zip] - Ver 1.6(2) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_23_03_23_31_V1.6(2)/App_SG20_UAVCAN_20_23_03_23_31_V_21_06_02.zip App_SG20_UAVCAN_20_23_03_23_31_V_21_06_02.zip] - Ver 1.6(2) /U&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(3) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== SG33 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_24_04_02_01_V1.6(3)/App_SG33_CAN_20_24_04_02_01_V_11_06_03.zip App_SG33_CAN_20_24_04_02_01_V_11_06_03.zip] - Ver 1.6(3) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_23_06_09_01_V1.6(3)/App_SG33_UAVCAN_20_23_06_09_01_V_21_06_03.zip App_SG33_UAVCAN_20_23_06_09_01_V_21_06_03.zip] - Ver 1.6(3) /U&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(4) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
* NOTE: Reg 0x60 Velocity Target added. Set this reg with value of Velocity Max (reg 0x54)&lt;br /&gt;
&lt;br /&gt;
==== SG50 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_SG50_CAN,UAVCAN_20_24_11_08_01_V1.6(4).zip App_SG50_CAN,UAVCAN_20_24_11_08_01_V1.6(4).zip] - Ver 1.6(4) /C /U&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(5) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== SG50 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_SG50_CAN,UAVCAN_20_25_08_20_01_V1.6(5).zip App_SG50_CAN,UAVCAN_20_25_08_20_01_V1.6(5).zip] - Ver 1.6(5) /C /U&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1993</id>
		<title>CanServo/Protoco/T2-Message</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1993"/>
		<updated>2026-05-11T08:16:23Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 개요 ==&lt;br /&gt;
&lt;br /&gt;
* 여러 개의 T-Message 가 섞이는 경우, 수신 측에서 분석 실패가 발생할 수 있습니다.&lt;br /&gt;
** CRC16만으로는 16 비트 초과의 변질을 감지할 수 없습니다.&lt;br /&gt;
** 예를 들어, 5개 패킷으로 이루어진 메시지에서 1-2개 패킷이 유실되어도 CRC가 맞을 가능성이 있습니다.&lt;br /&gt;
*** 실제로 이런 일이 발생하였습니다.&lt;br /&gt;
&lt;br /&gt;
* 완벽을 위한 조건은 다음과 같습니다.&lt;br /&gt;
** 발신자 구분 = CAN ID를 통해서 구분&lt;br /&gt;
** 메시지마다 증가하는 시퀸스&lt;br /&gt;
** 패킷마다 증가하는 시퀸스&lt;br /&gt;
** 실제 전달하는 메시지의 길이&lt;br /&gt;
** 체크섬&lt;br /&gt;
*** 발신자 구분이 가능하면 CRC 16, 구분이 불가능하면 CRC32 ?&lt;br /&gt;
*** 의문: 패킷1개가 바뀌는 경우에는 7바이트가 바뀌는 것인데 CRC16,32의미가 있는가? 그래도 확률상 32가 나음?&lt;br /&gt;
** 체크섬, 메시지 길이의 위치 = 처음에 넣음. 마지막에 넣는 다면, 이것도 유동적이라 부적절함.&lt;br /&gt;
&lt;br /&gt;
* 사용 조건&lt;br /&gt;
** 1개 패킷으로 보낼 수 없는 경우에 T2-Messsage 전송&lt;br /&gt;
&lt;br /&gt;
* Format&lt;br /&gt;
** Message = L(2), crc(2 or 4), msg body(L byte)&lt;br /&gt;
** Packet = part of msg(max 7 or 63), tail byte (begin/end flag, packet seq: 4 bit, msg seq: 2 bit)&lt;br /&gt;
*** packet seq 의 최상위 bit는 toggle flag 자리를 사용&lt;br /&gt;
&lt;br /&gt;
* T-Message 와의 구분&lt;br /&gt;
** T-Message의 toggle flag 는 1 부터 시작.&lt;br /&gt;
** packet seq 가 0 부터 시작하므로, toggle bit 자리가 0이 되어 구분이 가능.&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1992</id>
		<title>CanServo/Protoco/T2-Message</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1992"/>
		<updated>2026-05-11T08:01:39Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 개요 ==&lt;br /&gt;
&lt;br /&gt;
* 여러 개의 T-Message 가 섞이는 경우, 수신 측에서 분석 실패가 발생할 수 있습니다.&lt;br /&gt;
** CRC16만으로는 16 비트 초과의 변질을 감지할 수 없습니다.&lt;br /&gt;
** 예를 들어, 5개 패킷으로 이루어진 메시지에서 1-2개 패킷이 유실되어도 CRC가 맞을 가능성이 있습니다.&lt;br /&gt;
*** 실제로 이런 일이 발생하였습니다.&lt;br /&gt;
&lt;br /&gt;
* 완벽을 위한 조건은 다음과 같습니다.&lt;br /&gt;
** 발신자 구분 = CAN ID를 통해서 구분&lt;br /&gt;
** 메시지마다 증가하는 시퀸스&lt;br /&gt;
** 패킷마다 증가하는 시퀸스&lt;br /&gt;
** 실제 전달하는 메시지의 길이&lt;br /&gt;
** 체크섬&lt;br /&gt;
*** 발신자 구분이 가능하면 CRC 16, 구분이 불가능하면 CRC32 ?&lt;br /&gt;
*** 의문: 패킷1개가 바뀌는 경우에는 7바이트가 바뀌는 것인데 CRC16,32의미가 있는가? 그래도 확률상 32가 나음?&lt;br /&gt;
** 체크섬, 메시지 길이의 위치 = 처음에 넣음. 마지막에 넣는 다면, 이것도 유동적이라 부적절함.&lt;br /&gt;
&lt;br /&gt;
* 사용 조건&lt;br /&gt;
** 1개 패킷으로 보낼 수 있는 경우는 T-Message 로 전송&lt;br /&gt;
** 1개 패킷으로 보낼 수 없는 경우에 T2-Messsage 전송&lt;br /&gt;
&lt;br /&gt;
* Format&lt;br /&gt;
** Message = L(2), crc(2 or 4), msg body(L byte)&lt;br /&gt;
** Packet = part of msg(max 7 or 63), tail byte (begin/end flag, packet seq: 4 bit, msg seq: 2 bit)&lt;br /&gt;
*** packet seq 의 최상위 bit는 toggle flag 자리를 사용&lt;br /&gt;
&lt;br /&gt;
* T-Message 와의 구분&lt;br /&gt;
** T-Message의 toggle flag 는 1 부터 시작.&lt;br /&gt;
** packet seq 가 0 부터 시작하므로, toggle bit 자리가 0이 되어 구분이 가능.&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1991</id>
		<title>CanServo/Protoco/T2-Message</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1991"/>
		<updated>2026-05-11T07:58:04Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 개요 ==&lt;br /&gt;
&lt;br /&gt;
* 여러 개의 T-Message 가 섞이는 경우, 수신 측에서 분석 실패가 발생할 수 있습니다.&lt;br /&gt;
** CRC16만으로는 16 비트 초과의 변질을 감지할 수 없습니다.&lt;br /&gt;
** 예를 들어, 5개 패킷으로 이루어진 메시지에서 1-2개 패킷이 유실되어도 CRC가 맞을 가능성이 있습니다.&lt;br /&gt;
*** 실제로 이런 일이 발생하였습니다.&lt;br /&gt;
&lt;br /&gt;
* 완벽을 위한 조건은 다음과 같습니다.&lt;br /&gt;
** 발신자 구분 = CAN ID를 통해서 구분&lt;br /&gt;
** 메시지마다 증가하는 시퀸스&lt;br /&gt;
** 패킷마다 증가하는 시퀸스&lt;br /&gt;
** 실제 전달하는 메시지의 길이&lt;br /&gt;
** 체크섬&lt;br /&gt;
*** 발신자 구분이 가능하면 CRC 16, 구분이 불가능하면 CRC32 ?&lt;br /&gt;
*** 의문: 패킷1개가 바뀌는 경우에는 7바이트가 바뀌는 것인데 CRC16,32의미가 있는가? 그래도 확률상 32가 나음?&lt;br /&gt;
** 체크섬, 메시지 길이의 위치 = 처음에 넣음. 마지막에 넣는 다면, 이것도 유동적이라 부적절함.&lt;br /&gt;
&lt;br /&gt;
* Format&lt;br /&gt;
** Message = L(2), crc(2 or 4), msg body(L byte)&lt;br /&gt;
** Packet = part of msg(max 7 or 63), tail byte (begin/end flag, packet seq: 4 bit, msg seq: 2 bit)&lt;br /&gt;
*** packet seq 의 최상위 bit는 toggle flag 자리를 사용&lt;br /&gt;
&lt;br /&gt;
* T-Message 와의 구분&lt;br /&gt;
** T-Message의 toggle flag 는 1 부터 시작.&lt;br /&gt;
** packet seq 가 0 부터 시작하므로, toggle bit 자리가 0이 되어 구분이 가능.&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1990</id>
		<title>CanServo/Protoco/T2-Message</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1990"/>
		<updated>2026-05-11T07:57:32Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* 개요 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 개요 ==&lt;br /&gt;
&lt;br /&gt;
* 여러 개의 T-Message 가 섞이는 경우, 수신 측에서 분석 실패가 발생할 수 있습니다.&lt;br /&gt;
** CRC16만으로는 16 비트 초과의 변질을 감지할 수 없습니다.&lt;br /&gt;
** 예를 들어, 5개 패킷으로 이루어진 메시지에서 1-2개 패킷이 유실되어도 CRC가 맞을 가능성이 있습니다.&lt;br /&gt;
*** 실제로 이런 일이 발생하였습니다.&lt;br /&gt;
&lt;br /&gt;
* 완벽을 위한 조건은 다음과 같습니다.&lt;br /&gt;
** 발신자 구분 = CAN ID를 통해서 구분&lt;br /&gt;
** 메시지마다 증가하는 시퀸스&lt;br /&gt;
** 패킷마다 증가하는 시퀸스&lt;br /&gt;
** 실제 전달하는 메시지의 길이&lt;br /&gt;
** 체크섬&lt;br /&gt;
*** 발신자 구분이 가능하면 CRC 16, 구분이 불가능하면 CRC32 ?&lt;br /&gt;
*** 의문: 패킷1개가 바뀌는 경우에는 7바이트가 바뀌는 것인데 CRC16,32의미가 있는가? 그래도 확률상 32가 나음?&lt;br /&gt;
** 체크섬, 메시지 길이의 위치 = 처음에 넣음. 마지막에 넣는 다면, 이것도 유동적이라 부적절함.&lt;br /&gt;
&lt;br /&gt;
* Format&lt;br /&gt;
** Message = L(2), crc(2 or 4), msg body(L byte)&lt;br /&gt;
** Packet = part of msg(max 7), tail byte (begin/end flag, packet seq: 4 bit, msg seq: 2 bit)&lt;br /&gt;
*** packet seq 의 최상위 bit는 toggle flag 자리를 사용&lt;br /&gt;
&lt;br /&gt;
* T-Message 와의 구분&lt;br /&gt;
** T-Message의 toggle flag 는 1 부터 시작.&lt;br /&gt;
** packet seq 가 0 부터 시작하므로, toggle bit 자리가 0이 되어 구분이 가능.&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1989</id>
		<title>CanServo/Protoco/T2-Message</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1989"/>
		<updated>2026-05-11T07:56:21Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* 개요 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 개요 ==&lt;br /&gt;
&lt;br /&gt;
* 여러 개의 T-Message 가 섞이는 경우, 수신 측에서 분석 실패가 발생할 수 있습니다.&lt;br /&gt;
** CRC16만으로는 16 비트 초과의 변질을 감지할 수 없습니다.&lt;br /&gt;
** 예를 들어, 5개 패킷으로 이루어진 메시지에서 1-2개 패킷이 유실되어도 CRC가 맞을 가능성이 있습니다.&lt;br /&gt;
*** 실제로 이런 일이 발생하였습니다.&lt;br /&gt;
&lt;br /&gt;
* 완벽을 위한 조건은 다음과 같습니다.&lt;br /&gt;
** 발신자 구분 = CAN ID를 통해서 구분&lt;br /&gt;
** 메시지마다 증가하는 시퀸스&lt;br /&gt;
** 패킷마다 증가하는 시퀸스&lt;br /&gt;
** 실제 전달하는 메시지의 길이&lt;br /&gt;
** 체크섬&lt;br /&gt;
*** 발신자 구분이 가능하면 CRC 16, 구분이 불가능하면 CRC32 ?&lt;br /&gt;
*** 의문: 패킷1개가 바뀌는 경우에는 7바이트가 바뀌는 것인데 CRC16,32의미가 있는가? 그래도 확률상 32가 나음?&lt;br /&gt;
** 체크섬, 메시지 길이의 위치 = 처음에 넣음. 마지막에 넣는 다면, 이것도 유동적이라 부적절함.&lt;br /&gt;
&lt;br /&gt;
* Format&lt;br /&gt;
** Message = L(2), crc(2 or 4), msg body(L byte)&lt;br /&gt;
** Packet = packet body(max 7), tail byte (begin/end flag, packet seq: 4 bit, msg seq: 2 bit)&lt;br /&gt;
*** packet seq 의 최상위 bit는 toggle flag 자리를 사용&lt;br /&gt;
&lt;br /&gt;
* T-Message 와의 구분&lt;br /&gt;
** T-Message의 toggle flag 는 1 부터 시작.&lt;br /&gt;
** packet seq 가 0 부터 시작하므로, toggle bit 자리가 0이 되어 구분이 가능.&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1988</id>
		<title>CanServo/Protoco/T2-Message</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1988"/>
		<updated>2026-05-11T07:54:43Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* 개요 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 개요 ==&lt;br /&gt;
&lt;br /&gt;
* 여러 개의 T-Message 가 섞이는 경우, 수신 측에서 분석 실패가 발생할 수 있습니다.&lt;br /&gt;
** CRC16만으로는 16 비트 초과의 변질을 감지할 수 없습니다.&lt;br /&gt;
** 예를 들어, 5개 패킷으로 이루어진 메시지에서 1-2개 패킷이 유실되어도 CRC가 맞을 가능성이 있습니다.&lt;br /&gt;
*** 실제로 이런 일이 발생하였습니다.&lt;br /&gt;
&lt;br /&gt;
* 완벽을 위한 필수 조건은 다음과 같습니다.&lt;br /&gt;
** 발신자 구분 = CAN ID를 통해서 구분&lt;br /&gt;
** 메시지마다 증가하는 시퀸스&lt;br /&gt;
** 패킷마다 증가하는 시퀸스&lt;br /&gt;
** 실제 전달하는 메시지의 길이&lt;br /&gt;
** 체크섬&lt;br /&gt;
*** 발신자 구분이 가능하면 CRC 16, 구분이 불가능하면 CRC32 ?&lt;br /&gt;
*** 의문: 패킷1개가 바뀌는 경우에는 7바이트가 바뀌는 것인데 CRC16,32의미가 있는가? 그래도 확률상 32가 나음?&lt;br /&gt;
** 체크섬, 메시지 길이의 위치 = 처음에 넣음. 마지막에 넣는 다면, 이것도 유동적이라 부적절함.&lt;br /&gt;
&lt;br /&gt;
* Format&lt;br /&gt;
** Message = L(2), crc(2 or 4), msg body(L byte)&lt;br /&gt;
** Packet = packet body(max 7), tail byte (begin/end flag, packet seq: 4 bit, msg seq: 2 bit)&lt;br /&gt;
*** packet seq 의 최상위 bit는 toggle flag 자리를 사용&lt;br /&gt;
&lt;br /&gt;
* T-Message 와의 구분&lt;br /&gt;
** T-Message의 toggle flag 는 1 부터 시작.&lt;br /&gt;
** packet seq 가 0 부터 시작하므로, toggle bit 자리가 0이 되어 구분이 가능.&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1987</id>
		<title>CanServo/Protoco/T2-Message</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1987"/>
		<updated>2026-05-11T07:46:06Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* 개요 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 개요 ==&lt;br /&gt;
&lt;br /&gt;
* 여러 개의 T-Message 가 섞이는 경우, 수신 측에서 분석 실패가 발생할 수 있습니다.&lt;br /&gt;
** CRC16만으로는 16 비트 초과의 변질을 감지할 수 없습니다.&lt;br /&gt;
** 예를 들어, 5개 패킷으로 이루어진 메시지에서 1-2개 패킷이 유실되어도 CRC가 맞을 가능성이 있습니다.&lt;br /&gt;
*** 실제로 이런 일이 발생하였습니다.&lt;br /&gt;
&lt;br /&gt;
* 완벽을 위한 필수 조건은 다음과 같습니다.&lt;br /&gt;
** 발신자 구분 = CAN ID를 통해서 구분&lt;br /&gt;
** 메시지마다 증가하는 시퀸스&lt;br /&gt;
** 패킷마다 증가하는 시퀸스&lt;br /&gt;
** 실제 전달하는 메시지의 길이&lt;br /&gt;
** 체크섬&lt;br /&gt;
*** 발신자 구분이 가능하면 CRC 16, 구분이 불가능하면 CRC32 추천.&lt;br /&gt;
*** 의문: 패킷1개가 바뀌는 경우에는 7바이트가 바뀌는 것인데 CRC16,32의미가 있는가? 그래도 확률상 32가 나음?&lt;br /&gt;
** 체크섬, 메시지 길이의 위치 = 처음에 넣음. 마지막에 넣는 다면, 이것도 유동적이라 부적절함.&lt;br /&gt;
&lt;br /&gt;
* Format&lt;br /&gt;
** Message = L(2), crc(2 or 4), msg body(L byte)&lt;br /&gt;
** Packet = packet body(max 7), tail byte (begin/end flag, packet seq: 4 bit, msg seq: 2 bit)&lt;br /&gt;
*** packet seq 의 최상위 bit는 toggle flag 자리를 사용&lt;br /&gt;
&lt;br /&gt;
* T-Message 와의 구분&lt;br /&gt;
** T-Message의 toggle flag 는 1 부터 시작.&lt;br /&gt;
** packet seq 가 0 부터 시작하므로, toggle bit 자리가 0이 되어 구분이 가능.&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1986</id>
		<title>CanServo/Protoco/T2-Message</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1986"/>
		<updated>2026-05-11T07:44:59Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* 개요 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 개요 ==&lt;br /&gt;
&lt;br /&gt;
* 여러 개의 T-Message 가 섞이는 경우, 수신 측에서 분석 실패가 발생할 수 있습니다.&lt;br /&gt;
** CRC16만으로는 16 비트 초과의 변질을 감지할 수 없습니다.&lt;br /&gt;
** 예를 들어, 5개 패킷으로 이루어진 메시지에서 1-2개 패킷이 유실되어도 CRC가 맞을 가능성이 있습니다.&lt;br /&gt;
*** 실제로 이런 일이 발생하였습니다.&lt;br /&gt;
&lt;br /&gt;
* 완벽을 위한 필수 조건은 다음과 같습니다.&lt;br /&gt;
** 발신자 구분 = CAN ID를 통해서 구분&lt;br /&gt;
** 메시지마다 증가하는 시퀸스&lt;br /&gt;
** 패킷마다 증가하는 시퀸스&lt;br /&gt;
** 실제 전달하는 메시지의 길이&lt;br /&gt;
** 체크섬&lt;br /&gt;
*** 발신자 구분이 가능하면 CRC 16, 구분이 불가능하면 CRC32 추천.&lt;br /&gt;
*** 의문: 패킷1개가 바뀌는 경우에는 7바이트가 바뀌는 것인데 CRC16,32의미가 있는가? 그래도 확률상 32가 나음?&lt;br /&gt;
&lt;br /&gt;
* Format&lt;br /&gt;
** Message = L(2), crc(2 or 4), msg body(L byte)&lt;br /&gt;
** Packet = packet body(max 7), tail byte (begin/end flag, packet seq: 4 bit, msg seq: 2 bit)&lt;br /&gt;
*** packet seq 의 최상위 bit는 toggle flag 자리를 사용&lt;br /&gt;
&lt;br /&gt;
* T-Message 와의 구분&lt;br /&gt;
** T-Message의 toggle flag 는 1 부터 시작.&lt;br /&gt;
** packet seq 가 0 부터 시작하므로, toggle bit 자리가 0이 되어 구분이 가능.&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1985</id>
		<title>CanServo/Protoco/T2-Message</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1985"/>
		<updated>2026-05-11T07:44:49Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 개요 ==&lt;br /&gt;
&lt;br /&gt;
* 여러 개의 T-Message 가 섞이는 경우, 수신 측에서 분석 실패가 발생할 수 있습니다.&lt;br /&gt;
** CRC16만으로는 16 비트 초과의 변질을 감지할 수 없습니다.&lt;br /&gt;
** 예를 들어, 5개 패킷으로 이루어진 메시지에서 1-2개 패킷이 유실되어도 CRC가 맞을 가능성이 있습니다.&lt;br /&gt;
*** 실제로 이런 일이 발생하였습니다.&lt;br /&gt;
&lt;br /&gt;
* 완벽을 위한 필수 조건은 다음과 같습니다.&lt;br /&gt;
** 발신자 구분 = CAN ID를 통해서 구분&lt;br /&gt;
** 메시지마다 증가하는 시퀸스&lt;br /&gt;
** 패킷마다 증가하는 시퀸스&lt;br /&gt;
** 실제 전달하는 메시지의 길이&lt;br /&gt;
** 체크섬&lt;br /&gt;
*** 발신자 구분이 가능하면 CRC 16, 구분이 불가능하면 CRC32 추천.&lt;br /&gt;
*** 의문: 패킷1개가 바뀌는 경우에는 7바이트가 바뀌는 것인데 CRC16,32의미가 있는가? 그래도 확율상 32가 나음?&lt;br /&gt;
&lt;br /&gt;
* Format&lt;br /&gt;
** Message = L(2), crc(2 or 4), msg body(L byte)&lt;br /&gt;
** Packet = packet body(max 7), tail byte (begin/end flag, packet seq: 4 bit, msg seq: 2 bit)&lt;br /&gt;
*** packet seq 의 최상위 bit는 toggle flag 자리를 사용&lt;br /&gt;
&lt;br /&gt;
* T-Message 와의 구분&lt;br /&gt;
** T-Message의 toggle flag 는 1 부터 시작.&lt;br /&gt;
** packet seq 가 0 부터 시작하므로, toggle bit 자리가 0이 되어 구분이 가능.&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1984</id>
		<title>CanServo/Protoco/T2-Message</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1984"/>
		<updated>2026-05-11T07:39:33Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 개요 ==&lt;br /&gt;
&lt;br /&gt;
* 여러 개의 T-Message 가 섞이는 경우, 수신 측에서 분석 실패가 발생할 수 있습니다.&lt;br /&gt;
** CRC16만으로는 16 비트 초과의 변질을 감지할 수 없습니다.&lt;br /&gt;
** 예를 들어, 5개 패킷으로 이루어진 메시지에서 1-2개 패킷이 유실되어도 CRC가 맞을 가능성이 있습니다.&lt;br /&gt;
*** 실제로 이런 일이 발생하였습니다.&lt;br /&gt;
&lt;br /&gt;
* 완벽을 위한 필수 조건은 다음과 같습니다.&lt;br /&gt;
** 발신자 구분 = CAN ID를 통해서 구분&lt;br /&gt;
** 메시지마다 증가하는 시퀸스&lt;br /&gt;
** 패킷마다 증가하는 시퀸스&lt;br /&gt;
** 실제 전달하는 메시지의 길이&lt;br /&gt;
** 체크섬&lt;br /&gt;
*** 발신자 구분이 가능하면 CRC 16, 구분이 불가능하면 CRC32 추천.&lt;br /&gt;
*** 의문: 패킷1개가 바뀌는 경우에는 7바이트가 바뀌는 것인데 CRC16,32의미가 있는가? 그래도 확율상 32가 나음?&lt;br /&gt;
&lt;br /&gt;
* Format&lt;br /&gt;
** Message = L(2), crc(2 or 4), msg body(L byte)&lt;br /&gt;
** Packet = packet body(max 7), tail byte (begin/end flag, packet seq: 4 bit, msg seq: 2 bit)&lt;br /&gt;
*** packet seq 의 최상위 bit는 toggle flag 자리를 사용&lt;br /&gt;
*** 검토: packet seq = 3 bit, msg seq = 3 bit 는 어떤가?&lt;br /&gt;
&lt;br /&gt;
* T-Message 와의 구분&lt;br /&gt;
** T-Message의 toggle flag 는 1 부터 시작.&lt;br /&gt;
** packet seq 가 0 부터 시작하므로, toggle bit 자리가 0이 되어 구분이 가능.&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/0&amp;diff=1983</id>
		<title>CanServo/Protocol/0</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/0&amp;diff=1983"/>
		<updated>2026-05-11T07:10:27Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* Message Types */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Protocol Sections ==&lt;br /&gt;
* [[SERVO/PROTOCOL/CAN/V1.0/ENG]] - V1.0 - w/W, r/R, x/X, v/V&lt;br /&gt;
** Write/Read 1 or 2 register&lt;br /&gt;
* Prohibited keywords ( 금지 키워드 )&lt;br /&gt;
** ZRU1, ZRU2&lt;br /&gt;
* [[CanServo/Protocol/V1.1]] - V1.1 - ZUID, ZIDS, ZG??, ZR??, ZS??, ZX??, FILE(ZGFL, ZSDF, ZFWU), ZMSG&lt;br /&gt;
** Simple Broadcast UID and Set IDs(ID1,ID2) via UID - ZUID, ZIDS&lt;br /&gt;
** Write/Read register's bits by ID or UID&lt;br /&gt;
** FILE Access&lt;br /&gt;
** Message: ZMSG&lt;br /&gt;
* [[CanServo/Protocol/V1.2]] - V1.2 - p/P, g/G, o/O, y/Y&lt;br /&gt;
** Write/Read 1 or 2 register with 2 byte address in 1 packet&lt;br /&gt;
*** address = max 1024 range (0~1023)&lt;br /&gt;
* [[CanServo/Protocol/V1.3]] - V1.3 - ZU??(Except ZUID), K&lt;br /&gt;
** Write/Read 1 or 2 register via UID&lt;br /&gt;
** Broadcast UID&lt;br /&gt;
** UID search&lt;br /&gt;
* [[CanServo/Protocol/V1.4]] - V1.4 - sync&lt;br /&gt;
* [[CanServo/Protocol/V1.5]] - V1.5 - ZKW?, ZKR?, ZKX?, ZKV?&lt;br /&gt;
** 260409 - 폐기, V2.2 로 대치&lt;br /&gt;
** Write/Read N register(s)&lt;br /&gt;
* [[CanServo/Protocol/V1.6]] - V1.6 - Zc??, Zr??&lt;br /&gt;
** Custom CAN / CAN-FD&lt;br /&gt;
* [[CanServo/Protocol/V1.7]] - V1.7 - Pot Calibration - ZP??&lt;br /&gt;
* [[CanServo/Protocol/V1.8]] - V1.8 - zs? - Address 256이상인 Stream 설정 및 Stream 전용 Message (2026_02_06)&lt;br /&gt;
* [[CanServo/Protocol/V1.9]] - V1.9 - ZZ??, PZ 읽기, (2026_02_06)&lt;br /&gt;
* [[CanServo/Protocol/V2.1]] - V2.1 - Zb??, Write / Read N register's bit(s) by ID or UID&lt;br /&gt;
* [[CanServo/Protocol/V2.2]] - V2.2 - ZkW?, ZkR?, ZkX?, ZkV?&lt;br /&gt;
** Write/Read N register(s) with N1&lt;br /&gt;
&lt;br /&gt;
== Message Types ==&lt;br /&gt;
&lt;br /&gt;
* Tail Byte 유무에 따라 S-Message/T-Message(OLD Short Message / Long Message)로 나눕니다.&lt;br /&gt;
** [[CanServo/Protocol/S-Message]] - Single Packet ( without Tail byte )&lt;br /&gt;
** [[CanServo/Protocol/T-Message]] - Single/Multi Packet with Tail byte&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! CAN ID&lt;br /&gt;
! [[CanServo/Protocol/S-Message | S-Message]]&lt;br /&gt;
! [[CanServo/Protocol/T-Message | T-Message]]&lt;br /&gt;
|-&lt;br /&gt;
! Host -&amp;gt; Servo&lt;br /&gt;
| 0(Broadcast) or ID2&lt;br /&gt;
| 0x7FE, ID2+4&lt;br /&gt;
|-&lt;br /&gt;
! Servo -&amp;gt; Host&lt;br /&gt;
| ID2 or ID2+1&lt;br /&gt;
| 0x7FF, ID2+5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* CAN-FD 도입에 따른 S-Message/T-Message 운영 방침&lt;br /&gt;
** 아래 2026_02_11 기록 확인 요망&lt;br /&gt;
&lt;br /&gt;
* RR 정의 (2026_01_14)&lt;br /&gt;
** 이 날짜 이전 버전은 +2, +3 가 되며, Return + 1 (실제로는 bit OR 1) option을 설정하면 꼬이므로, 다음과 같이 변경함.&lt;br /&gt;
** ID2 + 2 = RR MCU 1 Access&lt;br /&gt;
** ID2 + 3 = RR MCU 1 Return + 1 option&lt;br /&gt;
** ID2 + 6 = RR MCU 2 Access&lt;br /&gt;
** ID2 + 7 = RR MCU 2 Return + 1 option&lt;br /&gt;
&lt;br /&gt;
* NOTE: ID2 must aligned by 8.&lt;br /&gt;
&lt;br /&gt;
== Target ID ==&lt;br /&gt;
&lt;br /&gt;
* Target Servo ID만 존재하고, ID2 정보가 없는 메시지(V1.0, V1.2, V1.5 등)&lt;br /&gt;
** CAN ID = 0 혹은 0x7FE 를 통해 전달하면 ID1 만 확인됩니다.&lt;br /&gt;
** ID2 구분이 필요하면, ID2, ID2+4 를 통해서 전달해야 합니다.&lt;br /&gt;
** 서보는, ID2 구분이 되도록, ID2(혹은 ID2+1), ID2+5를 통해 반환합니다.&lt;br /&gt;
&lt;br /&gt;
== Section / platform ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Section&lt;br /&gt;
! Short&lt;br /&gt;
! Long&lt;br /&gt;
! ST&lt;br /&gt;
! AT&lt;br /&gt;
! G491&lt;br /&gt;
! RR&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.1&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.2&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.3&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
| 2.3(3)&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.4&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
| 2.3(3)&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.5&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.6&lt;br /&gt;
| -&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.7&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.8&lt;br /&gt;
| -&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ID2+4/5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* DATE: 2024_11_25, G491 R1CAN&lt;br /&gt;
&lt;br /&gt;
== Message Return Rule ==&lt;br /&gt;
&lt;br /&gt;
NOTE: 우선 순위 높은 규칙부터 나열합니다.&lt;br /&gt;
&lt;br /&gt;
* CAN Data Type (CAN, FD, BRS) 유지&lt;br /&gt;
* ID2 구분이 필요한 메시지 (메시지 내용에 ID2 가 없는 경우)&lt;br /&gt;
** V1.0, V1.2: ID2 ( 또는 설정에 따라 ID2 + 1 )&lt;br /&gt;
** V1.5: ID2 + 5&lt;br /&gt;
** V2.2: ID2 + 5&lt;br /&gt;
* T-Message: T-Message 로 반환&lt;br /&gt;
** ID2+4 수신시, ID2+5 반환&lt;br /&gt;
** 0x7FE 수신시, 0x7FF 반환&lt;br /&gt;
* (여기까지오면, 0 또는 ID2 인 S-Message)&lt;br /&gt;
** CAN 수신시&lt;br /&gt;
*** 반환 메시지 (유동적일 때는 최대) 길이가 8바이트 초과인 경우에는 ID2+5 T-Message 반환&lt;br /&gt;
*** ID2 또는 ID2+1, S-Message 반환&lt;br /&gt;
** FD 또는 FD/BRS 수신시&lt;br /&gt;
*** 반환 메시지 (유동적일 때는 최대) 길이가 63바이트 초과인 경우에는 ID2+5 T-Message 반환&lt;br /&gt;
*** ID2 또는 ID2+1, S-Message 반환&lt;br /&gt;
&lt;br /&gt;
== Protocol Recv CAN ID Rule ==&lt;br /&gt;
&lt;br /&gt;
* 조사&lt;br /&gt;
** V1.0 - 8 byte 이하 고정 길이, ID1만 있음, CAN ID = Short&lt;br /&gt;
*** return CAN ID = ID2 또는 ID2 + 1&lt;br /&gt;
** V1.1 - 63 byte 이하 고정 길이, UID 또는 ID2/ID1 포함, CAN ID = Long&lt;br /&gt;
*** 0x7Fx, ID2+5 가능?&lt;br /&gt;
** V1.2 - V1.0 과 같음&lt;br /&gt;
*** return CAN ID = ID2 또는 ID2 + 1&lt;br /&gt;
** V1.3 - 63 byte 이하 고정 길이(일부 유동), UID 또는 ID2/ID1 포함, CAN ID = Long&lt;br /&gt;
*** 0x7Fx, ID2+5 가능?&lt;br /&gt;
** V1.4 - sync, ID 없음, 모든 CAN ID  가능, CAN ID = Any&lt;br /&gt;
** V1.5 - 8 byte 초과 유동적 길이, ID1만 있음, CAN ID = Long&lt;br /&gt;
*** 0x7Fx 가능, return CAN ID = ID2 + 5 권장&lt;br /&gt;
** V1.6 - Long, ID2/ID1 포함, CAN ID = Long&lt;br /&gt;
** V1.7 - 다양한 길이의 고정 길이, ID2/ID1 포함, 모든 CAN ID 가능, CAN ID = Long&lt;br /&gt;
** V1.8 - 안씀?&lt;br /&gt;
** V1.9 - Long, ID2/ID1 포함, 모든 CAN ID 가능, CAN ID = Long&lt;br /&gt;
&lt;br /&gt;
* 결론&lt;br /&gt;
** Short = V1.0, V1.2&lt;br /&gt;
** Any = V1.4&lt;br /&gt;
** Long = 이외&lt;br /&gt;
&lt;br /&gt;
== CAN-FD ==&lt;br /&gt;
&lt;br /&gt;
* [[CanServo/Protocol/CAN-FD]]&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
=== 2026_04_09 ===&lt;br /&gt;
&lt;br /&gt;
* V1.9&lt;br /&gt;
** N1 적용, ID2 추가&lt;br /&gt;
** R1CAN 적용&lt;br /&gt;
* V2.1&lt;br /&gt;
** N1 적용&lt;br /&gt;
** R1CAN 적용&lt;br /&gt;
* V2.2 (신규)&lt;br /&gt;
** N1 적용&lt;br /&gt;
* V1.5 (폐기)&lt;br /&gt;
** V2.2 로 대치&lt;br /&gt;
** 주의: N1 없이, R2CAN에 적용된 상태임.&lt;br /&gt;
&lt;br /&gt;
=== 2026_03_16 ===&lt;br /&gt;
&lt;br /&gt;
* Short/Long Message 명칭 변경&lt;br /&gt;
** Short Message -&amp;gt; S-Message ( message in Single packet )&lt;br /&gt;
** Long Message -&amp;gt; T-Message ( message with Tail byte )&lt;br /&gt;
&lt;br /&gt;
=== 2026_03_05 ===&lt;br /&gt;
&lt;br /&gt;
* V1.5 메시지는, (0x7FE, ID2+4) 수신 CAN ID에 상관없이 , 무조건 ID2+5 로 반환&lt;br /&gt;
&lt;br /&gt;
=== 2026_02_11 ===&lt;br /&gt;
&lt;br /&gt;
* CAN-FD 도입에 따른 Short / Long Message 운영 방침 정리&lt;br /&gt;
** CAN-FD 기능이 도입되면서, 어느 정도 긴 문장도 1개 패킷으로 가능하게 되었습니다.&lt;br /&gt;
** 예: ZKV2 메시지가 CAN-FD 1개 packet으로 가능&lt;br /&gt;
** 이때 테스트 자동화 과정에서, 모든 경우의 수를 수행하면서, Long Message를 Short Message CAN ID에 전송하여서 문제가 발생함.&lt;br /&gt;
*** 예를 들어, p로 시작하는 패킷이 전달되면 이상 동작을 함.&lt;br /&gt;
*** 발신 UI가 잘못한 것.&lt;br /&gt;
** 이런 일이 생기지 않도록 아예 분리합니다.&lt;br /&gt;
** Long Message 로 보내면 TAIL BYTE 때문에 1바이트 늘어나게 되는데 이는 큰 문제는 아니므로, 고정 적으로 할당합니다.&lt;br /&gt;
** 즉, CAN에서 Short / Long Message로 정의되었던 내용은, CAN-FD에서도 그대로 Short / Long Message로 사용합니다.&lt;br /&gt;
** DroneCAN에서의 우리 프로토콜 사용 방침&lt;br /&gt;
*** Long Message만 사용합니다.&lt;br /&gt;
**** Short Message로만 가능한 V1.0, V1.2 사용 불가&lt;br /&gt;
*** ID2 = 0 ~ 127&lt;br /&gt;
*** DroneCAN 통신 방해를 하지 않기 위해, CAN 2.0A 로 작동합니다.&lt;br /&gt;
&lt;br /&gt;
=== 2026_01_14 ===&lt;br /&gt;
&lt;br /&gt;
* SR33 RR MCU 1/2 Access 기준 변경&lt;br /&gt;
** 변경전: ID2 + 2, ID2 + 3&lt;br /&gt;
** 변경후: ID2 + 2, ID2 + 6&lt;br /&gt;
** 사유: Return +1 option을 설정하면, 실제로는 OR 1 이기 때문에, +3, +3 으로 꼬임&lt;br /&gt;
*** 만일 +1 이라고 해도, +3, +4 가 되어, Long Message와 꼬임.&lt;br /&gt;
&lt;br /&gt;
=== 2025_06_19 ===&lt;br /&gt;
&lt;br /&gt;
* (6) Return message has bug&lt;br /&gt;
** (4) Replace message keyword&lt;br /&gt;
*** ZRUU: ZSUU, ZXUU, ZGUU -&amp;gt; ZRuu, ZSuu, ZXuu, ZGuu&lt;br /&gt;
*** ZRID: ZSID, ZXID, ZGID -&amp;gt; ZRid, ZSid, ZXid, ZGid&lt;br /&gt;
*** ZUV1: ZUW1, ZUX1, ZUR1 -&amp;gt; ZUv1, ZUw1, ZUx1, ZUr1&lt;br /&gt;
*** ZUV2: ZUW2, ZUX2, ZUR2 -&amp;gt; ZUv2, ZUw2, ZUx2, ZUr2&lt;br /&gt;
*** 과거 FW가 반응하지 않도록 메시지의 키워드를 변경합니다.&lt;br /&gt;
*** [[CanServo/Protocol/V1.1#2025_06_19]]&lt;br /&gt;
*** [[CanServo/Protocol/V1.3#2025_06_19]]&lt;br /&gt;
** (2) No replace:&lt;br /&gt;
*** ZMSG -&amp;gt; 전송 코드 수정으로 해결&lt;br /&gt;
*** ZGFL -&amp;gt;  조심해서 사용&lt;br /&gt;
&lt;br /&gt;
=== 2025_03 ===&lt;br /&gt;
* V1.6 추가&lt;br /&gt;
&lt;br /&gt;
=== 2025_02 ===&lt;br /&gt;
** CAN-FD 추가&lt;br /&gt;
** Short Mesasge 추가&lt;br /&gt;
** V1.5 추가&lt;br /&gt;
** ID2+X 추가&lt;br /&gt;
&lt;br /&gt;
=== 2024_11 ===&lt;br /&gt;
** R1CAN 추가&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/0&amp;diff=1982</id>
		<title>CanServo/Protocol/0</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/0&amp;diff=1982"/>
		<updated>2026-05-11T06:55:27Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* Message Types */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Protocol Sections ==&lt;br /&gt;
* [[SERVO/PROTOCOL/CAN/V1.0/ENG]] - V1.0 - w/W, r/R, x/X, v/V&lt;br /&gt;
** Write/Read 1 or 2 register&lt;br /&gt;
* Prohibited keywords ( 금지 키워드 )&lt;br /&gt;
** ZRU1, ZRU2&lt;br /&gt;
* [[CanServo/Protocol/V1.1]] - V1.1 - ZUID, ZIDS, ZG??, ZR??, ZS??, ZX??, FILE(ZGFL, ZSDF, ZFWU), ZMSG&lt;br /&gt;
** Simple Broadcast UID and Set IDs(ID1,ID2) via UID - ZUID, ZIDS&lt;br /&gt;
** Write/Read register's bits by ID or UID&lt;br /&gt;
** FILE Access&lt;br /&gt;
** Message: ZMSG&lt;br /&gt;
* [[CanServo/Protocol/V1.2]] - V1.2 - p/P, g/G, o/O, y/Y&lt;br /&gt;
** Write/Read 1 or 2 register with 2 byte address in 1 packet&lt;br /&gt;
*** address = max 1024 range (0~1023)&lt;br /&gt;
* [[CanServo/Protocol/V1.3]] - V1.3 - ZU??(Except ZUID), K&lt;br /&gt;
** Write/Read 1 or 2 register via UID&lt;br /&gt;
** Broadcast UID&lt;br /&gt;
** UID search&lt;br /&gt;
* [[CanServo/Protocol/V1.4]] - V1.4 - sync&lt;br /&gt;
* [[CanServo/Protocol/V1.5]] - V1.5 - ZKW?, ZKR?, ZKX?, ZKV?&lt;br /&gt;
** 260409 - 폐기, V2.2 로 대치&lt;br /&gt;
** Write/Read N register(s)&lt;br /&gt;
* [[CanServo/Protocol/V1.6]] - V1.6 - Zc??, Zr??&lt;br /&gt;
** Custom CAN / CAN-FD&lt;br /&gt;
* [[CanServo/Protocol/V1.7]] - V1.7 - Pot Calibration - ZP??&lt;br /&gt;
* [[CanServo/Protocol/V1.8]] - V1.8 - zs? - Address 256이상인 Stream 설정 및 Stream 전용 Message (2026_02_06)&lt;br /&gt;
* [[CanServo/Protocol/V1.9]] - V1.9 - ZZ??, PZ 읽기, (2026_02_06)&lt;br /&gt;
* [[CanServo/Protocol/V2.1]] - V2.1 - Zb??, Write / Read N register's bit(s) by ID or UID&lt;br /&gt;
* [[CanServo/Protocol/V2.2]] - V2.2 - ZkW?, ZkR?, ZkX?, ZkV?&lt;br /&gt;
** Write/Read N register(s) with N1&lt;br /&gt;
&lt;br /&gt;
== Message Types ==&lt;br /&gt;
&lt;br /&gt;
* Tail Byte 유무에 따라 S-Message/T-Message(OLD Short Message / Long Message)로 나눕니다.&lt;br /&gt;
** [[CanServo/Protocol/S-Message]] - Single Packet ( without Tail byte )&lt;br /&gt;
** [[CanServo/Protocol/T-Message]] - Single/Multi Packet with Tail byte&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! CAN ID&lt;br /&gt;
! [[CanServo/Protocol/S-Message | S-Message]]&lt;br /&gt;
! [[CanServo/Protocol/T-Message | T-Message]]&lt;br /&gt;
|-&lt;br /&gt;
! Host -&amp;gt; Servo&lt;br /&gt;
| 0(Broadcast) or ID2&lt;br /&gt;
| 0x7FE, ID2+4&lt;br /&gt;
|-&lt;br /&gt;
! Servo -&amp;gt; Host&lt;br /&gt;
| ID2 or ID2+1&lt;br /&gt;
| 0x7FF, ID2+5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* CAN-FD 도입에 따른 S-Message/T-Message 운영 방침&lt;br /&gt;
** 아래 2026_02_11 기록 확인 요망&lt;br /&gt;
&lt;br /&gt;
* RR 정의 (2026_01_14)&lt;br /&gt;
** 이 날짜 이전 버전은 +2, +3 가 되며, Return + 1 (실제로는 bit OR 1) option을 설정하면 꼬임.&lt;br /&gt;
** ID2 + 2 = RR MCU 1 Access&lt;br /&gt;
** ID2 + 3 = RR MCU 1 Return + 1 option&lt;br /&gt;
** ID2 + 6 = RR MCU 2 Access&lt;br /&gt;
** ID2 + 7 = RR MCU 2 Return + 1 option&lt;br /&gt;
&lt;br /&gt;
* NOTE: ID2 must aligned by 8.&lt;br /&gt;
&lt;br /&gt;
== Target ID ==&lt;br /&gt;
&lt;br /&gt;
* Target Servo ID만 존재하고, ID2 정보가 없는 메시지(V1.0, V1.2, V1.5 등)&lt;br /&gt;
** CAN ID = 0 혹은 0x7FE 를 통해 전달하면 ID1 만 확인됩니다.&lt;br /&gt;
** ID2 구분이 필요하면, ID2, ID2+4 를 통해서 전달해야 합니다.&lt;br /&gt;
** 서보는, ID2 구분이 되도록, ID2(혹은 ID2+1), ID2+5를 통해 반환합니다.&lt;br /&gt;
&lt;br /&gt;
== Section / platform ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Section&lt;br /&gt;
! Short&lt;br /&gt;
! Long&lt;br /&gt;
! ST&lt;br /&gt;
! AT&lt;br /&gt;
! G491&lt;br /&gt;
! RR&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.1&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.2&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.3&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
| 2.3(3)&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.4&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
| 2.3(3)&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.5&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.6&lt;br /&gt;
| -&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| 1.7&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.8&lt;br /&gt;
| -&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ID2+4/5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* DATE: 2024_11_25, G491 R1CAN&lt;br /&gt;
&lt;br /&gt;
== Message Return Rule ==&lt;br /&gt;
&lt;br /&gt;
NOTE: 우선 순위 높은 규칙부터 나열합니다.&lt;br /&gt;
&lt;br /&gt;
* CAN Data Type (CAN, FD, BRS) 유지&lt;br /&gt;
* ID2 구분이 필요한 메시지 (메시지 내용에 ID2 가 없는 경우)&lt;br /&gt;
** V1.0, V1.2: ID2 ( 또는 설정에 따라 ID2 + 1 )&lt;br /&gt;
** V1.5: ID2 + 5&lt;br /&gt;
** V2.2: ID2 + 5&lt;br /&gt;
* T-Message: T-Message 로 반환&lt;br /&gt;
** ID2+4 수신시, ID2+5 반환&lt;br /&gt;
** 0x7FE 수신시, 0x7FF 반환&lt;br /&gt;
* (여기까지오면, 0 또는 ID2 인 S-Message)&lt;br /&gt;
** CAN 수신시&lt;br /&gt;
*** 반환 메시지 (유동적일 때는 최대) 길이가 8바이트 초과인 경우에는 ID2+5 T-Message 반환&lt;br /&gt;
*** ID2 또는 ID2+1, S-Message 반환&lt;br /&gt;
** FD 또는 FD/BRS 수신시&lt;br /&gt;
*** 반환 메시지 (유동적일 때는 최대) 길이가 63바이트 초과인 경우에는 ID2+5 T-Message 반환&lt;br /&gt;
*** ID2 또는 ID2+1, S-Message 반환&lt;br /&gt;
&lt;br /&gt;
== Protocol Recv CAN ID Rule ==&lt;br /&gt;
&lt;br /&gt;
* 조사&lt;br /&gt;
** V1.0 - 8 byte 이하 고정 길이, ID1만 있음, CAN ID = Short&lt;br /&gt;
*** return CAN ID = ID2 또는 ID2 + 1&lt;br /&gt;
** V1.1 - 63 byte 이하 고정 길이, UID 또는 ID2/ID1 포함, CAN ID = Long&lt;br /&gt;
*** 0x7Fx, ID2+5 가능?&lt;br /&gt;
** V1.2 - V1.0 과 같음&lt;br /&gt;
*** return CAN ID = ID2 또는 ID2 + 1&lt;br /&gt;
** V1.3 - 63 byte 이하 고정 길이(일부 유동), UID 또는 ID2/ID1 포함, CAN ID = Long&lt;br /&gt;
*** 0x7Fx, ID2+5 가능?&lt;br /&gt;
** V1.4 - sync, ID 없음, 모든 CAN ID  가능, CAN ID = Any&lt;br /&gt;
** V1.5 - 8 byte 초과 유동적 길이, ID1만 있음, CAN ID = Long&lt;br /&gt;
*** 0x7Fx 가능, return CAN ID = ID2 + 5 권장&lt;br /&gt;
** V1.6 - Long, ID2/ID1 포함, CAN ID = Long&lt;br /&gt;
** V1.7 - 다양한 길이의 고정 길이, ID2/ID1 포함, 모든 CAN ID 가능, CAN ID = Long&lt;br /&gt;
** V1.8 - 안씀?&lt;br /&gt;
** V1.9 - Long, ID2/ID1 포함, 모든 CAN ID 가능, CAN ID = Long&lt;br /&gt;
&lt;br /&gt;
* 결론&lt;br /&gt;
** Short = V1.0, V1.2&lt;br /&gt;
** Any = V1.4&lt;br /&gt;
** Long = 이외&lt;br /&gt;
&lt;br /&gt;
== CAN-FD ==&lt;br /&gt;
&lt;br /&gt;
* [[CanServo/Protocol/CAN-FD]]&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
=== 2026_04_09 ===&lt;br /&gt;
&lt;br /&gt;
* V1.9&lt;br /&gt;
** N1 적용, ID2 추가&lt;br /&gt;
** R1CAN 적용&lt;br /&gt;
* V2.1&lt;br /&gt;
** N1 적용&lt;br /&gt;
** R1CAN 적용&lt;br /&gt;
* V2.2 (신규)&lt;br /&gt;
** N1 적용&lt;br /&gt;
* V1.5 (폐기)&lt;br /&gt;
** V2.2 로 대치&lt;br /&gt;
** 주의: N1 없이, R2CAN에 적용된 상태임.&lt;br /&gt;
&lt;br /&gt;
=== 2026_03_16 ===&lt;br /&gt;
&lt;br /&gt;
* Short/Long Message 명칭 변경&lt;br /&gt;
** Short Message -&amp;gt; S-Message ( message in Single packet )&lt;br /&gt;
** Long Message -&amp;gt; T-Message ( message with Tail byte )&lt;br /&gt;
&lt;br /&gt;
=== 2026_03_05 ===&lt;br /&gt;
&lt;br /&gt;
* V1.5 메시지는, (0x7FE, ID2+4) 수신 CAN ID에 상관없이 , 무조건 ID2+5 로 반환&lt;br /&gt;
&lt;br /&gt;
=== 2026_02_11 ===&lt;br /&gt;
&lt;br /&gt;
* CAN-FD 도입에 따른 Short / Long Message 운영 방침 정리&lt;br /&gt;
** CAN-FD 기능이 도입되면서, 어느 정도 긴 문장도 1개 패킷으로 가능하게 되었습니다.&lt;br /&gt;
** 예: ZKV2 메시지가 CAN-FD 1개 packet으로 가능&lt;br /&gt;
** 이때 테스트 자동화 과정에서, 모든 경우의 수를 수행하면서, Long Message를 Short Message CAN ID에 전송하여서 문제가 발생함.&lt;br /&gt;
*** 예를 들어, p로 시작하는 패킷이 전달되면 이상 동작을 함.&lt;br /&gt;
*** 발신 UI가 잘못한 것.&lt;br /&gt;
** 이런 일이 생기지 않도록 아예 분리합니다.&lt;br /&gt;
** Long Message 로 보내면 TAIL BYTE 때문에 1바이트 늘어나게 되는데 이는 큰 문제는 아니므로, 고정 적으로 할당합니다.&lt;br /&gt;
** 즉, CAN에서 Short / Long Message로 정의되었던 내용은, CAN-FD에서도 그대로 Short / Long Message로 사용합니다.&lt;br /&gt;
** DroneCAN에서의 우리 프로토콜 사용 방침&lt;br /&gt;
*** Long Message만 사용합니다.&lt;br /&gt;
**** Short Message로만 가능한 V1.0, V1.2 사용 불가&lt;br /&gt;
*** ID2 = 0 ~ 127&lt;br /&gt;
*** DroneCAN 통신 방해를 하지 않기 위해, CAN 2.0A 로 작동합니다.&lt;br /&gt;
&lt;br /&gt;
=== 2026_01_14 ===&lt;br /&gt;
&lt;br /&gt;
* SR33 RR MCU 1/2 Access 기준 변경&lt;br /&gt;
** 변경전: ID2 + 2, ID2 + 3&lt;br /&gt;
** 변경후: ID2 + 2, ID2 + 6&lt;br /&gt;
** 사유: Return +1 option을 설정하면, 실제로는 OR 1 이기 때문에, +3, +3 으로 꼬임&lt;br /&gt;
*** 만일 +1 이라고 해도, +3, +4 가 되어, Long Message와 꼬임.&lt;br /&gt;
&lt;br /&gt;
=== 2025_06_19 ===&lt;br /&gt;
&lt;br /&gt;
* (6) Return message has bug&lt;br /&gt;
** (4) Replace message keyword&lt;br /&gt;
*** ZRUU: ZSUU, ZXUU, ZGUU -&amp;gt; ZRuu, ZSuu, ZXuu, ZGuu&lt;br /&gt;
*** ZRID: ZSID, ZXID, ZGID -&amp;gt; ZRid, ZSid, ZXid, ZGid&lt;br /&gt;
*** ZUV1: ZUW1, ZUX1, ZUR1 -&amp;gt; ZUv1, ZUw1, ZUx1, ZUr1&lt;br /&gt;
*** ZUV2: ZUW2, ZUX2, ZUR2 -&amp;gt; ZUv2, ZUw2, ZUx2, ZUr2&lt;br /&gt;
*** 과거 FW가 반응하지 않도록 메시지의 키워드를 변경합니다.&lt;br /&gt;
*** [[CanServo/Protocol/V1.1#2025_06_19]]&lt;br /&gt;
*** [[CanServo/Protocol/V1.3#2025_06_19]]&lt;br /&gt;
** (2) No replace:&lt;br /&gt;
*** ZMSG -&amp;gt; 전송 코드 수정으로 해결&lt;br /&gt;
*** ZGFL -&amp;gt;  조심해서 사용&lt;br /&gt;
&lt;br /&gt;
=== 2025_03 ===&lt;br /&gt;
* V1.6 추가&lt;br /&gt;
&lt;br /&gt;
=== 2025_02 ===&lt;br /&gt;
** CAN-FD 추가&lt;br /&gt;
** Short Mesasge 추가&lt;br /&gt;
** V1.5 추가&lt;br /&gt;
** ID2+X 추가&lt;br /&gt;
&lt;br /&gt;
=== 2024_11 ===&lt;br /&gt;
** R1CAN 추가&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1981</id>
		<title>CanServo/Protoco/T2-Message</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1981"/>
		<updated>2026-05-11T05:02:02Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* 개요 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 개요 ==&lt;br /&gt;
&lt;br /&gt;
* 여러 개의 T-Message 가 섞이는 경우, 수신 측에서 분석 실패가 발생할 수 있습니다.&lt;br /&gt;
** CRC16만으로는 16 비트 초과의 변질을 감지할 수 없습니다.&lt;br /&gt;
** 예를 들어, 5개 패킷으로 이루어진 메시지에서 1-2개 패킷이 유실되어도 CRC가 맞을 가능성이 있습니다.&lt;br /&gt;
*** 실제로 이런 일이 발생하였습니다.&lt;br /&gt;
&lt;br /&gt;
* 완벽을 위한 필수 조건은 다음과 같습니다.&lt;br /&gt;
** 발신자 구분 = CAN ID를 통해서 구분&lt;br /&gt;
** 메시지마다 증가하는 시퀸스&lt;br /&gt;
** 패킷마다 증가하는 시퀸스&lt;br /&gt;
** 실제 전달하는 메시지의 길이&lt;br /&gt;
** 체크섬&lt;br /&gt;
*** 발신자 구분이 가능하면 CRC 16, 구분이 불가능하면 CRC32 추천.&lt;br /&gt;
*** 의문: 패킷1개가 바뀌는 경우에는 7바이트가 바뀌는 것인데 CRC16,32의미가 있는가? 그래도 확율상 32가 나음?&lt;br /&gt;
&lt;br /&gt;
* Format&lt;br /&gt;
** Message = L(2), crc(2 or 4), msg body(L byte)&lt;br /&gt;
** Packet = packet body(max 7), tail byte (begin/end flag, packet seq: 4 bit, msg seq: 2 bit)&lt;br /&gt;
*** packet seq 의 최상위 bit는 toggle flag 자리를 사용&lt;br /&gt;
&lt;br /&gt;
* T-Message 와의 구분&lt;br /&gt;
** T-Message의 toggle flag 는 1 부터 시작.&lt;br /&gt;
** packet seq 가 0 부터 시작하므로, toggle bit 자리가 0이 되어 구분이 가능.&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1980</id>
		<title>CanServo/Protoco/T2-Message</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1980"/>
		<updated>2026-05-11T05:01:46Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 개요 ==&lt;br /&gt;
&lt;br /&gt;
* 여러 개의 T-Message 가 섞이는 경우, 수신 측에서 분석 실패가 발생할 수 있습니다.&lt;br /&gt;
** CRC16만으로는 16 비트 초과의 변질을 감지할 수 없습니다.&lt;br /&gt;
** 예를 들어, 5개 패킷으로 이루어진 메시지에서 1-2개 패킷이 유실되어도 CRC가 맞을 가능성이 있습니다.&lt;br /&gt;
*** 실제로 이런 일이 발생하였습니다.&lt;br /&gt;
&lt;br /&gt;
* 완벽을 위한 필수 조건은 다음과 같습니다.&lt;br /&gt;
** 발신자 구분 = CAN ID를 통해서 구분&lt;br /&gt;
** 메시지마다 증가하는 시퀸스&lt;br /&gt;
** 패킷마다 증가하는 시퀸스&lt;br /&gt;
** 실제 전달하는 메시지의 길이&lt;br /&gt;
** 체크섬&lt;br /&gt;
*** 발신자 구분이 가능하면 CRC 16, 구분이 불가능하면, CRC32 권장.&lt;br /&gt;
*** 의문: 패킷1개가 바뀌는 경우에는 7바이트가 바뀌는 것인데 CRC16,32의미가 있는가? 그래도 확율상 32가 나음?&lt;br /&gt;
&lt;br /&gt;
* Format&lt;br /&gt;
** Message = L(2), crc(2 or 4), msg body(L byte)&lt;br /&gt;
** Packet = packet body(max 7), tail byte (begin/end flag, packet seq: 4 bit, msg seq: 2 bit)&lt;br /&gt;
*** packet seq 의 최상위 bit는 toggle flag 자리를 사용&lt;br /&gt;
&lt;br /&gt;
* T-Message 와의 구분&lt;br /&gt;
** T-Message의 toggle flag 는 1 부터 시작.&lt;br /&gt;
** packet seq 가 0 부터 시작하므로, toggle bit 자리가 0이 되어 구분이 가능.&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1979</id>
		<title>CanServo/Protoco/T2-Message</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1979"/>
		<updated>2026-05-11T05:00:54Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* 개요 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 개요 ==&lt;br /&gt;
&lt;br /&gt;
* 여러 개의 T-Message 가 섞이는 경우, 수신 측에서 분석 실패가 발생할 수 있습니다.&lt;br /&gt;
** CRC16만으로는 16 비트 초과의 변질을 감지할 수 없습니다.&lt;br /&gt;
** 예를 들어, 5개 패킷으로 이루어진 메시지에서 1-2개 패킷이 유실되어도 CRC가 맞을 가능성이 있습니다.&lt;br /&gt;
*** 실제로 이런 일이 발생하였습니다.&lt;br /&gt;
&lt;br /&gt;
* 완벽을 위한 필수 조건은 다음과 같습니다.&lt;br /&gt;
** 발신자 구분 = CAN ID를 통해서 구분&lt;br /&gt;
** 메시지마다 증가하는 시퀸스&lt;br /&gt;
** 패킷마다 증가하는 시퀸스&lt;br /&gt;
** 실제 전달하는 메시지의 길이&lt;br /&gt;
** 체크섬&lt;br /&gt;
*** 발신자 구분이 가능하면 CRC 16, 구분이 불가능하면, CRC32 권장.&lt;br /&gt;
&lt;br /&gt;
* Format&lt;br /&gt;
** Message = L(2), crc(2 or 4), msg body(L byte)&lt;br /&gt;
** Packet = packet body(max 7), tail byte (begin/end flag, packet seq: 4 bit, msg seq: 2 bit)&lt;br /&gt;
*** packet seq 의 최상위 bit는 toggle flag 자리를 사용&lt;br /&gt;
&lt;br /&gt;
* T-Message 와의 구분&lt;br /&gt;
** T-Message의 toggle flag 는 1 부터 시작.&lt;br /&gt;
** packet seq 가 0 부터 시작하므로, toggle bit 자리가 0이 되어 구분이 가능.&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1978</id>
		<title>CanServo/Protoco/T2-Message</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1978"/>
		<updated>2026-05-11T05:00:15Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 개요 ==&lt;br /&gt;
&lt;br /&gt;
* 여러 개의 T-Message 가 섞이는 경우, 수신 측에서 분석 실패가 발생할 수 있습니다.&lt;br /&gt;
** CRC16만으로는 16 비트 초과의 변질을 감지할 수 없습니다.&lt;br /&gt;
** 예를 들어, 5개 패킷으로 이루어진 메시지에서 1-2개 패킷이 유실되어도 CRC가 맞을 가능성이 있습니다.&lt;br /&gt;
*** 실제로 이런 일이 발생하였습니다.&lt;br /&gt;
&lt;br /&gt;
* 완벽을 위한 필수 조건은 다음과 같습니다.&lt;br /&gt;
** 발신자 구분 = CAN ID를 통해서 구분&lt;br /&gt;
** 메시지마다 증가하는 시퀸스&lt;br /&gt;
** 패킷마다 증가하는 시퀸스&lt;br /&gt;
** 실제 전달하는 메시지의 길이&lt;br /&gt;
** 체크섬&lt;br /&gt;
*** 발신자 구분이 가능하면 CRC 16, 구분이 불가능하면, CRC32 사용 권장.&lt;br /&gt;
&lt;br /&gt;
* Format&lt;br /&gt;
** Message = L(2), crc(2 or 4), msg body(L byte)&lt;br /&gt;
** Packet = packet body(max 7), tail byte (begin/end flag, packet seq: 4 bit, msg seq: 2 bit)&lt;br /&gt;
*** packet seq 의 최상위 bit는 toggle flag 자리를 사용&lt;br /&gt;
&lt;br /&gt;
* T-Message 와의 구분&lt;br /&gt;
** T-Message의 toggle flag 는 1 부터 시작.&lt;br /&gt;
** packet seq 가 0 부터 시작하므로, toggle bit 자리가 0이 되어 구분이 가능.&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1977</id>
		<title>CanServo/Protoco/T2-Message</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1977"/>
		<updated>2026-05-11T02:04:07Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 개요 ==&lt;br /&gt;
&lt;br /&gt;
* 여러 개의 T-Message 가 섞이는 경우, 수신 측에서 분석 실패가 발생할 수 있습니다.&lt;br /&gt;
** CRC16만으로는 16 비트 초과의 변질을 감지할 수 없습니다.&lt;br /&gt;
&lt;br /&gt;
* 완벽을 위한 필수 조건은 다음과 같습니다.&lt;br /&gt;
** 발신자 구분 = CAN ID를 통해서 구분&lt;br /&gt;
** 메시지마다 증가하는 시퀸스&lt;br /&gt;
** 패킷마다 증가하는 시퀸스&lt;br /&gt;
** 실제 전달하는 메시지의 길이&lt;br /&gt;
** 체크섬&lt;br /&gt;
*** 발신자 구분이 가능하면 CRC 16, 구분이 불가능하면, CRC32 사용 권장.&lt;br /&gt;
&lt;br /&gt;
* Format&lt;br /&gt;
** Message = L(2), crc(2 or 4), msg body(L byte)&lt;br /&gt;
** Packet = packet body(max 7), tail byte (begin/end flag, packet seq: 4 bit, msg seq: 2 bit)&lt;br /&gt;
*** packet seq 의 최상위 bit는 toggle flag 자리를 사용&lt;br /&gt;
&lt;br /&gt;
* T-Message 와의 구분&lt;br /&gt;
** T-Message의 toggle flag 는 1 부터 시작.&lt;br /&gt;
** packet seq 가 0 부터 시작하므로, toggle bit 자리가 0이 되어 구분이 가능.&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/FW_Files/en&amp;diff=1976</id>
		<title>CanServo/FW Files/en</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/FW_Files/en&amp;diff=1976"/>
		<updated>2026-05-08T00:18:35Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* CAN / DroneCAN Servo Protocol */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== NOTE ==&lt;br /&gt;
&lt;br /&gt;
* These files for manual update only.&lt;br /&gt;
* &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;주의: 이곳의 파일이 최신이 아닐수 있으며, 서보에는 다른 FW 나 Param 가 들어가 있을수 있습니다.&amp;lt;/p&amp;gt;&lt;br /&gt;
* &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;NOTE: The file here may not be the latest, and the servo may contain other FW or Param.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Manual ==&lt;br /&gt;
&lt;br /&gt;
=== CAN / DroneCAN Servo Protocol ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Manual/HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_5.pdf HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_5.pdf] - FW Ver 1.4 to 2.3(5) - 260323&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Manual/HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_6.pdf HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_6.pdf] - FW Ver 1.4 to 2.3(5) - 260507&lt;br /&gt;
&lt;br /&gt;
=== CRC16 ===&lt;br /&gt;
* [[Code/CRC16]]&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
&lt;br /&gt;
=== AIO (All in one) UI ===&lt;br /&gt;
&lt;br /&gt;
* AIO UI ?&lt;br /&gt;
** &amp;quot;All&amp;quot; is include config, simple test, param list, fw update.&lt;br /&gt;
&lt;br /&gt;
* Versions&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_06_15_01.zip 2023-06-15]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_07_28_01.zip 2023-07-28]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_08_30_01.zip 2023-08-30] - include FW Ver 2.2 functions&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_10_05_01.zip 2023-10-05] - include FW Ver 2.3 functions&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2025_05_14_02-exe.zip 2025-05-14] - Param Window: button: save param to file&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2025_11_13_01-exe.zip 2025-11-13]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2025_11_14_01-exe.zip 2025-11-14] - Retry if read reg operation fails&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2026_01_06_01-exe.zip 2026-01-06] - include FW Ver 2.3(2) functions&lt;br /&gt;
&lt;br /&gt;
* Download file and unzip, run exe&lt;br /&gt;
* DotNet framework 4 needed&lt;br /&gt;
&lt;br /&gt;
* Manual&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/PDF/CAN-UI-2022_07_15.pdf AIO-UI-MANUAL-220715]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/PDF/CAN-UI-Write-Param-CAN-AT-2025_11_13_01.pdf AIO-UI-WRITE-PARAM-MANUAL-251113]&lt;br /&gt;
&lt;br /&gt;
=== Config &amp;amp; Test UI ===&lt;br /&gt;
&lt;br /&gt;
* HITEC-CAN-SERVO-CONFIG-2023_04_11_01.exe&lt;br /&gt;
** http://support.hitecrcd.net:7700/files/UI/HITEC-CAN-SERVO-CONFIG-2023_04_11_01.zip&lt;br /&gt;
* HITEC-CAN-SERVO-CONFIG-2023_09_11_01.exe - added option &amp;quot;Write Message Type&amp;quot;&lt;br /&gt;
** http://support.hitecrcd.net:7700/files/UI/HITEC-CAN-SERVO-CONFIG-2023_09_11_01.zip&lt;br /&gt;
* HITEC-CAN-SERVO-CONFIG-2024_12_18_01.exe - Velocity Target&lt;br /&gt;
** http://support.hitecrcd.net:7700/files/UI/HITEC-CAN-SERVO-CONFIG-2024_12_18_01.zip&lt;br /&gt;
&lt;br /&gt;
* Process&lt;br /&gt;
** Download and Unzip&lt;br /&gt;
** DotNet framework 4 needed&lt;br /&gt;
&lt;br /&gt;
=== App FW Update UI ===&lt;br /&gt;
&lt;br /&gt;
* The product platform can be identified by its firmware version.&lt;br /&gt;
** ST MCU: FW Ver &amp;lt; 1.7&lt;br /&gt;
** AT MCU: FW Ver &amp;gt;= 1.7 and FW Ver &amp;lt; 2.5&lt;br /&gt;
* FW Update&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN_UPDATE_V2-2022_09_14_01.zip CAN_UPDATE_V2-2022_09_14_01.zip]&lt;br /&gt;
** Manual&lt;br /&gt;
*** [http://support.hitecrcd.net:7700/files/PDF/CAN-SERVO-FIRMWARE-UPDATE-PROGRAM-2020_06_23_01.pdf CAN-SERVO-FIRMWARE-UPDATE-PROGRAM-2020_06_23_01.pdf]&lt;br /&gt;
** Note: ST MCU Platform&lt;br /&gt;
*** FW Ver 1.6(4) - (Reg 0x60) Velocity Target - Set this value with Velocity Max (Reg 0x54)&lt;br /&gt;
*** FW Ver 1.6(2) DroneCAN - Under 1.6(2), RUN MODE is ignored, but in 1.6(2), MULTI-TURN is enabled according to RUN MODE, so be sure to check RUN MODE&lt;br /&gt;
*** FW Ver 1.5(2) - After writing the new parameter file, downgrading below this version may result in different behavior.&lt;br /&gt;
*** FW Ver 1.3 - Unit of Velocity Max is posdiff/100msec. The unit is posdiff/msec below this version.&lt;br /&gt;
&lt;br /&gt;
=== DotNet framework 4 ===&lt;br /&gt;
* https://www.microsoft.com/en-us/download/details.aspx?id=24872 - client version&lt;br /&gt;
* https://dotnet.microsoft.com/en-us/download/dotnet-framework/thank-you/net40-web-installer - web installer version&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT MCU Version ==&lt;br /&gt;
&lt;br /&gt;
* AT Version&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.2 ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_23_09_07_01_V4.2.zip App_ATcanServo_20_23_09_07_01_V4.2.zip] - Ver 2.2 /A&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.3 ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_23_10_05_01_V4.3.zip App_ATcanServo_20_23_10_05_01_V4.3.zip] - Ver 2.3 /A&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.3(1) ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_24_01_02_01_V4.3(1).zip App_ATcanServo_20_24_01_02_01_V4.3(1).zip] - Ver 2.3(1) /A&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.3(2) ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_24_07_03_01_V4.3(2)-0.zip App_ATcanServo_20_24_07_03_01_V4.3(2)-0.zip] - Ver 2.3(2) /A&lt;br /&gt;
&lt;br /&gt;
=== NOTE ===&lt;br /&gt;
&lt;br /&gt;
* When downloading, please use a CAN ID other than 0.&lt;br /&gt;
** ex) 0x7F0&lt;br /&gt;
&lt;br /&gt;
=== NOTE ===&lt;br /&gt;
&lt;br /&gt;
* When ID is not set&lt;br /&gt;
** If either Servo ID or Node ID is 0, the servo will periodically send a message with CAN ID = 0x7FF&lt;br /&gt;
&lt;br /&gt;
=== Param Files ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;Do not use param files of ST MCU Version&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FW Ver 2.3(2) ====&lt;br /&gt;
&lt;br /&gt;
* NOTE: When updating FW to version 2.3(2) or later, parameter updates are recommended for the following models.&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Param/PARAM-MD145SW_CAN_AT-2025_11_07_03_Pub.zip PARAM-MD145SW_CAN_AT-2025_11_07_03_Pub.zip]&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Param/PARAM-MD250MW_CAN_AT-2025_08_13_01_Pub.zip PARAM-MD250MW_CAN_AT-2025_08_13_01_Pub.zip]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== ST MCU Version ==&lt;br /&gt;
&lt;br /&gt;
=== UI ===&lt;br /&gt;
&lt;br /&gt;
==== Parameter Writer ====&lt;br /&gt;
&lt;br /&gt;
* V2.1&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN_SERVO_FACTORY_PROGRAM_2020_05_13_01-V2.1.zip CAN_SERVO_FACTORY_PROGRAM_2020_05_13_01-V2.1.zip]&lt;br /&gt;
** Product&lt;br /&gt;
*** MDxxx-CAN/DroneCAN&lt;br /&gt;
*** SG50-CAN/DroneCAN&lt;br /&gt;
*** SG33-CAN/DroneCAN&lt;br /&gt;
&lt;br /&gt;
* V2.2&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN_SERVO_FACTORY_PROGRAM_2020_11_03_01-V2.2.zip CAN_SERVO_FACTORY_PROGRAM_2020_11_03_01-V2.2.zip]&lt;br /&gt;
** Product&lt;br /&gt;
*** SG15-CAN/DroneCAN&lt;br /&gt;
*** SG20-CAN/DroneCAN&lt;br /&gt;
*** MDB961-CAN/DroneCAN&lt;br /&gt;
*** MDB77x-CAN/DroneCAN&lt;br /&gt;
&lt;br /&gt;
* Note: Download zip file and unzip for exe&lt;br /&gt;
&lt;br /&gt;
=== Parameter Files ===&lt;br /&gt;
&lt;br /&gt;
* MD-CAN/DroneCAN - Param Files: (for ST MCU Version: FW Ver &amp;lt; 1.7)&lt;br /&gt;
** MD65MG - [http://support.hitecrcd.net:7700/files/Param/MD65MG-CAN-2021_09_06_01.csv MD65MG-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD70MH - [http://support.hitecrcd.net:7700/files/Param/MD70MH-CAN-2021_09_06_01.csv MD70MH-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD85MG - [http://support.hitecrcd.net:7700/files/Param/MD85MG-CAN-2021_09_28_01.csv MD85MG-CAN-2021_09_28_01.csv]&lt;br /&gt;
** MD89MW - [http://support.hitecrcd.net:7700/files/Param/MD89MW-CAN-2021_09_09_01.csv MD89MW-CAN-2021_09_09_01.csv]&lt;br /&gt;
** MD145SW - [http://support.hitecrcd.net:7700/files/Param/MD145SW-CAN-2021_09_06_01.csv MD145SW-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD245MW - [http://support.hitecrcd.net:7700/files/Param/MD245MW-CAN-2021_09_06_01.csv MD245MW-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD250MW - [http://support.hitecrcd.net:7700/files/Param/MD250MW-CAN-2021_09_06_01.csv MD250MW-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD940MW - [http://support.hitecrcd.net:7700/files/Param/MD940SW-CAN-2021_09_16_01.csv MD940SW-CAN-2021_09_16_01.csv]&lt;br /&gt;
** MD950MW - [http://support.hitecrcd.net:7700/files/Param/MD950TW-CAN-2021_11_28_02.csv MD950TW-CAN-2021_11_28_02.csv]&lt;br /&gt;
** Changed&lt;br /&gt;
*** Default Travel Range: +/- 60 deg&lt;br /&gt;
**** Reg 176 : 16300 -&amp;gt; 10922&lt;br /&gt;
**** Reg 178 : 91 -&amp;gt; 5462&lt;br /&gt;
*** PID Values changed for Ver 1.5(2)+&lt;br /&gt;
&lt;br /&gt;
* SG50-CAN/DroneCAN - Param File: (for ST MCU Version: FW Ver &amp;lt; 1.7)&lt;br /&gt;
** 24V - [http://support.hitecrcd.net:7700/files/Param/PARAM_SG50CAN_2021_11_23_01.csv PARAM_SG50CAN_2021_11_23_01.csv]&lt;br /&gt;
*** Changed&lt;br /&gt;
**** Default Travel Range: +/- 60 deg&lt;br /&gt;
***** Reg 176 : 16300 -&amp;gt; 10922&lt;br /&gt;
***** Reg 178 : 91 -&amp;gt; 5462&lt;br /&gt;
&lt;br /&gt;
* SG33-CAN/DroneCAN - Param File: (for ST MCU Version: FW Ver &amp;lt; 1.7)&lt;br /&gt;
** 12V, Torque Type - [http://support.hitecrcd.net:7700/files/Param/PARAM_SG33CAN_2021_09_07_01.csv PARAM_SG33CAN_2021_09_07_01.csv]&lt;br /&gt;
*** Changed&lt;br /&gt;
**** Default Travel Range: +/- 60 deg&lt;br /&gt;
***** Reg 176 : 16300 -&amp;gt; 10922&lt;br /&gt;
***** Reg 178 : 91 -&amp;gt; 5462&lt;br /&gt;
**** PID Values changed for Ver 1.5(2)&lt;br /&gt;
***** Reg 138 : 3700 -&amp;gt; 3700&lt;br /&gt;
***** Reg 140 : 50 -&amp;gt; 0&lt;br /&gt;
***** Reg 142 : 0 -&amp;gt; 0&lt;br /&gt;
***** Reg 144 : 0 -&amp;gt; 550&lt;br /&gt;
&lt;br /&gt;
* Note:&lt;br /&gt;
** FW Ver 1.5(2) 미만에서 1.5(2) 이상으로 FW 업데이트하고, Param Write 작업을 한 이후에는,&lt;br /&gt;
** FW Ver 1.5(2) 미만으로 되돌리는 경우에는 동작이 이상하게 될 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.5(2) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== MD ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_MD2_B2_CAN_20_21_09_06_01_V_11_05_02.xhy App_MD2_B2_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_MD2_B2_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_MD2_B2_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
==== SG50 ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG50_CAN_20_21_09_06_01_V_11_05_02.xhy App_SG50_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG50_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_SG50_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
==== SG33 ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG33_CAN_20_21_09_06_01_V_11_05_02.xhy App_SG33_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG33_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_SG33_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
==== SG20 / MDB961WP ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG20_CAN_20_21_09_06_01_V_11_05_02.xhy App_SG20_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG20_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_SG20_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(2) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== Caution for DroneCAN ====&lt;br /&gt;
&lt;br /&gt;
* 1.6(2) 미만에서는 RUN MODE 가 무시되었지만, 1.6(2) 에서 RUN MODE 에 따라 MULTI-TURN 이 가능하게 되므로, RUN MODE 를 반드시 확인하기 바랍니다.&lt;br /&gt;
** [http://support.hitecrcd.net:7700/index.php/CanServo/MODE/RUN RUN MODE]&lt;br /&gt;
* Under 1.6(2), RUN MODE is ignored, but in 1.6(2), MULTI-TURN is enabled according to RUN MODE, so be sure to check RUN MODE.&lt;br /&gt;
** [http://support.hitecrcd.net:7700/index.php/CanServo/MODE/RUN/en RUN MODE/en]&lt;br /&gt;
&lt;br /&gt;
==== MD ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_10_11_01_V1.6(2)/App_MD2_B2_CAN_20_22_10_11_01_V_11_06_02.zip App_MD2_B2_CAN_20_22_10_11_01_V_11_06_02.zip] - Ver 1.6(2) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_10_11_01_V1.6(2)/App_MD2_B2_UAVCAN_20_22_10_11_01_V_21_06_02.zip App_MD2_B2_UAVCAN_20_22_10_11_01_V_21_06_02.zip] - Ver 1.6(2) /U&lt;br /&gt;
&lt;br /&gt;
==== SG33 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_12_28_01_V1.6(2)/App_SG33_CAN_20_22_12_28_01_V_11_06_02.zip App_SG33_CAN_20_22_12_28_01_V_11_06_02.zip] - Ver 1.6(2) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_12_28_01_V1.6(2)/App_SG33_UAVCAN_20_22_12_28_01_V_21_06_02.zip App_SG33_UAVCAN_20_22_12_28_01_V_21_06_02.zip] - Ver 1.6(2) /U&lt;br /&gt;
&lt;br /&gt;
==== SG20 / MDB961WP ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_23_03_23_31_V1.6(2)/App_SG20_CAN_20_23_03_23_31_V_11_06_02.zip App_SG20_CAN_20_23_03_23_31_V_11_06_02.zip] - Ver 1.6(2) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_23_03_23_31_V1.6(2)/App_SG20_UAVCAN_20_23_03_23_31_V_21_06_02.zip App_SG20_UAVCAN_20_23_03_23_31_V_21_06_02.zip] - Ver 1.6(2) /U&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(3) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== SG33 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_24_04_02_01_V1.6(3)/App_SG33_CAN_20_24_04_02_01_V_11_06_03.zip App_SG33_CAN_20_24_04_02_01_V_11_06_03.zip] - Ver 1.6(3) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_23_06_09_01_V1.6(3)/App_SG33_UAVCAN_20_23_06_09_01_V_21_06_03.zip App_SG33_UAVCAN_20_23_06_09_01_V_21_06_03.zip] - Ver 1.6(3) /U&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(4) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
* NOTE: Reg 0x60 Velocity Target added. Set this reg with value of Velocity Max (reg 0x54)&lt;br /&gt;
&lt;br /&gt;
==== SG50 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_SG50_CAN,UAVCAN_20_24_11_08_01_V1.6(4).zip App_SG50_CAN,UAVCAN_20_24_11_08_01_V1.6(4).zip] - Ver 1.6(4) /C /U&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(5) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== SG50 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_SG50_CAN,UAVCAN_20_25_08_20_01_V1.6(5).zip App_SG50_CAN,UAVCAN_20_25_08_20_01_V1.6(5).zip] - Ver 1.6(5) /C /U&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/FW_Files/en&amp;diff=1975</id>
		<title>CanServo/FW Files/en</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/FW_Files/en&amp;diff=1975"/>
		<updated>2026-05-07T02:49:26Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* CAN / DroneCAN Servo Protocol */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== NOTE ==&lt;br /&gt;
&lt;br /&gt;
* These files for manual update only.&lt;br /&gt;
* &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;주의: 이곳의 파일이 최신이 아닐수 있으며, 서보에는 다른 FW 나 Param 가 들어가 있을수 있습니다.&amp;lt;/p&amp;gt;&lt;br /&gt;
* &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;NOTE: The file here may not be the latest, and the servo may contain other FW or Param.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Manual ==&lt;br /&gt;
&lt;br /&gt;
=== CAN / DroneCAN Servo Protocol ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Manual/HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_5.pdf HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_5.pdf] - FW Ver 1.4 to 2.3(5) - 260323&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Manual/HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_6.pdf HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_6.pdf] - FW Ver 1.4 to 2.3(5) - 260507&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
&lt;br /&gt;
=== AIO (All in one) UI ===&lt;br /&gt;
&lt;br /&gt;
* AIO UI ?&lt;br /&gt;
** &amp;quot;All&amp;quot; is include config, simple test, param list, fw update.&lt;br /&gt;
&lt;br /&gt;
* Versions&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_06_15_01.zip 2023-06-15]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_07_28_01.zip 2023-07-28]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_08_30_01.zip 2023-08-30] - include FW Ver 2.2 functions&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_10_05_01.zip 2023-10-05] - include FW Ver 2.3 functions&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2025_05_14_02-exe.zip 2025-05-14] - Param Window: button: save param to file&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2025_11_13_01-exe.zip 2025-11-13]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2025_11_14_01-exe.zip 2025-11-14] - Retry if read reg operation fails&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2026_01_06_01-exe.zip 2026-01-06] - include FW Ver 2.3(2) functions&lt;br /&gt;
&lt;br /&gt;
* Download file and unzip, run exe&lt;br /&gt;
* DotNet framework 4 needed&lt;br /&gt;
&lt;br /&gt;
* Manual&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/PDF/CAN-UI-2022_07_15.pdf AIO-UI-MANUAL-220715]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/PDF/CAN-UI-Write-Param-CAN-AT-2025_11_13_01.pdf AIO-UI-WRITE-PARAM-MANUAL-251113]&lt;br /&gt;
&lt;br /&gt;
=== Config &amp;amp; Test UI ===&lt;br /&gt;
&lt;br /&gt;
* HITEC-CAN-SERVO-CONFIG-2023_04_11_01.exe&lt;br /&gt;
** http://support.hitecrcd.net:7700/files/UI/HITEC-CAN-SERVO-CONFIG-2023_04_11_01.zip&lt;br /&gt;
* HITEC-CAN-SERVO-CONFIG-2023_09_11_01.exe - added option &amp;quot;Write Message Type&amp;quot;&lt;br /&gt;
** http://support.hitecrcd.net:7700/files/UI/HITEC-CAN-SERVO-CONFIG-2023_09_11_01.zip&lt;br /&gt;
* HITEC-CAN-SERVO-CONFIG-2024_12_18_01.exe - Velocity Target&lt;br /&gt;
** http://support.hitecrcd.net:7700/files/UI/HITEC-CAN-SERVO-CONFIG-2024_12_18_01.zip&lt;br /&gt;
&lt;br /&gt;
* Process&lt;br /&gt;
** Download and Unzip&lt;br /&gt;
** DotNet framework 4 needed&lt;br /&gt;
&lt;br /&gt;
=== App FW Update UI ===&lt;br /&gt;
&lt;br /&gt;
* The product platform can be identified by its firmware version.&lt;br /&gt;
** ST MCU: FW Ver &amp;lt; 1.7&lt;br /&gt;
** AT MCU: FW Ver &amp;gt;= 1.7 and FW Ver &amp;lt; 2.5&lt;br /&gt;
* FW Update&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN_UPDATE_V2-2022_09_14_01.zip CAN_UPDATE_V2-2022_09_14_01.zip]&lt;br /&gt;
** Manual&lt;br /&gt;
*** [http://support.hitecrcd.net:7700/files/PDF/CAN-SERVO-FIRMWARE-UPDATE-PROGRAM-2020_06_23_01.pdf CAN-SERVO-FIRMWARE-UPDATE-PROGRAM-2020_06_23_01.pdf]&lt;br /&gt;
** Note: ST MCU Platform&lt;br /&gt;
*** FW Ver 1.6(4) - (Reg 0x60) Velocity Target - Set this value with Velocity Max (Reg 0x54)&lt;br /&gt;
*** FW Ver 1.6(2) DroneCAN - Under 1.6(2), RUN MODE is ignored, but in 1.6(2), MULTI-TURN is enabled according to RUN MODE, so be sure to check RUN MODE&lt;br /&gt;
*** FW Ver 1.5(2) - After writing the new parameter file, downgrading below this version may result in different behavior.&lt;br /&gt;
*** FW Ver 1.3 - Unit of Velocity Max is posdiff/100msec. The unit is posdiff/msec below this version.&lt;br /&gt;
&lt;br /&gt;
=== DotNet framework 4 ===&lt;br /&gt;
* https://www.microsoft.com/en-us/download/details.aspx?id=24872 - client version&lt;br /&gt;
* https://dotnet.microsoft.com/en-us/download/dotnet-framework/thank-you/net40-web-installer - web installer version&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT MCU Version ==&lt;br /&gt;
&lt;br /&gt;
* AT Version&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.2 ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_23_09_07_01_V4.2.zip App_ATcanServo_20_23_09_07_01_V4.2.zip] - Ver 2.2 /A&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.3 ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_23_10_05_01_V4.3.zip App_ATcanServo_20_23_10_05_01_V4.3.zip] - Ver 2.3 /A&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.3(1) ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_24_01_02_01_V4.3(1).zip App_ATcanServo_20_24_01_02_01_V4.3(1).zip] - Ver 2.3(1) /A&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.3(2) ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_24_07_03_01_V4.3(2)-0.zip App_ATcanServo_20_24_07_03_01_V4.3(2)-0.zip] - Ver 2.3(2) /A&lt;br /&gt;
&lt;br /&gt;
=== NOTE ===&lt;br /&gt;
&lt;br /&gt;
* When downloading, please use a CAN ID other than 0.&lt;br /&gt;
** ex) 0x7F0&lt;br /&gt;
&lt;br /&gt;
=== NOTE ===&lt;br /&gt;
&lt;br /&gt;
* When ID is not set&lt;br /&gt;
** If either Servo ID or Node ID is 0, the servo will periodically send a message with CAN ID = 0x7FF&lt;br /&gt;
&lt;br /&gt;
=== Param Files ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;Do not use param files of ST MCU Version&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FW Ver 2.3(2) ====&lt;br /&gt;
&lt;br /&gt;
* NOTE: When updating FW to version 2.3(2) or later, parameter updates are recommended for the following models.&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Param/PARAM-MD145SW_CAN_AT-2025_11_07_03_Pub.zip PARAM-MD145SW_CAN_AT-2025_11_07_03_Pub.zip]&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Param/PARAM-MD250MW_CAN_AT-2025_08_13_01_Pub.zip PARAM-MD250MW_CAN_AT-2025_08_13_01_Pub.zip]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== ST MCU Version ==&lt;br /&gt;
&lt;br /&gt;
=== UI ===&lt;br /&gt;
&lt;br /&gt;
==== Parameter Writer ====&lt;br /&gt;
&lt;br /&gt;
* V2.1&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN_SERVO_FACTORY_PROGRAM_2020_05_13_01-V2.1.zip CAN_SERVO_FACTORY_PROGRAM_2020_05_13_01-V2.1.zip]&lt;br /&gt;
** Product&lt;br /&gt;
*** MDxxx-CAN/DroneCAN&lt;br /&gt;
*** SG50-CAN/DroneCAN&lt;br /&gt;
*** SG33-CAN/DroneCAN&lt;br /&gt;
&lt;br /&gt;
* V2.2&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN_SERVO_FACTORY_PROGRAM_2020_11_03_01-V2.2.zip CAN_SERVO_FACTORY_PROGRAM_2020_11_03_01-V2.2.zip]&lt;br /&gt;
** Product&lt;br /&gt;
*** SG15-CAN/DroneCAN&lt;br /&gt;
*** SG20-CAN/DroneCAN&lt;br /&gt;
*** MDB961-CAN/DroneCAN&lt;br /&gt;
*** MDB77x-CAN/DroneCAN&lt;br /&gt;
&lt;br /&gt;
* Note: Download zip file and unzip for exe&lt;br /&gt;
&lt;br /&gt;
=== Parameter Files ===&lt;br /&gt;
&lt;br /&gt;
* MD-CAN/DroneCAN - Param Files: (for ST MCU Version: FW Ver &amp;lt; 1.7)&lt;br /&gt;
** MD65MG - [http://support.hitecrcd.net:7700/files/Param/MD65MG-CAN-2021_09_06_01.csv MD65MG-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD70MH - [http://support.hitecrcd.net:7700/files/Param/MD70MH-CAN-2021_09_06_01.csv MD70MH-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD85MG - [http://support.hitecrcd.net:7700/files/Param/MD85MG-CAN-2021_09_28_01.csv MD85MG-CAN-2021_09_28_01.csv]&lt;br /&gt;
** MD89MW - [http://support.hitecrcd.net:7700/files/Param/MD89MW-CAN-2021_09_09_01.csv MD89MW-CAN-2021_09_09_01.csv]&lt;br /&gt;
** MD145SW - [http://support.hitecrcd.net:7700/files/Param/MD145SW-CAN-2021_09_06_01.csv MD145SW-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD245MW - [http://support.hitecrcd.net:7700/files/Param/MD245MW-CAN-2021_09_06_01.csv MD245MW-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD250MW - [http://support.hitecrcd.net:7700/files/Param/MD250MW-CAN-2021_09_06_01.csv MD250MW-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD940MW - [http://support.hitecrcd.net:7700/files/Param/MD940SW-CAN-2021_09_16_01.csv MD940SW-CAN-2021_09_16_01.csv]&lt;br /&gt;
** MD950MW - [http://support.hitecrcd.net:7700/files/Param/MD950TW-CAN-2021_11_28_02.csv MD950TW-CAN-2021_11_28_02.csv]&lt;br /&gt;
** Changed&lt;br /&gt;
*** Default Travel Range: +/- 60 deg&lt;br /&gt;
**** Reg 176 : 16300 -&amp;gt; 10922&lt;br /&gt;
**** Reg 178 : 91 -&amp;gt; 5462&lt;br /&gt;
*** PID Values changed for Ver 1.5(2)+&lt;br /&gt;
&lt;br /&gt;
* SG50-CAN/DroneCAN - Param File: (for ST MCU Version: FW Ver &amp;lt; 1.7)&lt;br /&gt;
** 24V - [http://support.hitecrcd.net:7700/files/Param/PARAM_SG50CAN_2021_11_23_01.csv PARAM_SG50CAN_2021_11_23_01.csv]&lt;br /&gt;
*** Changed&lt;br /&gt;
**** Default Travel Range: +/- 60 deg&lt;br /&gt;
***** Reg 176 : 16300 -&amp;gt; 10922&lt;br /&gt;
***** Reg 178 : 91 -&amp;gt; 5462&lt;br /&gt;
&lt;br /&gt;
* SG33-CAN/DroneCAN - Param File: (for ST MCU Version: FW Ver &amp;lt; 1.7)&lt;br /&gt;
** 12V, Torque Type - [http://support.hitecrcd.net:7700/files/Param/PARAM_SG33CAN_2021_09_07_01.csv PARAM_SG33CAN_2021_09_07_01.csv]&lt;br /&gt;
*** Changed&lt;br /&gt;
**** Default Travel Range: +/- 60 deg&lt;br /&gt;
***** Reg 176 : 16300 -&amp;gt; 10922&lt;br /&gt;
***** Reg 178 : 91 -&amp;gt; 5462&lt;br /&gt;
**** PID Values changed for Ver 1.5(2)&lt;br /&gt;
***** Reg 138 : 3700 -&amp;gt; 3700&lt;br /&gt;
***** Reg 140 : 50 -&amp;gt; 0&lt;br /&gt;
***** Reg 142 : 0 -&amp;gt; 0&lt;br /&gt;
***** Reg 144 : 0 -&amp;gt; 550&lt;br /&gt;
&lt;br /&gt;
* Note:&lt;br /&gt;
** FW Ver 1.5(2) 미만에서 1.5(2) 이상으로 FW 업데이트하고, Param Write 작업을 한 이후에는,&lt;br /&gt;
** FW Ver 1.5(2) 미만으로 되돌리는 경우에는 동작이 이상하게 될 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.5(2) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== MD ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_MD2_B2_CAN_20_21_09_06_01_V_11_05_02.xhy App_MD2_B2_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_MD2_B2_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_MD2_B2_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
==== SG50 ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG50_CAN_20_21_09_06_01_V_11_05_02.xhy App_SG50_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG50_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_SG50_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
==== SG33 ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG33_CAN_20_21_09_06_01_V_11_05_02.xhy App_SG33_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG33_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_SG33_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
==== SG20 / MDB961WP ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG20_CAN_20_21_09_06_01_V_11_05_02.xhy App_SG20_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG20_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_SG20_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(2) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== Caution for DroneCAN ====&lt;br /&gt;
&lt;br /&gt;
* 1.6(2) 미만에서는 RUN MODE 가 무시되었지만, 1.6(2) 에서 RUN MODE 에 따라 MULTI-TURN 이 가능하게 되므로, RUN MODE 를 반드시 확인하기 바랍니다.&lt;br /&gt;
** [http://support.hitecrcd.net:7700/index.php/CanServo/MODE/RUN RUN MODE]&lt;br /&gt;
* Under 1.6(2), RUN MODE is ignored, but in 1.6(2), MULTI-TURN is enabled according to RUN MODE, so be sure to check RUN MODE.&lt;br /&gt;
** [http://support.hitecrcd.net:7700/index.php/CanServo/MODE/RUN/en RUN MODE/en]&lt;br /&gt;
&lt;br /&gt;
==== MD ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_10_11_01_V1.6(2)/App_MD2_B2_CAN_20_22_10_11_01_V_11_06_02.zip App_MD2_B2_CAN_20_22_10_11_01_V_11_06_02.zip] - Ver 1.6(2) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_10_11_01_V1.6(2)/App_MD2_B2_UAVCAN_20_22_10_11_01_V_21_06_02.zip App_MD2_B2_UAVCAN_20_22_10_11_01_V_21_06_02.zip] - Ver 1.6(2) /U&lt;br /&gt;
&lt;br /&gt;
==== SG33 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_12_28_01_V1.6(2)/App_SG33_CAN_20_22_12_28_01_V_11_06_02.zip App_SG33_CAN_20_22_12_28_01_V_11_06_02.zip] - Ver 1.6(2) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_12_28_01_V1.6(2)/App_SG33_UAVCAN_20_22_12_28_01_V_21_06_02.zip App_SG33_UAVCAN_20_22_12_28_01_V_21_06_02.zip] - Ver 1.6(2) /U&lt;br /&gt;
&lt;br /&gt;
==== SG20 / MDB961WP ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_23_03_23_31_V1.6(2)/App_SG20_CAN_20_23_03_23_31_V_11_06_02.zip App_SG20_CAN_20_23_03_23_31_V_11_06_02.zip] - Ver 1.6(2) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_23_03_23_31_V1.6(2)/App_SG20_UAVCAN_20_23_03_23_31_V_21_06_02.zip App_SG20_UAVCAN_20_23_03_23_31_V_21_06_02.zip] - Ver 1.6(2) /U&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(3) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== SG33 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_24_04_02_01_V1.6(3)/App_SG33_CAN_20_24_04_02_01_V_11_06_03.zip App_SG33_CAN_20_24_04_02_01_V_11_06_03.zip] - Ver 1.6(3) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_23_06_09_01_V1.6(3)/App_SG33_UAVCAN_20_23_06_09_01_V_21_06_03.zip App_SG33_UAVCAN_20_23_06_09_01_V_21_06_03.zip] - Ver 1.6(3) /U&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(4) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
* NOTE: Reg 0x60 Velocity Target added. Set this reg with value of Velocity Max (reg 0x54)&lt;br /&gt;
&lt;br /&gt;
==== SG50 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_SG50_CAN,UAVCAN_20_24_11_08_01_V1.6(4).zip App_SG50_CAN,UAVCAN_20_24_11_08_01_V1.6(4).zip] - Ver 1.6(4) /C /U&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(5) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== SG50 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_SG50_CAN,UAVCAN_20_25_08_20_01_V1.6(5).zip App_SG50_CAN,UAVCAN_20_25_08_20_01_V1.6(5).zip] - Ver 1.6(5) /C /U&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/FW_Files/en&amp;diff=1974</id>
		<title>CanServo/FW Files/en</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/FW_Files/en&amp;diff=1974"/>
		<updated>2026-05-07T02:32:28Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* CAN / DroneCAN Servo Protocol */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== NOTE ==&lt;br /&gt;
&lt;br /&gt;
* These files for manual update only.&lt;br /&gt;
* &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;주의: 이곳의 파일이 최신이 아닐수 있으며, 서보에는 다른 FW 나 Param 가 들어가 있을수 있습니다.&amp;lt;/p&amp;gt;&lt;br /&gt;
* &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;NOTE: The file here may not be the latest, and the servo may contain other FW or Param.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Manual ==&lt;br /&gt;
&lt;br /&gt;
=== CAN / DroneCAN Servo Protocol ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Manual/HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_5.pdf HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_5.pdf] - FW Ver 1.4 to 2.3(5) - 260323&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
&lt;br /&gt;
=== AIO (All in one) UI ===&lt;br /&gt;
&lt;br /&gt;
* AIO UI ?&lt;br /&gt;
** &amp;quot;All&amp;quot; is include config, simple test, param list, fw update.&lt;br /&gt;
&lt;br /&gt;
* Versions&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_06_15_01.zip 2023-06-15]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_07_28_01.zip 2023-07-28]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_08_30_01.zip 2023-08-30] - include FW Ver 2.2 functions&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_10_05_01.zip 2023-10-05] - include FW Ver 2.3 functions&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2025_05_14_02-exe.zip 2025-05-14] - Param Window: button: save param to file&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2025_11_13_01-exe.zip 2025-11-13]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2025_11_14_01-exe.zip 2025-11-14] - Retry if read reg operation fails&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2026_01_06_01-exe.zip 2026-01-06] - include FW Ver 2.3(2) functions&lt;br /&gt;
&lt;br /&gt;
* Download file and unzip, run exe&lt;br /&gt;
* DotNet framework 4 needed&lt;br /&gt;
&lt;br /&gt;
* Manual&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/PDF/CAN-UI-2022_07_15.pdf AIO-UI-MANUAL-220715]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/PDF/CAN-UI-Write-Param-CAN-AT-2025_11_13_01.pdf AIO-UI-WRITE-PARAM-MANUAL-251113]&lt;br /&gt;
&lt;br /&gt;
=== Config &amp;amp; Test UI ===&lt;br /&gt;
&lt;br /&gt;
* HITEC-CAN-SERVO-CONFIG-2023_04_11_01.exe&lt;br /&gt;
** http://support.hitecrcd.net:7700/files/UI/HITEC-CAN-SERVO-CONFIG-2023_04_11_01.zip&lt;br /&gt;
* HITEC-CAN-SERVO-CONFIG-2023_09_11_01.exe - added option &amp;quot;Write Message Type&amp;quot;&lt;br /&gt;
** http://support.hitecrcd.net:7700/files/UI/HITEC-CAN-SERVO-CONFIG-2023_09_11_01.zip&lt;br /&gt;
* HITEC-CAN-SERVO-CONFIG-2024_12_18_01.exe - Velocity Target&lt;br /&gt;
** http://support.hitecrcd.net:7700/files/UI/HITEC-CAN-SERVO-CONFIG-2024_12_18_01.zip&lt;br /&gt;
&lt;br /&gt;
* Process&lt;br /&gt;
** Download and Unzip&lt;br /&gt;
** DotNet framework 4 needed&lt;br /&gt;
&lt;br /&gt;
=== App FW Update UI ===&lt;br /&gt;
&lt;br /&gt;
* The product platform can be identified by its firmware version.&lt;br /&gt;
** ST MCU: FW Ver &amp;lt; 1.7&lt;br /&gt;
** AT MCU: FW Ver &amp;gt;= 1.7 and FW Ver &amp;lt; 2.5&lt;br /&gt;
* FW Update&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN_UPDATE_V2-2022_09_14_01.zip CAN_UPDATE_V2-2022_09_14_01.zip]&lt;br /&gt;
** Manual&lt;br /&gt;
*** [http://support.hitecrcd.net:7700/files/PDF/CAN-SERVO-FIRMWARE-UPDATE-PROGRAM-2020_06_23_01.pdf CAN-SERVO-FIRMWARE-UPDATE-PROGRAM-2020_06_23_01.pdf]&lt;br /&gt;
** Note: ST MCU Platform&lt;br /&gt;
*** FW Ver 1.6(4) - (Reg 0x60) Velocity Target - Set this value with Velocity Max (Reg 0x54)&lt;br /&gt;
*** FW Ver 1.6(2) DroneCAN - Under 1.6(2), RUN MODE is ignored, but in 1.6(2), MULTI-TURN is enabled according to RUN MODE, so be sure to check RUN MODE&lt;br /&gt;
*** FW Ver 1.5(2) - After writing the new parameter file, downgrading below this version may result in different behavior.&lt;br /&gt;
*** FW Ver 1.3 - Unit of Velocity Max is posdiff/100msec. The unit is posdiff/msec below this version.&lt;br /&gt;
&lt;br /&gt;
=== DotNet framework 4 ===&lt;br /&gt;
* https://www.microsoft.com/en-us/download/details.aspx?id=24872 - client version&lt;br /&gt;
* https://dotnet.microsoft.com/en-us/download/dotnet-framework/thank-you/net40-web-installer - web installer version&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT MCU Version ==&lt;br /&gt;
&lt;br /&gt;
* AT Version&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.2 ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_23_09_07_01_V4.2.zip App_ATcanServo_20_23_09_07_01_V4.2.zip] - Ver 2.2 /A&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.3 ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_23_10_05_01_V4.3.zip App_ATcanServo_20_23_10_05_01_V4.3.zip] - Ver 2.3 /A&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.3(1) ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_24_01_02_01_V4.3(1).zip App_ATcanServo_20_24_01_02_01_V4.3(1).zip] - Ver 2.3(1) /A&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.3(2) ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_24_07_03_01_V4.3(2)-0.zip App_ATcanServo_20_24_07_03_01_V4.3(2)-0.zip] - Ver 2.3(2) /A&lt;br /&gt;
&lt;br /&gt;
=== NOTE ===&lt;br /&gt;
&lt;br /&gt;
* When downloading, please use a CAN ID other than 0.&lt;br /&gt;
** ex) 0x7F0&lt;br /&gt;
&lt;br /&gt;
=== NOTE ===&lt;br /&gt;
&lt;br /&gt;
* When ID is not set&lt;br /&gt;
** If either Servo ID or Node ID is 0, the servo will periodically send a message with CAN ID = 0x7FF&lt;br /&gt;
&lt;br /&gt;
=== Param Files ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;Do not use param files of ST MCU Version&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FW Ver 2.3(2) ====&lt;br /&gt;
&lt;br /&gt;
* NOTE: When updating FW to version 2.3(2) or later, parameter updates are recommended for the following models.&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Param/PARAM-MD145SW_CAN_AT-2025_11_07_03_Pub.zip PARAM-MD145SW_CAN_AT-2025_11_07_03_Pub.zip]&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Param/PARAM-MD250MW_CAN_AT-2025_08_13_01_Pub.zip PARAM-MD250MW_CAN_AT-2025_08_13_01_Pub.zip]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== ST MCU Version ==&lt;br /&gt;
&lt;br /&gt;
=== UI ===&lt;br /&gt;
&lt;br /&gt;
==== Parameter Writer ====&lt;br /&gt;
&lt;br /&gt;
* V2.1&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN_SERVO_FACTORY_PROGRAM_2020_05_13_01-V2.1.zip CAN_SERVO_FACTORY_PROGRAM_2020_05_13_01-V2.1.zip]&lt;br /&gt;
** Product&lt;br /&gt;
*** MDxxx-CAN/DroneCAN&lt;br /&gt;
*** SG50-CAN/DroneCAN&lt;br /&gt;
*** SG33-CAN/DroneCAN&lt;br /&gt;
&lt;br /&gt;
* V2.2&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN_SERVO_FACTORY_PROGRAM_2020_11_03_01-V2.2.zip CAN_SERVO_FACTORY_PROGRAM_2020_11_03_01-V2.2.zip]&lt;br /&gt;
** Product&lt;br /&gt;
*** SG15-CAN/DroneCAN&lt;br /&gt;
*** SG20-CAN/DroneCAN&lt;br /&gt;
*** MDB961-CAN/DroneCAN&lt;br /&gt;
*** MDB77x-CAN/DroneCAN&lt;br /&gt;
&lt;br /&gt;
* Note: Download zip file and unzip for exe&lt;br /&gt;
&lt;br /&gt;
=== Parameter Files ===&lt;br /&gt;
&lt;br /&gt;
* MD-CAN/DroneCAN - Param Files: (for ST MCU Version: FW Ver &amp;lt; 1.7)&lt;br /&gt;
** MD65MG - [http://support.hitecrcd.net:7700/files/Param/MD65MG-CAN-2021_09_06_01.csv MD65MG-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD70MH - [http://support.hitecrcd.net:7700/files/Param/MD70MH-CAN-2021_09_06_01.csv MD70MH-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD85MG - [http://support.hitecrcd.net:7700/files/Param/MD85MG-CAN-2021_09_28_01.csv MD85MG-CAN-2021_09_28_01.csv]&lt;br /&gt;
** MD89MW - [http://support.hitecrcd.net:7700/files/Param/MD89MW-CAN-2021_09_09_01.csv MD89MW-CAN-2021_09_09_01.csv]&lt;br /&gt;
** MD145SW - [http://support.hitecrcd.net:7700/files/Param/MD145SW-CAN-2021_09_06_01.csv MD145SW-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD245MW - [http://support.hitecrcd.net:7700/files/Param/MD245MW-CAN-2021_09_06_01.csv MD245MW-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD250MW - [http://support.hitecrcd.net:7700/files/Param/MD250MW-CAN-2021_09_06_01.csv MD250MW-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD940MW - [http://support.hitecrcd.net:7700/files/Param/MD940SW-CAN-2021_09_16_01.csv MD940SW-CAN-2021_09_16_01.csv]&lt;br /&gt;
** MD950MW - [http://support.hitecrcd.net:7700/files/Param/MD950TW-CAN-2021_11_28_02.csv MD950TW-CAN-2021_11_28_02.csv]&lt;br /&gt;
** Changed&lt;br /&gt;
*** Default Travel Range: +/- 60 deg&lt;br /&gt;
**** Reg 176 : 16300 -&amp;gt; 10922&lt;br /&gt;
**** Reg 178 : 91 -&amp;gt; 5462&lt;br /&gt;
*** PID Values changed for Ver 1.5(2)+&lt;br /&gt;
&lt;br /&gt;
* SG50-CAN/DroneCAN - Param File: (for ST MCU Version: FW Ver &amp;lt; 1.7)&lt;br /&gt;
** 24V - [http://support.hitecrcd.net:7700/files/Param/PARAM_SG50CAN_2021_11_23_01.csv PARAM_SG50CAN_2021_11_23_01.csv]&lt;br /&gt;
*** Changed&lt;br /&gt;
**** Default Travel Range: +/- 60 deg&lt;br /&gt;
***** Reg 176 : 16300 -&amp;gt; 10922&lt;br /&gt;
***** Reg 178 : 91 -&amp;gt; 5462&lt;br /&gt;
&lt;br /&gt;
* SG33-CAN/DroneCAN - Param File: (for ST MCU Version: FW Ver &amp;lt; 1.7)&lt;br /&gt;
** 12V, Torque Type - [http://support.hitecrcd.net:7700/files/Param/PARAM_SG33CAN_2021_09_07_01.csv PARAM_SG33CAN_2021_09_07_01.csv]&lt;br /&gt;
*** Changed&lt;br /&gt;
**** Default Travel Range: +/- 60 deg&lt;br /&gt;
***** Reg 176 : 16300 -&amp;gt; 10922&lt;br /&gt;
***** Reg 178 : 91 -&amp;gt; 5462&lt;br /&gt;
**** PID Values changed for Ver 1.5(2)&lt;br /&gt;
***** Reg 138 : 3700 -&amp;gt; 3700&lt;br /&gt;
***** Reg 140 : 50 -&amp;gt; 0&lt;br /&gt;
***** Reg 142 : 0 -&amp;gt; 0&lt;br /&gt;
***** Reg 144 : 0 -&amp;gt; 550&lt;br /&gt;
&lt;br /&gt;
* Note:&lt;br /&gt;
** FW Ver 1.5(2) 미만에서 1.5(2) 이상으로 FW 업데이트하고, Param Write 작업을 한 이후에는,&lt;br /&gt;
** FW Ver 1.5(2) 미만으로 되돌리는 경우에는 동작이 이상하게 될 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.5(2) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== MD ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_MD2_B2_CAN_20_21_09_06_01_V_11_05_02.xhy App_MD2_B2_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_MD2_B2_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_MD2_B2_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
==== SG50 ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG50_CAN_20_21_09_06_01_V_11_05_02.xhy App_SG50_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG50_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_SG50_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
==== SG33 ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG33_CAN_20_21_09_06_01_V_11_05_02.xhy App_SG33_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG33_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_SG33_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
==== SG20 / MDB961WP ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG20_CAN_20_21_09_06_01_V_11_05_02.xhy App_SG20_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG20_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_SG20_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(2) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== Caution for DroneCAN ====&lt;br /&gt;
&lt;br /&gt;
* 1.6(2) 미만에서는 RUN MODE 가 무시되었지만, 1.6(2) 에서 RUN MODE 에 따라 MULTI-TURN 이 가능하게 되므로, RUN MODE 를 반드시 확인하기 바랍니다.&lt;br /&gt;
** [http://support.hitecrcd.net:7700/index.php/CanServo/MODE/RUN RUN MODE]&lt;br /&gt;
* Under 1.6(2), RUN MODE is ignored, but in 1.6(2), MULTI-TURN is enabled according to RUN MODE, so be sure to check RUN MODE.&lt;br /&gt;
** [http://support.hitecrcd.net:7700/index.php/CanServo/MODE/RUN/en RUN MODE/en]&lt;br /&gt;
&lt;br /&gt;
==== MD ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_10_11_01_V1.6(2)/App_MD2_B2_CAN_20_22_10_11_01_V_11_06_02.zip App_MD2_B2_CAN_20_22_10_11_01_V_11_06_02.zip] - Ver 1.6(2) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_10_11_01_V1.6(2)/App_MD2_B2_UAVCAN_20_22_10_11_01_V_21_06_02.zip App_MD2_B2_UAVCAN_20_22_10_11_01_V_21_06_02.zip] - Ver 1.6(2) /U&lt;br /&gt;
&lt;br /&gt;
==== SG33 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_12_28_01_V1.6(2)/App_SG33_CAN_20_22_12_28_01_V_11_06_02.zip App_SG33_CAN_20_22_12_28_01_V_11_06_02.zip] - Ver 1.6(2) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_12_28_01_V1.6(2)/App_SG33_UAVCAN_20_22_12_28_01_V_21_06_02.zip App_SG33_UAVCAN_20_22_12_28_01_V_21_06_02.zip] - Ver 1.6(2) /U&lt;br /&gt;
&lt;br /&gt;
==== SG20 / MDB961WP ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_23_03_23_31_V1.6(2)/App_SG20_CAN_20_23_03_23_31_V_11_06_02.zip App_SG20_CAN_20_23_03_23_31_V_11_06_02.zip] - Ver 1.6(2) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_23_03_23_31_V1.6(2)/App_SG20_UAVCAN_20_23_03_23_31_V_21_06_02.zip App_SG20_UAVCAN_20_23_03_23_31_V_21_06_02.zip] - Ver 1.6(2) /U&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(3) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== SG33 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_24_04_02_01_V1.6(3)/App_SG33_CAN_20_24_04_02_01_V_11_06_03.zip App_SG33_CAN_20_24_04_02_01_V_11_06_03.zip] - Ver 1.6(3) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_23_06_09_01_V1.6(3)/App_SG33_UAVCAN_20_23_06_09_01_V_21_06_03.zip App_SG33_UAVCAN_20_23_06_09_01_V_21_06_03.zip] - Ver 1.6(3) /U&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(4) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
* NOTE: Reg 0x60 Velocity Target added. Set this reg with value of Velocity Max (reg 0x54)&lt;br /&gt;
&lt;br /&gt;
==== SG50 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_SG50_CAN,UAVCAN_20_24_11_08_01_V1.6(4).zip App_SG50_CAN,UAVCAN_20_24_11_08_01_V1.6(4).zip] - Ver 1.6(4) /C /U&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(5) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== SG50 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_SG50_CAN,UAVCAN_20_25_08_20_01_V1.6(5).zip App_SG50_CAN,UAVCAN_20_25_08_20_01_V1.6(5).zip] - Ver 1.6(5) /C /U&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/FW_Files/en&amp;diff=1973</id>
		<title>CanServo/FW Files/en</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/FW_Files/en&amp;diff=1973"/>
		<updated>2026-05-06T01:38:03Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* CAN / DroneCAN Servo Protocol */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== NOTE ==&lt;br /&gt;
&lt;br /&gt;
* These files for manual update only.&lt;br /&gt;
* &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;주의: 이곳의 파일이 최신이 아닐수 있으며, 서보에는 다른 FW 나 Param 가 들어가 있을수 있습니다.&amp;lt;/p&amp;gt;&lt;br /&gt;
* &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;NOTE: The file here may not be the latest, and the servo may contain other FW or Param.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Manual ==&lt;br /&gt;
&lt;br /&gt;
=== CAN / DroneCAN Servo Protocol ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Manual/HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_5.pdf HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_5.pdf] - FW Ver 1.4 to 2.3(5) - 260323&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Manual/HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_6.pdf HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_6.pdf] - FW Ver 1.4 to 2.3(5) - 260506&lt;br /&gt;
** Register Address Fixed: Motor Temper. Deg Value&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
&lt;br /&gt;
=== AIO (All in one) UI ===&lt;br /&gt;
&lt;br /&gt;
* AIO UI ?&lt;br /&gt;
** &amp;quot;All&amp;quot; is include config, simple test, param list, fw update.&lt;br /&gt;
&lt;br /&gt;
* Versions&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_06_15_01.zip 2023-06-15]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_07_28_01.zip 2023-07-28]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_08_30_01.zip 2023-08-30] - include FW Ver 2.2 functions&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_10_05_01.zip 2023-10-05] - include FW Ver 2.3 functions&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2025_05_14_02-exe.zip 2025-05-14] - Param Window: button: save param to file&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2025_11_13_01-exe.zip 2025-11-13]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2025_11_14_01-exe.zip 2025-11-14] - Retry if read reg operation fails&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2026_01_06_01-exe.zip 2026-01-06] - include FW Ver 2.3(2) functions&lt;br /&gt;
&lt;br /&gt;
* Download file and unzip, run exe&lt;br /&gt;
* DotNet framework 4 needed&lt;br /&gt;
&lt;br /&gt;
* Manual&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/PDF/CAN-UI-2022_07_15.pdf AIO-UI-MANUAL-220715]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/PDF/CAN-UI-Write-Param-CAN-AT-2025_11_13_01.pdf AIO-UI-WRITE-PARAM-MANUAL-251113]&lt;br /&gt;
&lt;br /&gt;
=== Config &amp;amp; Test UI ===&lt;br /&gt;
&lt;br /&gt;
* HITEC-CAN-SERVO-CONFIG-2023_04_11_01.exe&lt;br /&gt;
** http://support.hitecrcd.net:7700/files/UI/HITEC-CAN-SERVO-CONFIG-2023_04_11_01.zip&lt;br /&gt;
* HITEC-CAN-SERVO-CONFIG-2023_09_11_01.exe - added option &amp;quot;Write Message Type&amp;quot;&lt;br /&gt;
** http://support.hitecrcd.net:7700/files/UI/HITEC-CAN-SERVO-CONFIG-2023_09_11_01.zip&lt;br /&gt;
* HITEC-CAN-SERVO-CONFIG-2024_12_18_01.exe - Velocity Target&lt;br /&gt;
** http://support.hitecrcd.net:7700/files/UI/HITEC-CAN-SERVO-CONFIG-2024_12_18_01.zip&lt;br /&gt;
&lt;br /&gt;
* Process&lt;br /&gt;
** Download and Unzip&lt;br /&gt;
** DotNet framework 4 needed&lt;br /&gt;
&lt;br /&gt;
=== App FW Update UI ===&lt;br /&gt;
&lt;br /&gt;
* The product platform can be identified by its firmware version.&lt;br /&gt;
** ST MCU: FW Ver &amp;lt; 1.7&lt;br /&gt;
** AT MCU: FW Ver &amp;gt;= 1.7 and FW Ver &amp;lt; 2.5&lt;br /&gt;
* FW Update&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN_UPDATE_V2-2022_09_14_01.zip CAN_UPDATE_V2-2022_09_14_01.zip]&lt;br /&gt;
** Manual&lt;br /&gt;
*** [http://support.hitecrcd.net:7700/files/PDF/CAN-SERVO-FIRMWARE-UPDATE-PROGRAM-2020_06_23_01.pdf CAN-SERVO-FIRMWARE-UPDATE-PROGRAM-2020_06_23_01.pdf]&lt;br /&gt;
** Note: ST MCU Platform&lt;br /&gt;
*** FW Ver 1.6(4) - (Reg 0x60) Velocity Target - Set this value with Velocity Max (Reg 0x54)&lt;br /&gt;
*** FW Ver 1.6(2) DroneCAN - Under 1.6(2), RUN MODE is ignored, but in 1.6(2), MULTI-TURN is enabled according to RUN MODE, so be sure to check RUN MODE&lt;br /&gt;
*** FW Ver 1.5(2) - After writing the new parameter file, downgrading below this version may result in different behavior.&lt;br /&gt;
*** FW Ver 1.3 - Unit of Velocity Max is posdiff/100msec. The unit is posdiff/msec below this version.&lt;br /&gt;
&lt;br /&gt;
=== DotNet framework 4 ===&lt;br /&gt;
* https://www.microsoft.com/en-us/download/details.aspx?id=24872 - client version&lt;br /&gt;
* https://dotnet.microsoft.com/en-us/download/dotnet-framework/thank-you/net40-web-installer - web installer version&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT MCU Version ==&lt;br /&gt;
&lt;br /&gt;
* AT Version&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.2 ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_23_09_07_01_V4.2.zip App_ATcanServo_20_23_09_07_01_V4.2.zip] - Ver 2.2 /A&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.3 ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_23_10_05_01_V4.3.zip App_ATcanServo_20_23_10_05_01_V4.3.zip] - Ver 2.3 /A&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.3(1) ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_24_01_02_01_V4.3(1).zip App_ATcanServo_20_24_01_02_01_V4.3(1).zip] - Ver 2.3(1) /A&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.3(2) ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_24_07_03_01_V4.3(2)-0.zip App_ATcanServo_20_24_07_03_01_V4.3(2)-0.zip] - Ver 2.3(2) /A&lt;br /&gt;
&lt;br /&gt;
=== NOTE ===&lt;br /&gt;
&lt;br /&gt;
* When downloading, please use a CAN ID other than 0.&lt;br /&gt;
** ex) 0x7F0&lt;br /&gt;
&lt;br /&gt;
=== NOTE ===&lt;br /&gt;
&lt;br /&gt;
* When ID is not set&lt;br /&gt;
** If either Servo ID or Node ID is 0, the servo will periodically send a message with CAN ID = 0x7FF&lt;br /&gt;
&lt;br /&gt;
=== Param Files ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;Do not use param files of ST MCU Version&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FW Ver 2.3(2) ====&lt;br /&gt;
&lt;br /&gt;
* NOTE: When updating FW to version 2.3(2) or later, parameter updates are recommended for the following models.&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Param/PARAM-MD145SW_CAN_AT-2025_11_07_03_Pub.zip PARAM-MD145SW_CAN_AT-2025_11_07_03_Pub.zip]&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Param/PARAM-MD250MW_CAN_AT-2025_08_13_01_Pub.zip PARAM-MD250MW_CAN_AT-2025_08_13_01_Pub.zip]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== ST MCU Version ==&lt;br /&gt;
&lt;br /&gt;
=== UI ===&lt;br /&gt;
&lt;br /&gt;
==== Parameter Writer ====&lt;br /&gt;
&lt;br /&gt;
* V2.1&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN_SERVO_FACTORY_PROGRAM_2020_05_13_01-V2.1.zip CAN_SERVO_FACTORY_PROGRAM_2020_05_13_01-V2.1.zip]&lt;br /&gt;
** Product&lt;br /&gt;
*** MDxxx-CAN/DroneCAN&lt;br /&gt;
*** SG50-CAN/DroneCAN&lt;br /&gt;
*** SG33-CAN/DroneCAN&lt;br /&gt;
&lt;br /&gt;
* V2.2&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN_SERVO_FACTORY_PROGRAM_2020_11_03_01-V2.2.zip CAN_SERVO_FACTORY_PROGRAM_2020_11_03_01-V2.2.zip]&lt;br /&gt;
** Product&lt;br /&gt;
*** SG15-CAN/DroneCAN&lt;br /&gt;
*** SG20-CAN/DroneCAN&lt;br /&gt;
*** MDB961-CAN/DroneCAN&lt;br /&gt;
*** MDB77x-CAN/DroneCAN&lt;br /&gt;
&lt;br /&gt;
* Note: Download zip file and unzip for exe&lt;br /&gt;
&lt;br /&gt;
=== Parameter Files ===&lt;br /&gt;
&lt;br /&gt;
* MD-CAN/DroneCAN - Param Files: (for ST MCU Version: FW Ver &amp;lt; 1.7)&lt;br /&gt;
** MD65MG - [http://support.hitecrcd.net:7700/files/Param/MD65MG-CAN-2021_09_06_01.csv MD65MG-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD70MH - [http://support.hitecrcd.net:7700/files/Param/MD70MH-CAN-2021_09_06_01.csv MD70MH-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD85MG - [http://support.hitecrcd.net:7700/files/Param/MD85MG-CAN-2021_09_28_01.csv MD85MG-CAN-2021_09_28_01.csv]&lt;br /&gt;
** MD89MW - [http://support.hitecrcd.net:7700/files/Param/MD89MW-CAN-2021_09_09_01.csv MD89MW-CAN-2021_09_09_01.csv]&lt;br /&gt;
** MD145SW - [http://support.hitecrcd.net:7700/files/Param/MD145SW-CAN-2021_09_06_01.csv MD145SW-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD245MW - [http://support.hitecrcd.net:7700/files/Param/MD245MW-CAN-2021_09_06_01.csv MD245MW-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD250MW - [http://support.hitecrcd.net:7700/files/Param/MD250MW-CAN-2021_09_06_01.csv MD250MW-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD940MW - [http://support.hitecrcd.net:7700/files/Param/MD940SW-CAN-2021_09_16_01.csv MD940SW-CAN-2021_09_16_01.csv]&lt;br /&gt;
** MD950MW - [http://support.hitecrcd.net:7700/files/Param/MD950TW-CAN-2021_11_28_02.csv MD950TW-CAN-2021_11_28_02.csv]&lt;br /&gt;
** Changed&lt;br /&gt;
*** Default Travel Range: +/- 60 deg&lt;br /&gt;
**** Reg 176 : 16300 -&amp;gt; 10922&lt;br /&gt;
**** Reg 178 : 91 -&amp;gt; 5462&lt;br /&gt;
*** PID Values changed for Ver 1.5(2)+&lt;br /&gt;
&lt;br /&gt;
* SG50-CAN/DroneCAN - Param File: (for ST MCU Version: FW Ver &amp;lt; 1.7)&lt;br /&gt;
** 24V - [http://support.hitecrcd.net:7700/files/Param/PARAM_SG50CAN_2021_11_23_01.csv PARAM_SG50CAN_2021_11_23_01.csv]&lt;br /&gt;
*** Changed&lt;br /&gt;
**** Default Travel Range: +/- 60 deg&lt;br /&gt;
***** Reg 176 : 16300 -&amp;gt; 10922&lt;br /&gt;
***** Reg 178 : 91 -&amp;gt; 5462&lt;br /&gt;
&lt;br /&gt;
* SG33-CAN/DroneCAN - Param File: (for ST MCU Version: FW Ver &amp;lt; 1.7)&lt;br /&gt;
** 12V, Torque Type - [http://support.hitecrcd.net:7700/files/Param/PARAM_SG33CAN_2021_09_07_01.csv PARAM_SG33CAN_2021_09_07_01.csv]&lt;br /&gt;
*** Changed&lt;br /&gt;
**** Default Travel Range: +/- 60 deg&lt;br /&gt;
***** Reg 176 : 16300 -&amp;gt; 10922&lt;br /&gt;
***** Reg 178 : 91 -&amp;gt; 5462&lt;br /&gt;
**** PID Values changed for Ver 1.5(2)&lt;br /&gt;
***** Reg 138 : 3700 -&amp;gt; 3700&lt;br /&gt;
***** Reg 140 : 50 -&amp;gt; 0&lt;br /&gt;
***** Reg 142 : 0 -&amp;gt; 0&lt;br /&gt;
***** Reg 144 : 0 -&amp;gt; 550&lt;br /&gt;
&lt;br /&gt;
* Note:&lt;br /&gt;
** FW Ver 1.5(2) 미만에서 1.5(2) 이상으로 FW 업데이트하고, Param Write 작업을 한 이후에는,&lt;br /&gt;
** FW Ver 1.5(2) 미만으로 되돌리는 경우에는 동작이 이상하게 될 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.5(2) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== MD ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_MD2_B2_CAN_20_21_09_06_01_V_11_05_02.xhy App_MD2_B2_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_MD2_B2_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_MD2_B2_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
==== SG50 ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG50_CAN_20_21_09_06_01_V_11_05_02.xhy App_SG50_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG50_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_SG50_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
==== SG33 ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG33_CAN_20_21_09_06_01_V_11_05_02.xhy App_SG33_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG33_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_SG33_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
==== SG20 / MDB961WP ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG20_CAN_20_21_09_06_01_V_11_05_02.xhy App_SG20_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG20_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_SG20_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(2) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== Caution for DroneCAN ====&lt;br /&gt;
&lt;br /&gt;
* 1.6(2) 미만에서는 RUN MODE 가 무시되었지만, 1.6(2) 에서 RUN MODE 에 따라 MULTI-TURN 이 가능하게 되므로, RUN MODE 를 반드시 확인하기 바랍니다.&lt;br /&gt;
** [http://support.hitecrcd.net:7700/index.php/CanServo/MODE/RUN RUN MODE]&lt;br /&gt;
* Under 1.6(2), RUN MODE is ignored, but in 1.6(2), MULTI-TURN is enabled according to RUN MODE, so be sure to check RUN MODE.&lt;br /&gt;
** [http://support.hitecrcd.net:7700/index.php/CanServo/MODE/RUN/en RUN MODE/en]&lt;br /&gt;
&lt;br /&gt;
==== MD ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_10_11_01_V1.6(2)/App_MD2_B2_CAN_20_22_10_11_01_V_11_06_02.zip App_MD2_B2_CAN_20_22_10_11_01_V_11_06_02.zip] - Ver 1.6(2) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_10_11_01_V1.6(2)/App_MD2_B2_UAVCAN_20_22_10_11_01_V_21_06_02.zip App_MD2_B2_UAVCAN_20_22_10_11_01_V_21_06_02.zip] - Ver 1.6(2) /U&lt;br /&gt;
&lt;br /&gt;
==== SG33 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_12_28_01_V1.6(2)/App_SG33_CAN_20_22_12_28_01_V_11_06_02.zip App_SG33_CAN_20_22_12_28_01_V_11_06_02.zip] - Ver 1.6(2) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_12_28_01_V1.6(2)/App_SG33_UAVCAN_20_22_12_28_01_V_21_06_02.zip App_SG33_UAVCAN_20_22_12_28_01_V_21_06_02.zip] - Ver 1.6(2) /U&lt;br /&gt;
&lt;br /&gt;
==== SG20 / MDB961WP ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_23_03_23_31_V1.6(2)/App_SG20_CAN_20_23_03_23_31_V_11_06_02.zip App_SG20_CAN_20_23_03_23_31_V_11_06_02.zip] - Ver 1.6(2) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_23_03_23_31_V1.6(2)/App_SG20_UAVCAN_20_23_03_23_31_V_21_06_02.zip App_SG20_UAVCAN_20_23_03_23_31_V_21_06_02.zip] - Ver 1.6(2) /U&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(3) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== SG33 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_24_04_02_01_V1.6(3)/App_SG33_CAN_20_24_04_02_01_V_11_06_03.zip App_SG33_CAN_20_24_04_02_01_V_11_06_03.zip] - Ver 1.6(3) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_23_06_09_01_V1.6(3)/App_SG33_UAVCAN_20_23_06_09_01_V_21_06_03.zip App_SG33_UAVCAN_20_23_06_09_01_V_21_06_03.zip] - Ver 1.6(3) /U&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(4) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
* NOTE: Reg 0x60 Velocity Target added. Set this reg with value of Velocity Max (reg 0x54)&lt;br /&gt;
&lt;br /&gt;
==== SG50 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_SG50_CAN,UAVCAN_20_24_11_08_01_V1.6(4).zip App_SG50_CAN,UAVCAN_20_24_11_08_01_V1.6(4).zip] - Ver 1.6(4) /C /U&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(5) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== SG50 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_SG50_CAN,UAVCAN_20_25_08_20_01_V1.6(5).zip App_SG50_CAN,UAVCAN_20_25_08_20_01_V1.6(5).zip] - Ver 1.6(5) /C /U&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/FW_Files/en&amp;diff=1972</id>
		<title>CanServo/FW Files/en</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/FW_Files/en&amp;diff=1972"/>
		<updated>2026-05-06T01:28:20Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* CAN / DroneCAN Servo Protocol */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== NOTE ==&lt;br /&gt;
&lt;br /&gt;
* These files for manual update only.&lt;br /&gt;
* &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;주의: 이곳의 파일이 최신이 아닐수 있으며, 서보에는 다른 FW 나 Param 가 들어가 있을수 있습니다.&amp;lt;/p&amp;gt;&lt;br /&gt;
* &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;NOTE: The file here may not be the latest, and the servo may contain other FW or Param.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Manual ==&lt;br /&gt;
&lt;br /&gt;
=== CAN / DroneCAN Servo Protocol ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Manual/HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_5.pdf HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_5.pdf] - FW Ver 1.4 to 2.3(5) - 260323&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Manual/HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_6.pdf HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_6.pdf] - FW Ver 1.4 to 2.3(5) - 260506&lt;br /&gt;
** Register Fixed: Motor Temper. Deg Value&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
&lt;br /&gt;
=== AIO (All in one) UI ===&lt;br /&gt;
&lt;br /&gt;
* AIO UI ?&lt;br /&gt;
** &amp;quot;All&amp;quot; is include config, simple test, param list, fw update.&lt;br /&gt;
&lt;br /&gt;
* Versions&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_06_15_01.zip 2023-06-15]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_07_28_01.zip 2023-07-28]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_08_30_01.zip 2023-08-30] - include FW Ver 2.2 functions&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_10_05_01.zip 2023-10-05] - include FW Ver 2.3 functions&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2025_05_14_02-exe.zip 2025-05-14] - Param Window: button: save param to file&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2025_11_13_01-exe.zip 2025-11-13]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2025_11_14_01-exe.zip 2025-11-14] - Retry if read reg operation fails&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2026_01_06_01-exe.zip 2026-01-06] - include FW Ver 2.3(2) functions&lt;br /&gt;
&lt;br /&gt;
* Download file and unzip, run exe&lt;br /&gt;
* DotNet framework 4 needed&lt;br /&gt;
&lt;br /&gt;
* Manual&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/PDF/CAN-UI-2022_07_15.pdf AIO-UI-MANUAL-220715]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/PDF/CAN-UI-Write-Param-CAN-AT-2025_11_13_01.pdf AIO-UI-WRITE-PARAM-MANUAL-251113]&lt;br /&gt;
&lt;br /&gt;
=== Config &amp;amp; Test UI ===&lt;br /&gt;
&lt;br /&gt;
* HITEC-CAN-SERVO-CONFIG-2023_04_11_01.exe&lt;br /&gt;
** http://support.hitecrcd.net:7700/files/UI/HITEC-CAN-SERVO-CONFIG-2023_04_11_01.zip&lt;br /&gt;
* HITEC-CAN-SERVO-CONFIG-2023_09_11_01.exe - added option &amp;quot;Write Message Type&amp;quot;&lt;br /&gt;
** http://support.hitecrcd.net:7700/files/UI/HITEC-CAN-SERVO-CONFIG-2023_09_11_01.zip&lt;br /&gt;
* HITEC-CAN-SERVO-CONFIG-2024_12_18_01.exe - Velocity Target&lt;br /&gt;
** http://support.hitecrcd.net:7700/files/UI/HITEC-CAN-SERVO-CONFIG-2024_12_18_01.zip&lt;br /&gt;
&lt;br /&gt;
* Process&lt;br /&gt;
** Download and Unzip&lt;br /&gt;
** DotNet framework 4 needed&lt;br /&gt;
&lt;br /&gt;
=== App FW Update UI ===&lt;br /&gt;
&lt;br /&gt;
* The product platform can be identified by its firmware version.&lt;br /&gt;
** ST MCU: FW Ver &amp;lt; 1.7&lt;br /&gt;
** AT MCU: FW Ver &amp;gt;= 1.7 and FW Ver &amp;lt; 2.5&lt;br /&gt;
* FW Update&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN_UPDATE_V2-2022_09_14_01.zip CAN_UPDATE_V2-2022_09_14_01.zip]&lt;br /&gt;
** Manual&lt;br /&gt;
*** [http://support.hitecrcd.net:7700/files/PDF/CAN-SERVO-FIRMWARE-UPDATE-PROGRAM-2020_06_23_01.pdf CAN-SERVO-FIRMWARE-UPDATE-PROGRAM-2020_06_23_01.pdf]&lt;br /&gt;
** Note: ST MCU Platform&lt;br /&gt;
*** FW Ver 1.6(4) - (Reg 0x60) Velocity Target - Set this value with Velocity Max (Reg 0x54)&lt;br /&gt;
*** FW Ver 1.6(2) DroneCAN - Under 1.6(2), RUN MODE is ignored, but in 1.6(2), MULTI-TURN is enabled according to RUN MODE, so be sure to check RUN MODE&lt;br /&gt;
*** FW Ver 1.5(2) - After writing the new parameter file, downgrading below this version may result in different behavior.&lt;br /&gt;
*** FW Ver 1.3 - Unit of Velocity Max is posdiff/100msec. The unit is posdiff/msec below this version.&lt;br /&gt;
&lt;br /&gt;
=== DotNet framework 4 ===&lt;br /&gt;
* https://www.microsoft.com/en-us/download/details.aspx?id=24872 - client version&lt;br /&gt;
* https://dotnet.microsoft.com/en-us/download/dotnet-framework/thank-you/net40-web-installer - web installer version&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT MCU Version ==&lt;br /&gt;
&lt;br /&gt;
* AT Version&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.2 ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_23_09_07_01_V4.2.zip App_ATcanServo_20_23_09_07_01_V4.2.zip] - Ver 2.2 /A&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.3 ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_23_10_05_01_V4.3.zip App_ATcanServo_20_23_10_05_01_V4.3.zip] - Ver 2.3 /A&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.3(1) ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_24_01_02_01_V4.3(1).zip App_ATcanServo_20_24_01_02_01_V4.3(1).zip] - Ver 2.3(1) /A&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.3(2) ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_24_07_03_01_V4.3(2)-0.zip App_ATcanServo_20_24_07_03_01_V4.3(2)-0.zip] - Ver 2.3(2) /A&lt;br /&gt;
&lt;br /&gt;
=== NOTE ===&lt;br /&gt;
&lt;br /&gt;
* When downloading, please use a CAN ID other than 0.&lt;br /&gt;
** ex) 0x7F0&lt;br /&gt;
&lt;br /&gt;
=== NOTE ===&lt;br /&gt;
&lt;br /&gt;
* When ID is not set&lt;br /&gt;
** If either Servo ID or Node ID is 0, the servo will periodically send a message with CAN ID = 0x7FF&lt;br /&gt;
&lt;br /&gt;
=== Param Files ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;Do not use param files of ST MCU Version&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FW Ver 2.3(2) ====&lt;br /&gt;
&lt;br /&gt;
* NOTE: When updating FW to version 2.3(2) or later, parameter updates are recommended for the following models.&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Param/PARAM-MD145SW_CAN_AT-2025_11_07_03_Pub.zip PARAM-MD145SW_CAN_AT-2025_11_07_03_Pub.zip]&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Param/PARAM-MD250MW_CAN_AT-2025_08_13_01_Pub.zip PARAM-MD250MW_CAN_AT-2025_08_13_01_Pub.zip]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== ST MCU Version ==&lt;br /&gt;
&lt;br /&gt;
=== UI ===&lt;br /&gt;
&lt;br /&gt;
==== Parameter Writer ====&lt;br /&gt;
&lt;br /&gt;
* V2.1&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN_SERVO_FACTORY_PROGRAM_2020_05_13_01-V2.1.zip CAN_SERVO_FACTORY_PROGRAM_2020_05_13_01-V2.1.zip]&lt;br /&gt;
** Product&lt;br /&gt;
*** MDxxx-CAN/DroneCAN&lt;br /&gt;
*** SG50-CAN/DroneCAN&lt;br /&gt;
*** SG33-CAN/DroneCAN&lt;br /&gt;
&lt;br /&gt;
* V2.2&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN_SERVO_FACTORY_PROGRAM_2020_11_03_01-V2.2.zip CAN_SERVO_FACTORY_PROGRAM_2020_11_03_01-V2.2.zip]&lt;br /&gt;
** Product&lt;br /&gt;
*** SG15-CAN/DroneCAN&lt;br /&gt;
*** SG20-CAN/DroneCAN&lt;br /&gt;
*** MDB961-CAN/DroneCAN&lt;br /&gt;
*** MDB77x-CAN/DroneCAN&lt;br /&gt;
&lt;br /&gt;
* Note: Download zip file and unzip for exe&lt;br /&gt;
&lt;br /&gt;
=== Parameter Files ===&lt;br /&gt;
&lt;br /&gt;
* MD-CAN/DroneCAN - Param Files: (for ST MCU Version: FW Ver &amp;lt; 1.7)&lt;br /&gt;
** MD65MG - [http://support.hitecrcd.net:7700/files/Param/MD65MG-CAN-2021_09_06_01.csv MD65MG-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD70MH - [http://support.hitecrcd.net:7700/files/Param/MD70MH-CAN-2021_09_06_01.csv MD70MH-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD85MG - [http://support.hitecrcd.net:7700/files/Param/MD85MG-CAN-2021_09_28_01.csv MD85MG-CAN-2021_09_28_01.csv]&lt;br /&gt;
** MD89MW - [http://support.hitecrcd.net:7700/files/Param/MD89MW-CAN-2021_09_09_01.csv MD89MW-CAN-2021_09_09_01.csv]&lt;br /&gt;
** MD145SW - [http://support.hitecrcd.net:7700/files/Param/MD145SW-CAN-2021_09_06_01.csv MD145SW-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD245MW - [http://support.hitecrcd.net:7700/files/Param/MD245MW-CAN-2021_09_06_01.csv MD245MW-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD250MW - [http://support.hitecrcd.net:7700/files/Param/MD250MW-CAN-2021_09_06_01.csv MD250MW-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD940MW - [http://support.hitecrcd.net:7700/files/Param/MD940SW-CAN-2021_09_16_01.csv MD940SW-CAN-2021_09_16_01.csv]&lt;br /&gt;
** MD950MW - [http://support.hitecrcd.net:7700/files/Param/MD950TW-CAN-2021_11_28_02.csv MD950TW-CAN-2021_11_28_02.csv]&lt;br /&gt;
** Changed&lt;br /&gt;
*** Default Travel Range: +/- 60 deg&lt;br /&gt;
**** Reg 176 : 16300 -&amp;gt; 10922&lt;br /&gt;
**** Reg 178 : 91 -&amp;gt; 5462&lt;br /&gt;
*** PID Values changed for Ver 1.5(2)+&lt;br /&gt;
&lt;br /&gt;
* SG50-CAN/DroneCAN - Param File: (for ST MCU Version: FW Ver &amp;lt; 1.7)&lt;br /&gt;
** 24V - [http://support.hitecrcd.net:7700/files/Param/PARAM_SG50CAN_2021_11_23_01.csv PARAM_SG50CAN_2021_11_23_01.csv]&lt;br /&gt;
*** Changed&lt;br /&gt;
**** Default Travel Range: +/- 60 deg&lt;br /&gt;
***** Reg 176 : 16300 -&amp;gt; 10922&lt;br /&gt;
***** Reg 178 : 91 -&amp;gt; 5462&lt;br /&gt;
&lt;br /&gt;
* SG33-CAN/DroneCAN - Param File: (for ST MCU Version: FW Ver &amp;lt; 1.7)&lt;br /&gt;
** 12V, Torque Type - [http://support.hitecrcd.net:7700/files/Param/PARAM_SG33CAN_2021_09_07_01.csv PARAM_SG33CAN_2021_09_07_01.csv]&lt;br /&gt;
*** Changed&lt;br /&gt;
**** Default Travel Range: +/- 60 deg&lt;br /&gt;
***** Reg 176 : 16300 -&amp;gt; 10922&lt;br /&gt;
***** Reg 178 : 91 -&amp;gt; 5462&lt;br /&gt;
**** PID Values changed for Ver 1.5(2)&lt;br /&gt;
***** Reg 138 : 3700 -&amp;gt; 3700&lt;br /&gt;
***** Reg 140 : 50 -&amp;gt; 0&lt;br /&gt;
***** Reg 142 : 0 -&amp;gt; 0&lt;br /&gt;
***** Reg 144 : 0 -&amp;gt; 550&lt;br /&gt;
&lt;br /&gt;
* Note:&lt;br /&gt;
** FW Ver 1.5(2) 미만에서 1.5(2) 이상으로 FW 업데이트하고, Param Write 작업을 한 이후에는,&lt;br /&gt;
** FW Ver 1.5(2) 미만으로 되돌리는 경우에는 동작이 이상하게 될 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.5(2) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== MD ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_MD2_B2_CAN_20_21_09_06_01_V_11_05_02.xhy App_MD2_B2_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_MD2_B2_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_MD2_B2_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
==== SG50 ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG50_CAN_20_21_09_06_01_V_11_05_02.xhy App_SG50_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG50_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_SG50_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
==== SG33 ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG33_CAN_20_21_09_06_01_V_11_05_02.xhy App_SG33_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG33_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_SG33_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
==== SG20 / MDB961WP ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG20_CAN_20_21_09_06_01_V_11_05_02.xhy App_SG20_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG20_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_SG20_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(2) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== Caution for DroneCAN ====&lt;br /&gt;
&lt;br /&gt;
* 1.6(2) 미만에서는 RUN MODE 가 무시되었지만, 1.6(2) 에서 RUN MODE 에 따라 MULTI-TURN 이 가능하게 되므로, RUN MODE 를 반드시 확인하기 바랍니다.&lt;br /&gt;
** [http://support.hitecrcd.net:7700/index.php/CanServo/MODE/RUN RUN MODE]&lt;br /&gt;
* Under 1.6(2), RUN MODE is ignored, but in 1.6(2), MULTI-TURN is enabled according to RUN MODE, so be sure to check RUN MODE.&lt;br /&gt;
** [http://support.hitecrcd.net:7700/index.php/CanServo/MODE/RUN/en RUN MODE/en]&lt;br /&gt;
&lt;br /&gt;
==== MD ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_10_11_01_V1.6(2)/App_MD2_B2_CAN_20_22_10_11_01_V_11_06_02.zip App_MD2_B2_CAN_20_22_10_11_01_V_11_06_02.zip] - Ver 1.6(2) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_10_11_01_V1.6(2)/App_MD2_B2_UAVCAN_20_22_10_11_01_V_21_06_02.zip App_MD2_B2_UAVCAN_20_22_10_11_01_V_21_06_02.zip] - Ver 1.6(2) /U&lt;br /&gt;
&lt;br /&gt;
==== SG33 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_12_28_01_V1.6(2)/App_SG33_CAN_20_22_12_28_01_V_11_06_02.zip App_SG33_CAN_20_22_12_28_01_V_11_06_02.zip] - Ver 1.6(2) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_12_28_01_V1.6(2)/App_SG33_UAVCAN_20_22_12_28_01_V_21_06_02.zip App_SG33_UAVCAN_20_22_12_28_01_V_21_06_02.zip] - Ver 1.6(2) /U&lt;br /&gt;
&lt;br /&gt;
==== SG20 / MDB961WP ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_23_03_23_31_V1.6(2)/App_SG20_CAN_20_23_03_23_31_V_11_06_02.zip App_SG20_CAN_20_23_03_23_31_V_11_06_02.zip] - Ver 1.6(2) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_23_03_23_31_V1.6(2)/App_SG20_UAVCAN_20_23_03_23_31_V_21_06_02.zip App_SG20_UAVCAN_20_23_03_23_31_V_21_06_02.zip] - Ver 1.6(2) /U&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(3) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== SG33 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_24_04_02_01_V1.6(3)/App_SG33_CAN_20_24_04_02_01_V_11_06_03.zip App_SG33_CAN_20_24_04_02_01_V_11_06_03.zip] - Ver 1.6(3) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_23_06_09_01_V1.6(3)/App_SG33_UAVCAN_20_23_06_09_01_V_21_06_03.zip App_SG33_UAVCAN_20_23_06_09_01_V_21_06_03.zip] - Ver 1.6(3) /U&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(4) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
* NOTE: Reg 0x60 Velocity Target added. Set this reg with value of Velocity Max (reg 0x54)&lt;br /&gt;
&lt;br /&gt;
==== SG50 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_SG50_CAN,UAVCAN_20_24_11_08_01_V1.6(4).zip App_SG50_CAN,UAVCAN_20_24_11_08_01_V1.6(4).zip] - Ver 1.6(4) /C /U&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(5) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== SG50 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_SG50_CAN,UAVCAN_20_25_08_20_01_V1.6(5).zip App_SG50_CAN,UAVCAN_20_25_08_20_01_V1.6(5).zip] - Ver 1.6(5) /C /U&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/FW_Files/en&amp;diff=1971</id>
		<title>CanServo/FW Files/en</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/FW_Files/en&amp;diff=1971"/>
		<updated>2026-05-06T01:27:59Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* CAN / DroneCAN Servo Protocol */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== NOTE ==&lt;br /&gt;
&lt;br /&gt;
* These files for manual update only.&lt;br /&gt;
* &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;주의: 이곳의 파일이 최신이 아닐수 있으며, 서보에는 다른 FW 나 Param 가 들어가 있을수 있습니다.&amp;lt;/p&amp;gt;&lt;br /&gt;
* &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;NOTE: The file here may not be the latest, and the servo may contain other FW or Param.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Manual ==&lt;br /&gt;
&lt;br /&gt;
=== CAN / DroneCAN Servo Protocol ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Manual/HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_5.pdf HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_5.pdf] - FW Ver 1.4 to 2.3(5) - 260323&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Manual/HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_5.pdf HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_6.pdf] - FW Ver 1.4 to 2.3(5) - 260506&lt;br /&gt;
** Register Fixed: Motor Temper. Deg Value&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
&lt;br /&gt;
=== AIO (All in one) UI ===&lt;br /&gt;
&lt;br /&gt;
* AIO UI ?&lt;br /&gt;
** &amp;quot;All&amp;quot; is include config, simple test, param list, fw update.&lt;br /&gt;
&lt;br /&gt;
* Versions&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_06_15_01.zip 2023-06-15]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_07_28_01.zip 2023-07-28]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_08_30_01.zip 2023-08-30] - include FW Ver 2.2 functions&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_10_05_01.zip 2023-10-05] - include FW Ver 2.3 functions&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2025_05_14_02-exe.zip 2025-05-14] - Param Window: button: save param to file&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2025_11_13_01-exe.zip 2025-11-13]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2025_11_14_01-exe.zip 2025-11-14] - Retry if read reg operation fails&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2026_01_06_01-exe.zip 2026-01-06] - include FW Ver 2.3(2) functions&lt;br /&gt;
&lt;br /&gt;
* Download file and unzip, run exe&lt;br /&gt;
* DotNet framework 4 needed&lt;br /&gt;
&lt;br /&gt;
* Manual&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/PDF/CAN-UI-2022_07_15.pdf AIO-UI-MANUAL-220715]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/PDF/CAN-UI-Write-Param-CAN-AT-2025_11_13_01.pdf AIO-UI-WRITE-PARAM-MANUAL-251113]&lt;br /&gt;
&lt;br /&gt;
=== Config &amp;amp; Test UI ===&lt;br /&gt;
&lt;br /&gt;
* HITEC-CAN-SERVO-CONFIG-2023_04_11_01.exe&lt;br /&gt;
** http://support.hitecrcd.net:7700/files/UI/HITEC-CAN-SERVO-CONFIG-2023_04_11_01.zip&lt;br /&gt;
* HITEC-CAN-SERVO-CONFIG-2023_09_11_01.exe - added option &amp;quot;Write Message Type&amp;quot;&lt;br /&gt;
** http://support.hitecrcd.net:7700/files/UI/HITEC-CAN-SERVO-CONFIG-2023_09_11_01.zip&lt;br /&gt;
* HITEC-CAN-SERVO-CONFIG-2024_12_18_01.exe - Velocity Target&lt;br /&gt;
** http://support.hitecrcd.net:7700/files/UI/HITEC-CAN-SERVO-CONFIG-2024_12_18_01.zip&lt;br /&gt;
&lt;br /&gt;
* Process&lt;br /&gt;
** Download and Unzip&lt;br /&gt;
** DotNet framework 4 needed&lt;br /&gt;
&lt;br /&gt;
=== App FW Update UI ===&lt;br /&gt;
&lt;br /&gt;
* The product platform can be identified by its firmware version.&lt;br /&gt;
** ST MCU: FW Ver &amp;lt; 1.7&lt;br /&gt;
** AT MCU: FW Ver &amp;gt;= 1.7 and FW Ver &amp;lt; 2.5&lt;br /&gt;
* FW Update&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN_UPDATE_V2-2022_09_14_01.zip CAN_UPDATE_V2-2022_09_14_01.zip]&lt;br /&gt;
** Manual&lt;br /&gt;
*** [http://support.hitecrcd.net:7700/files/PDF/CAN-SERVO-FIRMWARE-UPDATE-PROGRAM-2020_06_23_01.pdf CAN-SERVO-FIRMWARE-UPDATE-PROGRAM-2020_06_23_01.pdf]&lt;br /&gt;
** Note: ST MCU Platform&lt;br /&gt;
*** FW Ver 1.6(4) - (Reg 0x60) Velocity Target - Set this value with Velocity Max (Reg 0x54)&lt;br /&gt;
*** FW Ver 1.6(2) DroneCAN - Under 1.6(2), RUN MODE is ignored, but in 1.6(2), MULTI-TURN is enabled according to RUN MODE, so be sure to check RUN MODE&lt;br /&gt;
*** FW Ver 1.5(2) - After writing the new parameter file, downgrading below this version may result in different behavior.&lt;br /&gt;
*** FW Ver 1.3 - Unit of Velocity Max is posdiff/100msec. The unit is posdiff/msec below this version.&lt;br /&gt;
&lt;br /&gt;
=== DotNet framework 4 ===&lt;br /&gt;
* https://www.microsoft.com/en-us/download/details.aspx?id=24872 - client version&lt;br /&gt;
* https://dotnet.microsoft.com/en-us/download/dotnet-framework/thank-you/net40-web-installer - web installer version&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT MCU Version ==&lt;br /&gt;
&lt;br /&gt;
* AT Version&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.2 ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_23_09_07_01_V4.2.zip App_ATcanServo_20_23_09_07_01_V4.2.zip] - Ver 2.2 /A&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.3 ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_23_10_05_01_V4.3.zip App_ATcanServo_20_23_10_05_01_V4.3.zip] - Ver 2.3 /A&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.3(1) ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_24_01_02_01_V4.3(1).zip App_ATcanServo_20_24_01_02_01_V4.3(1).zip] - Ver 2.3(1) /A&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.3(2) ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_24_07_03_01_V4.3(2)-0.zip App_ATcanServo_20_24_07_03_01_V4.3(2)-0.zip] - Ver 2.3(2) /A&lt;br /&gt;
&lt;br /&gt;
=== NOTE ===&lt;br /&gt;
&lt;br /&gt;
* When downloading, please use a CAN ID other than 0.&lt;br /&gt;
** ex) 0x7F0&lt;br /&gt;
&lt;br /&gt;
=== NOTE ===&lt;br /&gt;
&lt;br /&gt;
* When ID is not set&lt;br /&gt;
** If either Servo ID or Node ID is 0, the servo will periodically send a message with CAN ID = 0x7FF&lt;br /&gt;
&lt;br /&gt;
=== Param Files ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;Do not use param files of ST MCU Version&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FW Ver 2.3(2) ====&lt;br /&gt;
&lt;br /&gt;
* NOTE: When updating FW to version 2.3(2) or later, parameter updates are recommended for the following models.&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Param/PARAM-MD145SW_CAN_AT-2025_11_07_03_Pub.zip PARAM-MD145SW_CAN_AT-2025_11_07_03_Pub.zip]&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Param/PARAM-MD250MW_CAN_AT-2025_08_13_01_Pub.zip PARAM-MD250MW_CAN_AT-2025_08_13_01_Pub.zip]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== ST MCU Version ==&lt;br /&gt;
&lt;br /&gt;
=== UI ===&lt;br /&gt;
&lt;br /&gt;
==== Parameter Writer ====&lt;br /&gt;
&lt;br /&gt;
* V2.1&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN_SERVO_FACTORY_PROGRAM_2020_05_13_01-V2.1.zip CAN_SERVO_FACTORY_PROGRAM_2020_05_13_01-V2.1.zip]&lt;br /&gt;
** Product&lt;br /&gt;
*** MDxxx-CAN/DroneCAN&lt;br /&gt;
*** SG50-CAN/DroneCAN&lt;br /&gt;
*** SG33-CAN/DroneCAN&lt;br /&gt;
&lt;br /&gt;
* V2.2&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN_SERVO_FACTORY_PROGRAM_2020_11_03_01-V2.2.zip CAN_SERVO_FACTORY_PROGRAM_2020_11_03_01-V2.2.zip]&lt;br /&gt;
** Product&lt;br /&gt;
*** SG15-CAN/DroneCAN&lt;br /&gt;
*** SG20-CAN/DroneCAN&lt;br /&gt;
*** MDB961-CAN/DroneCAN&lt;br /&gt;
*** MDB77x-CAN/DroneCAN&lt;br /&gt;
&lt;br /&gt;
* Note: Download zip file and unzip for exe&lt;br /&gt;
&lt;br /&gt;
=== Parameter Files ===&lt;br /&gt;
&lt;br /&gt;
* MD-CAN/DroneCAN - Param Files: (for ST MCU Version: FW Ver &amp;lt; 1.7)&lt;br /&gt;
** MD65MG - [http://support.hitecrcd.net:7700/files/Param/MD65MG-CAN-2021_09_06_01.csv MD65MG-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD70MH - [http://support.hitecrcd.net:7700/files/Param/MD70MH-CAN-2021_09_06_01.csv MD70MH-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD85MG - [http://support.hitecrcd.net:7700/files/Param/MD85MG-CAN-2021_09_28_01.csv MD85MG-CAN-2021_09_28_01.csv]&lt;br /&gt;
** MD89MW - [http://support.hitecrcd.net:7700/files/Param/MD89MW-CAN-2021_09_09_01.csv MD89MW-CAN-2021_09_09_01.csv]&lt;br /&gt;
** MD145SW - [http://support.hitecrcd.net:7700/files/Param/MD145SW-CAN-2021_09_06_01.csv MD145SW-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD245MW - [http://support.hitecrcd.net:7700/files/Param/MD245MW-CAN-2021_09_06_01.csv MD245MW-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD250MW - [http://support.hitecrcd.net:7700/files/Param/MD250MW-CAN-2021_09_06_01.csv MD250MW-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD940MW - [http://support.hitecrcd.net:7700/files/Param/MD940SW-CAN-2021_09_16_01.csv MD940SW-CAN-2021_09_16_01.csv]&lt;br /&gt;
** MD950MW - [http://support.hitecrcd.net:7700/files/Param/MD950TW-CAN-2021_11_28_02.csv MD950TW-CAN-2021_11_28_02.csv]&lt;br /&gt;
** Changed&lt;br /&gt;
*** Default Travel Range: +/- 60 deg&lt;br /&gt;
**** Reg 176 : 16300 -&amp;gt; 10922&lt;br /&gt;
**** Reg 178 : 91 -&amp;gt; 5462&lt;br /&gt;
*** PID Values changed for Ver 1.5(2)+&lt;br /&gt;
&lt;br /&gt;
* SG50-CAN/DroneCAN - Param File: (for ST MCU Version: FW Ver &amp;lt; 1.7)&lt;br /&gt;
** 24V - [http://support.hitecrcd.net:7700/files/Param/PARAM_SG50CAN_2021_11_23_01.csv PARAM_SG50CAN_2021_11_23_01.csv]&lt;br /&gt;
*** Changed&lt;br /&gt;
**** Default Travel Range: +/- 60 deg&lt;br /&gt;
***** Reg 176 : 16300 -&amp;gt; 10922&lt;br /&gt;
***** Reg 178 : 91 -&amp;gt; 5462&lt;br /&gt;
&lt;br /&gt;
* SG33-CAN/DroneCAN - Param File: (for ST MCU Version: FW Ver &amp;lt; 1.7)&lt;br /&gt;
** 12V, Torque Type - [http://support.hitecrcd.net:7700/files/Param/PARAM_SG33CAN_2021_09_07_01.csv PARAM_SG33CAN_2021_09_07_01.csv]&lt;br /&gt;
*** Changed&lt;br /&gt;
**** Default Travel Range: +/- 60 deg&lt;br /&gt;
***** Reg 176 : 16300 -&amp;gt; 10922&lt;br /&gt;
***** Reg 178 : 91 -&amp;gt; 5462&lt;br /&gt;
**** PID Values changed for Ver 1.5(2)&lt;br /&gt;
***** Reg 138 : 3700 -&amp;gt; 3700&lt;br /&gt;
***** Reg 140 : 50 -&amp;gt; 0&lt;br /&gt;
***** Reg 142 : 0 -&amp;gt; 0&lt;br /&gt;
***** Reg 144 : 0 -&amp;gt; 550&lt;br /&gt;
&lt;br /&gt;
* Note:&lt;br /&gt;
** FW Ver 1.5(2) 미만에서 1.5(2) 이상으로 FW 업데이트하고, Param Write 작업을 한 이후에는,&lt;br /&gt;
** FW Ver 1.5(2) 미만으로 되돌리는 경우에는 동작이 이상하게 될 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.5(2) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== MD ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_MD2_B2_CAN_20_21_09_06_01_V_11_05_02.xhy App_MD2_B2_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_MD2_B2_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_MD2_B2_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
==== SG50 ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG50_CAN_20_21_09_06_01_V_11_05_02.xhy App_SG50_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG50_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_SG50_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
==== SG33 ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG33_CAN_20_21_09_06_01_V_11_05_02.xhy App_SG33_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG33_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_SG33_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
==== SG20 / MDB961WP ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG20_CAN_20_21_09_06_01_V_11_05_02.xhy App_SG20_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG20_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_SG20_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(2) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== Caution for DroneCAN ====&lt;br /&gt;
&lt;br /&gt;
* 1.6(2) 미만에서는 RUN MODE 가 무시되었지만, 1.6(2) 에서 RUN MODE 에 따라 MULTI-TURN 이 가능하게 되므로, RUN MODE 를 반드시 확인하기 바랍니다.&lt;br /&gt;
** [http://support.hitecrcd.net:7700/index.php/CanServo/MODE/RUN RUN MODE]&lt;br /&gt;
* Under 1.6(2), RUN MODE is ignored, but in 1.6(2), MULTI-TURN is enabled according to RUN MODE, so be sure to check RUN MODE.&lt;br /&gt;
** [http://support.hitecrcd.net:7700/index.php/CanServo/MODE/RUN/en RUN MODE/en]&lt;br /&gt;
&lt;br /&gt;
==== MD ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_10_11_01_V1.6(2)/App_MD2_B2_CAN_20_22_10_11_01_V_11_06_02.zip App_MD2_B2_CAN_20_22_10_11_01_V_11_06_02.zip] - Ver 1.6(2) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_10_11_01_V1.6(2)/App_MD2_B2_UAVCAN_20_22_10_11_01_V_21_06_02.zip App_MD2_B2_UAVCAN_20_22_10_11_01_V_21_06_02.zip] - Ver 1.6(2) /U&lt;br /&gt;
&lt;br /&gt;
==== SG33 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_12_28_01_V1.6(2)/App_SG33_CAN_20_22_12_28_01_V_11_06_02.zip App_SG33_CAN_20_22_12_28_01_V_11_06_02.zip] - Ver 1.6(2) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_12_28_01_V1.6(2)/App_SG33_UAVCAN_20_22_12_28_01_V_21_06_02.zip App_SG33_UAVCAN_20_22_12_28_01_V_21_06_02.zip] - Ver 1.6(2) /U&lt;br /&gt;
&lt;br /&gt;
==== SG20 / MDB961WP ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_23_03_23_31_V1.6(2)/App_SG20_CAN_20_23_03_23_31_V_11_06_02.zip App_SG20_CAN_20_23_03_23_31_V_11_06_02.zip] - Ver 1.6(2) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_23_03_23_31_V1.6(2)/App_SG20_UAVCAN_20_23_03_23_31_V_21_06_02.zip App_SG20_UAVCAN_20_23_03_23_31_V_21_06_02.zip] - Ver 1.6(2) /U&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(3) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== SG33 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_24_04_02_01_V1.6(3)/App_SG33_CAN_20_24_04_02_01_V_11_06_03.zip App_SG33_CAN_20_24_04_02_01_V_11_06_03.zip] - Ver 1.6(3) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_23_06_09_01_V1.6(3)/App_SG33_UAVCAN_20_23_06_09_01_V_21_06_03.zip App_SG33_UAVCAN_20_23_06_09_01_V_21_06_03.zip] - Ver 1.6(3) /U&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(4) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
* NOTE: Reg 0x60 Velocity Target added. Set this reg with value of Velocity Max (reg 0x54)&lt;br /&gt;
&lt;br /&gt;
==== SG50 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_SG50_CAN,UAVCAN_20_24_11_08_01_V1.6(4).zip App_SG50_CAN,UAVCAN_20_24_11_08_01_V1.6(4).zip] - Ver 1.6(4) /C /U&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(5) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== SG50 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_SG50_CAN,UAVCAN_20_25_08_20_01_V1.6(5).zip App_SG50_CAN,UAVCAN_20_25_08_20_01_V1.6(5).zip] - Ver 1.6(5) /C /U&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/FW_Files/en&amp;diff=1970</id>
		<title>CanServo/FW Files/en</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/FW_Files/en&amp;diff=1970"/>
		<updated>2026-05-06T01:27:41Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* CAN / DroneCAN Servo Protocol */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== NOTE ==&lt;br /&gt;
&lt;br /&gt;
* These files for manual update only.&lt;br /&gt;
* &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;주의: 이곳의 파일이 최신이 아닐수 있으며, 서보에는 다른 FW 나 Param 가 들어가 있을수 있습니다.&amp;lt;/p&amp;gt;&lt;br /&gt;
* &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;NOTE: The file here may not be the latest, and the servo may contain other FW or Param.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Manual ==&lt;br /&gt;
&lt;br /&gt;
=== CAN / DroneCAN Servo Protocol ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Manual/HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_5.pdf HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_5.pdf] - FW Ver 1.4 to 2.3(5) - 260323&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Manual/HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_5.pdf HiTEC_CAN_DroneCAN(UAVCANv0)_SERVO_protocol_ENG_manual_v2_6.pdf] - FW Ver 1.4 to 2.3(5) - 260506&lt;br /&gt;
** Motor Temper. Deg Value - Register Fixed&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
&lt;br /&gt;
=== AIO (All in one) UI ===&lt;br /&gt;
&lt;br /&gt;
* AIO UI ?&lt;br /&gt;
** &amp;quot;All&amp;quot; is include config, simple test, param list, fw update.&lt;br /&gt;
&lt;br /&gt;
* Versions&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_06_15_01.zip 2023-06-15]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_07_28_01.zip 2023-07-28]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_08_30_01.zip 2023-08-30] - include FW Ver 2.2 functions&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2023_10_05_01.zip 2023-10-05] - include FW Ver 2.3 functions&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2025_05_14_02-exe.zip 2025-05-14] - Param Window: button: save param to file&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2025_11_13_01-exe.zip 2025-11-13]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2025_11_14_01-exe.zip 2025-11-14] - Retry if read reg operation fails&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN-AIO-UI-2026_01_06_01-exe.zip 2026-01-06] - include FW Ver 2.3(2) functions&lt;br /&gt;
&lt;br /&gt;
* Download file and unzip, run exe&lt;br /&gt;
* DotNet framework 4 needed&lt;br /&gt;
&lt;br /&gt;
* Manual&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/PDF/CAN-UI-2022_07_15.pdf AIO-UI-MANUAL-220715]&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/PDF/CAN-UI-Write-Param-CAN-AT-2025_11_13_01.pdf AIO-UI-WRITE-PARAM-MANUAL-251113]&lt;br /&gt;
&lt;br /&gt;
=== Config &amp;amp; Test UI ===&lt;br /&gt;
&lt;br /&gt;
* HITEC-CAN-SERVO-CONFIG-2023_04_11_01.exe&lt;br /&gt;
** http://support.hitecrcd.net:7700/files/UI/HITEC-CAN-SERVO-CONFIG-2023_04_11_01.zip&lt;br /&gt;
* HITEC-CAN-SERVO-CONFIG-2023_09_11_01.exe - added option &amp;quot;Write Message Type&amp;quot;&lt;br /&gt;
** http://support.hitecrcd.net:7700/files/UI/HITEC-CAN-SERVO-CONFIG-2023_09_11_01.zip&lt;br /&gt;
* HITEC-CAN-SERVO-CONFIG-2024_12_18_01.exe - Velocity Target&lt;br /&gt;
** http://support.hitecrcd.net:7700/files/UI/HITEC-CAN-SERVO-CONFIG-2024_12_18_01.zip&lt;br /&gt;
&lt;br /&gt;
* Process&lt;br /&gt;
** Download and Unzip&lt;br /&gt;
** DotNet framework 4 needed&lt;br /&gt;
&lt;br /&gt;
=== App FW Update UI ===&lt;br /&gt;
&lt;br /&gt;
* The product platform can be identified by its firmware version.&lt;br /&gt;
** ST MCU: FW Ver &amp;lt; 1.7&lt;br /&gt;
** AT MCU: FW Ver &amp;gt;= 1.7 and FW Ver &amp;lt; 2.5&lt;br /&gt;
* FW Update&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN_UPDATE_V2-2022_09_14_01.zip CAN_UPDATE_V2-2022_09_14_01.zip]&lt;br /&gt;
** Manual&lt;br /&gt;
*** [http://support.hitecrcd.net:7700/files/PDF/CAN-SERVO-FIRMWARE-UPDATE-PROGRAM-2020_06_23_01.pdf CAN-SERVO-FIRMWARE-UPDATE-PROGRAM-2020_06_23_01.pdf]&lt;br /&gt;
** Note: ST MCU Platform&lt;br /&gt;
*** FW Ver 1.6(4) - (Reg 0x60) Velocity Target - Set this value with Velocity Max (Reg 0x54)&lt;br /&gt;
*** FW Ver 1.6(2) DroneCAN - Under 1.6(2), RUN MODE is ignored, but in 1.6(2), MULTI-TURN is enabled according to RUN MODE, so be sure to check RUN MODE&lt;br /&gt;
*** FW Ver 1.5(2) - After writing the new parameter file, downgrading below this version may result in different behavior.&lt;br /&gt;
*** FW Ver 1.3 - Unit of Velocity Max is posdiff/100msec. The unit is posdiff/msec below this version.&lt;br /&gt;
&lt;br /&gt;
=== DotNet framework 4 ===&lt;br /&gt;
* https://www.microsoft.com/en-us/download/details.aspx?id=24872 - client version&lt;br /&gt;
* https://dotnet.microsoft.com/en-us/download/dotnet-framework/thank-you/net40-web-installer - web installer version&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT MCU Version ==&lt;br /&gt;
&lt;br /&gt;
* AT Version&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.2 ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_23_09_07_01_V4.2.zip App_ATcanServo_20_23_09_07_01_V4.2.zip] - Ver 2.2 /A&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.3 ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_23_10_05_01_V4.3.zip App_ATcanServo_20_23_10_05_01_V4.3.zip] - Ver 2.3 /A&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.3(1) ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_24_01_02_01_V4.3(1).zip App_ATcanServo_20_24_01_02_01_V4.3(1).zip] - Ver 2.3(1) /A&lt;br /&gt;
&lt;br /&gt;
=== Ver 2.3(2) ===&lt;br /&gt;
&lt;br /&gt;
* FW File&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_ATcanServo_20_24_07_03_01_V4.3(2)-0.zip App_ATcanServo_20_24_07_03_01_V4.3(2)-0.zip] - Ver 2.3(2) /A&lt;br /&gt;
&lt;br /&gt;
=== NOTE ===&lt;br /&gt;
&lt;br /&gt;
* When downloading, please use a CAN ID other than 0.&lt;br /&gt;
** ex) 0x7F0&lt;br /&gt;
&lt;br /&gt;
=== NOTE ===&lt;br /&gt;
&lt;br /&gt;
* When ID is not set&lt;br /&gt;
** If either Servo ID or Node ID is 0, the servo will periodically send a message with CAN ID = 0x7FF&lt;br /&gt;
&lt;br /&gt;
=== Param Files ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;Do not use param files of ST MCU Version&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FW Ver 2.3(2) ====&lt;br /&gt;
&lt;br /&gt;
* NOTE: When updating FW to version 2.3(2) or later, parameter updates are recommended for the following models.&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Param/PARAM-MD145SW_CAN_AT-2025_11_07_03_Pub.zip PARAM-MD145SW_CAN_AT-2025_11_07_03_Pub.zip]&lt;br /&gt;
* [http://support.hitecrcd.net:7700/files/Param/PARAM-MD250MW_CAN_AT-2025_08_13_01_Pub.zip PARAM-MD250MW_CAN_AT-2025_08_13_01_Pub.zip]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== ST MCU Version ==&lt;br /&gt;
&lt;br /&gt;
=== UI ===&lt;br /&gt;
&lt;br /&gt;
==== Parameter Writer ====&lt;br /&gt;
&lt;br /&gt;
* V2.1&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN_SERVO_FACTORY_PROGRAM_2020_05_13_01-V2.1.zip CAN_SERVO_FACTORY_PROGRAM_2020_05_13_01-V2.1.zip]&lt;br /&gt;
** Product&lt;br /&gt;
*** MDxxx-CAN/DroneCAN&lt;br /&gt;
*** SG50-CAN/DroneCAN&lt;br /&gt;
*** SG33-CAN/DroneCAN&lt;br /&gt;
&lt;br /&gt;
* V2.2&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/UI/CAN_SERVO_FACTORY_PROGRAM_2020_11_03_01-V2.2.zip CAN_SERVO_FACTORY_PROGRAM_2020_11_03_01-V2.2.zip]&lt;br /&gt;
** Product&lt;br /&gt;
*** SG15-CAN/DroneCAN&lt;br /&gt;
*** SG20-CAN/DroneCAN&lt;br /&gt;
*** MDB961-CAN/DroneCAN&lt;br /&gt;
*** MDB77x-CAN/DroneCAN&lt;br /&gt;
&lt;br /&gt;
* Note: Download zip file and unzip for exe&lt;br /&gt;
&lt;br /&gt;
=== Parameter Files ===&lt;br /&gt;
&lt;br /&gt;
* MD-CAN/DroneCAN - Param Files: (for ST MCU Version: FW Ver &amp;lt; 1.7)&lt;br /&gt;
** MD65MG - [http://support.hitecrcd.net:7700/files/Param/MD65MG-CAN-2021_09_06_01.csv MD65MG-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD70MH - [http://support.hitecrcd.net:7700/files/Param/MD70MH-CAN-2021_09_06_01.csv MD70MH-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD85MG - [http://support.hitecrcd.net:7700/files/Param/MD85MG-CAN-2021_09_28_01.csv MD85MG-CAN-2021_09_28_01.csv]&lt;br /&gt;
** MD89MW - [http://support.hitecrcd.net:7700/files/Param/MD89MW-CAN-2021_09_09_01.csv MD89MW-CAN-2021_09_09_01.csv]&lt;br /&gt;
** MD145SW - [http://support.hitecrcd.net:7700/files/Param/MD145SW-CAN-2021_09_06_01.csv MD145SW-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD245MW - [http://support.hitecrcd.net:7700/files/Param/MD245MW-CAN-2021_09_06_01.csv MD245MW-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD250MW - [http://support.hitecrcd.net:7700/files/Param/MD250MW-CAN-2021_09_06_01.csv MD250MW-CAN-2021_09_06_01.csv]&lt;br /&gt;
** MD940MW - [http://support.hitecrcd.net:7700/files/Param/MD940SW-CAN-2021_09_16_01.csv MD940SW-CAN-2021_09_16_01.csv]&lt;br /&gt;
** MD950MW - [http://support.hitecrcd.net:7700/files/Param/MD950TW-CAN-2021_11_28_02.csv MD950TW-CAN-2021_11_28_02.csv]&lt;br /&gt;
** Changed&lt;br /&gt;
*** Default Travel Range: +/- 60 deg&lt;br /&gt;
**** Reg 176 : 16300 -&amp;gt; 10922&lt;br /&gt;
**** Reg 178 : 91 -&amp;gt; 5462&lt;br /&gt;
*** PID Values changed for Ver 1.5(2)+&lt;br /&gt;
&lt;br /&gt;
* SG50-CAN/DroneCAN - Param File: (for ST MCU Version: FW Ver &amp;lt; 1.7)&lt;br /&gt;
** 24V - [http://support.hitecrcd.net:7700/files/Param/PARAM_SG50CAN_2021_11_23_01.csv PARAM_SG50CAN_2021_11_23_01.csv]&lt;br /&gt;
*** Changed&lt;br /&gt;
**** Default Travel Range: +/- 60 deg&lt;br /&gt;
***** Reg 176 : 16300 -&amp;gt; 10922&lt;br /&gt;
***** Reg 178 : 91 -&amp;gt; 5462&lt;br /&gt;
&lt;br /&gt;
* SG33-CAN/DroneCAN - Param File: (for ST MCU Version: FW Ver &amp;lt; 1.7)&lt;br /&gt;
** 12V, Torque Type - [http://support.hitecrcd.net:7700/files/Param/PARAM_SG33CAN_2021_09_07_01.csv PARAM_SG33CAN_2021_09_07_01.csv]&lt;br /&gt;
*** Changed&lt;br /&gt;
**** Default Travel Range: +/- 60 deg&lt;br /&gt;
***** Reg 176 : 16300 -&amp;gt; 10922&lt;br /&gt;
***** Reg 178 : 91 -&amp;gt; 5462&lt;br /&gt;
**** PID Values changed for Ver 1.5(2)&lt;br /&gt;
***** Reg 138 : 3700 -&amp;gt; 3700&lt;br /&gt;
***** Reg 140 : 50 -&amp;gt; 0&lt;br /&gt;
***** Reg 142 : 0 -&amp;gt; 0&lt;br /&gt;
***** Reg 144 : 0 -&amp;gt; 550&lt;br /&gt;
&lt;br /&gt;
* Note:&lt;br /&gt;
** FW Ver 1.5(2) 미만에서 1.5(2) 이상으로 FW 업데이트하고, Param Write 작업을 한 이후에는,&lt;br /&gt;
** FW Ver 1.5(2) 미만으로 되돌리는 경우에는 동작이 이상하게 될 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.5(2) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== MD ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_MD2_B2_CAN_20_21_09_06_01_V_11_05_02.xhy App_MD2_B2_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_MD2_B2_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_MD2_B2_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
==== SG50 ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG50_CAN_20_21_09_06_01_V_11_05_02.xhy App_SG50_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG50_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_SG50_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
==== SG33 ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG33_CAN_20_21_09_06_01_V_11_05_02.xhy App_SG33_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG33_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_SG33_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
==== SG20 / MDB961WP ====&lt;br /&gt;
&lt;br /&gt;
* FW File:&lt;br /&gt;
** CAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG20_CAN_20_21_09_06_01_V_11_05_02.xhy App_SG20_CAN_20_21_09_06_01_V_11_05_02.xhy]&lt;br /&gt;
** DroneCAN - [http://support.hitecrcd.net:7700/files/FW/20_21_09_06_01_V1.5(2)/App_SG20_UAVCAN_20_21_09_06_01_V_21_05_02.xhy App_SG20_UAVCAN_20_21_09_06_01_V_21_05_02.xhy]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(2) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== Caution for DroneCAN ====&lt;br /&gt;
&lt;br /&gt;
* 1.6(2) 미만에서는 RUN MODE 가 무시되었지만, 1.6(2) 에서 RUN MODE 에 따라 MULTI-TURN 이 가능하게 되므로, RUN MODE 를 반드시 확인하기 바랍니다.&lt;br /&gt;
** [http://support.hitecrcd.net:7700/index.php/CanServo/MODE/RUN RUN MODE]&lt;br /&gt;
* Under 1.6(2), RUN MODE is ignored, but in 1.6(2), MULTI-TURN is enabled according to RUN MODE, so be sure to check RUN MODE.&lt;br /&gt;
** [http://support.hitecrcd.net:7700/index.php/CanServo/MODE/RUN/en RUN MODE/en]&lt;br /&gt;
&lt;br /&gt;
==== MD ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_10_11_01_V1.6(2)/App_MD2_B2_CAN_20_22_10_11_01_V_11_06_02.zip App_MD2_B2_CAN_20_22_10_11_01_V_11_06_02.zip] - Ver 1.6(2) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_10_11_01_V1.6(2)/App_MD2_B2_UAVCAN_20_22_10_11_01_V_21_06_02.zip App_MD2_B2_UAVCAN_20_22_10_11_01_V_21_06_02.zip] - Ver 1.6(2) /U&lt;br /&gt;
&lt;br /&gt;
==== SG33 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_12_28_01_V1.6(2)/App_SG33_CAN_20_22_12_28_01_V_11_06_02.zip App_SG33_CAN_20_22_12_28_01_V_11_06_02.zip] - Ver 1.6(2) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_22_12_28_01_V1.6(2)/App_SG33_UAVCAN_20_22_12_28_01_V_21_06_02.zip App_SG33_UAVCAN_20_22_12_28_01_V_21_06_02.zip] - Ver 1.6(2) /U&lt;br /&gt;
&lt;br /&gt;
==== SG20 / MDB961WP ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_23_03_23_31_V1.6(2)/App_SG20_CAN_20_23_03_23_31_V_11_06_02.zip App_SG20_CAN_20_23_03_23_31_V_11_06_02.zip] - Ver 1.6(2) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_23_03_23_31_V1.6(2)/App_SG20_UAVCAN_20_23_03_23_31_V_21_06_02.zip App_SG20_UAVCAN_20_23_03_23_31_V_21_06_02.zip] - Ver 1.6(2) /U&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(3) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== SG33 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_24_04_02_01_V1.6(3)/App_SG33_CAN_20_24_04_02_01_V_11_06_03.zip App_SG33_CAN_20_24_04_02_01_V_11_06_03.zip] - Ver 1.6(3) /C&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/20_23_06_09_01_V1.6(3)/App_SG33_UAVCAN_20_23_06_09_01_V_21_06_03.zip App_SG33_UAVCAN_20_23_06_09_01_V_21_06_03.zip] - Ver 1.6(3) /U&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(4) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
* NOTE: Reg 0x60 Velocity Target added. Set this reg with value of Velocity Max (reg 0x54)&lt;br /&gt;
&lt;br /&gt;
==== SG50 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_SG50_CAN,UAVCAN_20_24_11_08_01_V1.6(4).zip App_SG50_CAN,UAVCAN_20_24_11_08_01_V1.6(4).zip] - Ver 1.6(4) /C /U&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ver 1.6(5) ===&lt;br /&gt;
&lt;br /&gt;
* ST Version&lt;br /&gt;
&lt;br /&gt;
==== SG50 ====&lt;br /&gt;
* FW&lt;br /&gt;
** [http://support.hitecrcd.net:7700/files/FW/App_SG50_CAN,UAVCAN_20_25_08_20_01_V1.6(5).zip App_SG50_CAN,UAVCAN_20_25_08_20_01_V1.6(5).zip] - Ver 1.6(5) /C /U&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1969</id>
		<title>CanServo/Protoco/T2-Message</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1969"/>
		<updated>2026-04-30T08:28:14Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* 개요 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 개요 ==&lt;br /&gt;
&lt;br /&gt;
* 여러 개의 T-Message 가 섞이는 경우, 수신 측에서 분석 실패가 발생할 수 있습니다.&lt;br /&gt;
** CRC16만으로는 16 비트 초과의 변질을 감지할 수 없습니다.&lt;br /&gt;
&lt;br /&gt;
* 완벽을 위한 필수 조건은 다음과 같습니다.&lt;br /&gt;
** 발신자 구분 = CAN ID를 통해서 구분&lt;br /&gt;
** 메시지마다 증가하는 시퀸스&lt;br /&gt;
** 패킷마다 증가하는 시퀸스&lt;br /&gt;
** 실제 전달하는 메시지의 길이&lt;br /&gt;
** 체크섬&lt;br /&gt;
*** 발신자 구분이 가능하면 CRC 16, 구분이 불가능하면, CRC32 사용 권장.&lt;br /&gt;
&lt;br /&gt;
* Format&lt;br /&gt;
** Message = L(2), crc(2 or 4), msg body(L byte)&lt;br /&gt;
** Packet = packet body(max 7), tail byte (begin/end flag, packet seq: 4 bit, msg seq: 2 bit)&lt;br /&gt;
*** packet seq 의 최상위 bit는 toggle flag 자리를 사용&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1968</id>
		<title>CanServo/Protoco/T2-Message</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1968"/>
		<updated>2026-04-30T08:26:00Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 개요 ==&lt;br /&gt;
&lt;br /&gt;
* 여러 개의 T-Message 가 섞이는 경우, 수신 측에서 분석하기가 힘듭니다.&lt;br /&gt;
** CRC16만으로는 16 비트 초과의 변질을 감지할 수 없습니다.&lt;br /&gt;
&lt;br /&gt;
* 완벽을 위한 필수 조건은 다음과 같습니다.&lt;br /&gt;
** 발신자 구분 = CAN ID를 통해서 구분&lt;br /&gt;
** 메시지마다 증가하는 시퀸스&lt;br /&gt;
** 패킷마다 증가하는 시퀸스&lt;br /&gt;
** 실제 전달하는 메시지의 길이&lt;br /&gt;
** 체크섬&lt;br /&gt;
*** 발신자 구분이 가능하면 CRC 16, 구분이 불가능하면, CRC32 사용 권장.&lt;br /&gt;
&lt;br /&gt;
* Format&lt;br /&gt;
** Message = L(2), crc(2 or 4), msg body(L byte)&lt;br /&gt;
** Packet = packet body(max 7), tail byte (begin/end flag, packet seq: 4 bit, msg seq: 2 bit)&lt;br /&gt;
*** packet seq 의 최상위 bit는 toggle flag 자리를 사용&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1967</id>
		<title>CanServo/Protoco/T2-Message</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1967"/>
		<updated>2026-04-30T08:25:41Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* 개요 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 개요 ==&lt;br /&gt;
&lt;br /&gt;
* 여러 개의 T-Message 가 섞이는 경우, 수신 측에서 분석하기가 힘듭니다.&lt;br /&gt;
** CRC16만으로는 16 비트 초과의 변질을 감지할 수 없습니다.&lt;br /&gt;
&lt;br /&gt;
* 완벽을 위한 필수 조건은 다음과 같습니다.&lt;br /&gt;
** 발신자 구분 = CAN ID를 통해서 구분&lt;br /&gt;
** 메시지마다 증가하는 시퀸스&lt;br /&gt;
** 패킷마다 증가하는 시퀸스&lt;br /&gt;
** 실제 전달하는 메시지의 길이&lt;br /&gt;
** 체크섬&lt;br /&gt;
*** 발신자 구분이 가능하면 CRC 16, 구분이 불가능하면, CRC32 사용 권장.&lt;br /&gt;
&lt;br /&gt;
* Format&lt;br /&gt;
** Message = L(2), crc(2 or 4), msg body(L byte)&lt;br /&gt;
** Packet = packet body(max 7), tail byte (begin/end flag, packet seq: 4 bit, msg seq: 2 bit)&lt;br /&gt;
*** packet seq 의 최상위 bit는 toggle flag 자리를 사용&lt;br /&gt;
** 발신자 구분이 가능하면 crc 16, 불가능하면 crc 32 사용&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1966</id>
		<title>CanServo/Protoco/T2-Message</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1966"/>
		<updated>2026-04-30T08:24:07Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* 개요 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 개요 ==&lt;br /&gt;
&lt;br /&gt;
* 여러 개의 T-Message 가 섞이는 경우, 수신 측에서 분석하기가 힘듭니다.&lt;br /&gt;
&lt;br /&gt;
* 완벽을 위한 필수 조건은 다음과 같습니다.&lt;br /&gt;
** 발신자 구분 = CAN ID를 통해서 구분&lt;br /&gt;
** 메시지마다 증가하는 시퀸스&lt;br /&gt;
** 패킷마다 증가하는 시퀸스&lt;br /&gt;
** 실제 전달하는 메시지의 길이&lt;br /&gt;
** 체크섬&lt;br /&gt;
*** 발신자 구분이 가능하면 CRC 16, 구분이 불가능하면, CRC32 사용 권장.&lt;br /&gt;
&lt;br /&gt;
* Format&lt;br /&gt;
** Message = L(2), crc(2 or 4), msg body(L byte)&lt;br /&gt;
** Packet = packet body(max 7), tail byte (begin/end flag, packet seq: 4 bit, msg seq: 2 bit)&lt;br /&gt;
*** packet seq 의 최상위 bit는 toggle flag 자리를 사용&lt;br /&gt;
** 발신자 구분이 가능하면 crc 16, 불가능하면 crc 32 사용&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1965</id>
		<title>CanServo/Protoco/T2-Message</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1965"/>
		<updated>2026-04-30T08:23:20Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 개요 ==&lt;br /&gt;
&lt;br /&gt;
* 여러 개의 T-Message 가 섞이는 경우, 수신 측에서 분석하기가 힘듭니다.&lt;br /&gt;
&lt;br /&gt;
* 완벽을 위한 필수 조건은 다음과 같습니다.&lt;br /&gt;
** 발신자 구분 = CAN ID를 통해서 구분&lt;br /&gt;
** 메시지마다 증가하는 시퀸스&lt;br /&gt;
** 패킷마다 증가하는 시퀸스&lt;br /&gt;
** 실제 전달하는 메시지의 길이&lt;br /&gt;
** 체크섬&lt;br /&gt;
*** 발신자 구분이 가능하면 CRC 16, 구분이 불가능하면, CRC32 사용 권장.&lt;br /&gt;
&lt;br /&gt;
* Format&lt;br /&gt;
** Message = L(2), crc16(2), msg body(L byte)&lt;br /&gt;
** Packet = packet body(max 7), tail byte (begin/end flag, packet seq: 4 bit, msg seq: 2 bit)&lt;br /&gt;
*** packet seq 의 최상위 bit는 toggle flag 자리를 사용&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1964</id>
		<title>CanServo/Protoco/T2-Message</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protoco/T2-Message&amp;diff=1964"/>
		<updated>2026-04-30T08:22:53Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: Created page with &amp;quot;== 개요 ==  * 여러 개의 T-Message 가 섞이는 경우, 수신 측에서 분석하기가 힘듭니다.  * 완벽에 가까운 조건은 다음과 같습니다. ** 발신...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 개요 ==&lt;br /&gt;
&lt;br /&gt;
* 여러 개의 T-Message 가 섞이는 경우, 수신 측에서 분석하기가 힘듭니다.&lt;br /&gt;
&lt;br /&gt;
* 완벽에 가까운 조건은 다음과 같습니다.&lt;br /&gt;
** 발신자 구분 = CAN ID를 통해서 구분&lt;br /&gt;
** 메시지마다 증가하는 시퀸스&lt;br /&gt;
** 패킷마다 증가하는 시퀸스&lt;br /&gt;
** 실제 전달하는 메시지의 길이&lt;br /&gt;
** 체크섬&lt;br /&gt;
*** 발신자 구분이 가능하면 CRC 16, 구분이 불가능하면, CRC32 사용 권장.&lt;br /&gt;
** Format&lt;br /&gt;
*** Message = L(2), crc16(2), msg body(L byte)&lt;br /&gt;
*** Packet = packet body(max 7), tail byte (begin/end flag, packet seq: 4 bit, msg seq: 2 bit)&lt;br /&gt;
**** packet seq 의 최상위 bit는 toggle flag 자리를 사용&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/V1.1&amp;diff=1963</id>
		<title>CanServo/Protocol/V1.1</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/V1.1&amp;diff=1963"/>
		<updated>2026-04-29T05:48:00Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* File Access */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Up ==&lt;br /&gt;
&lt;br /&gt;
* Up page: [[CanServo/Protocol/0]]&lt;br /&gt;
&lt;br /&gt;
== CAN Protocol Ver 1.1 ==&lt;br /&gt;
&lt;br /&gt;
* This protocol needs FW Ver 1.12+&lt;br /&gt;
&lt;br /&gt;
* All messages below are sent in T-Message format.&lt;br /&gt;
&lt;br /&gt;
* CAN ID&lt;br /&gt;
** 0x7FF : Servo -&amp;gt; Host&lt;br /&gt;
** 0x7FE : Host -&amp;gt; Servo&lt;br /&gt;
&lt;br /&gt;
=== UID ===&lt;br /&gt;
&lt;br /&gt;
* Message : Servo -&amp;gt; Host&lt;br /&gt;
** ZUID, &amp;lt;UID : 16 byte&amp;gt;, &amp;lt;ID2 : 4 byte&amp;gt;, &amp;lt;ID1 : 1 byte&amp;gt;, &amp;lt;CAN Mode : 1 byte&amp;gt;&lt;br /&gt;
** This message is sent periodically by the servo if either servo setting ID1 or ID2 is 0.&lt;br /&gt;
&lt;br /&gt;
* Message: Host -&amp;gt; Servo&lt;br /&gt;
** ZIDS, &amp;lt;UID : 16 byte&amp;gt;, &amp;lt;ID2 : 4 byte&amp;gt;&lt;br /&gt;
** ZIDS, &amp;lt;UID : 16 byte&amp;gt;, &amp;lt;ID2 : 4 byte&amp;gt;, &amp;lt;ID1 : 1 byte&amp;gt;&lt;br /&gt;
** ZIDS, &amp;lt;UID : 16 byte&amp;gt;, &amp;lt;ID2 : 4 byte&amp;gt;, &amp;lt;ID1 : 1 byte&amp;gt;, &amp;lt;CAN Mode : 1 byte&amp;gt;&lt;br /&gt;
** The servo with matching UID sets ID2, ID1, and CAN Mode depending on the length of the message.&lt;br /&gt;
&lt;br /&gt;
* This message is delivered using the MultiPacket method below.&lt;br /&gt;
&lt;br /&gt;
=== UID 2 ===&lt;br /&gt;
&lt;br /&gt;
* Message: Host -&amp;gt; Servo&lt;br /&gt;
** ZGUu - Get UID&lt;br /&gt;
*** ID2 (4), ID1 (1)&lt;br /&gt;
* Servo -&amp;gt; Host&lt;br /&gt;
** ZUID&lt;br /&gt;
&lt;br /&gt;
=== UID 3 ===&lt;br /&gt;
&lt;br /&gt;
* DATE: 2026_03_05&lt;br /&gt;
* Message: Host -&amp;gt; Servo&lt;br /&gt;
** ZIDG - Get ID-Mode by UID&lt;br /&gt;
*** UID(16)&lt;br /&gt;
* Servo -&amp;gt; Host&lt;br /&gt;
** ZUID&lt;br /&gt;
&lt;br /&gt;
=== Write/Read Register's bits by ID or UID ===&lt;br /&gt;
&lt;br /&gt;
* Protocol V2.1 로 대체 예정 (260403)&lt;br /&gt;
&lt;br /&gt;
* Message: Host -&amp;gt; Servo&lt;br /&gt;
** ZSuu - Set Register by UID&lt;br /&gt;
*** UID (16), ADDR (1), bit 0.5, bits (0.5), Value (2)&lt;br /&gt;
** ZGuu - Get Register by UID&lt;br /&gt;
*** UID (16), ADDR (1), bit 0.5, bits (0.5)&lt;br /&gt;
** ZXuu - Set/Get Register by UID&lt;br /&gt;
** ZSid - Set Register by ID&lt;br /&gt;
*** ID2 (4), ID1 (1), ADDR (1), bit 0.5, bits (0.5), Value (2)&lt;br /&gt;
** ZXid - Set/Get Register by ID&lt;br /&gt;
** ZGid - Get Register by ID&lt;br /&gt;
*** ID2 (4), ID1 (1), ADDR (1), bit 0.5, bits (0.5)&lt;br /&gt;
* Mesasge: Servo -&amp;gt; Host&lt;br /&gt;
** ZRuu - return register by UID&lt;br /&gt;
*** UID (16), ADDR (1), bit 0.5, bits (0.5), Value (2)&lt;br /&gt;
** ZRid - return register by ID&lt;br /&gt;
*** ID2 (4), ID1 (1), ADDR (1), bit 0.5, bits (0.5), Value (2)&lt;br /&gt;
&lt;br /&gt;
=== File Access ===&lt;br /&gt;
* ZFWU - Update 대상 FW 파일이름을 Host가 Servo에게 알리는 메시지&lt;br /&gt;
* ZGFL - Servo가 받은 파일이름을 &lt;br /&gt;
* ZSDF - Host가 받은 ZGFL 에 대한 응답&lt;br /&gt;
&lt;br /&gt;
* NOTE: ID2, ID1&lt;br /&gt;
&lt;br /&gt;
* Reg 276 bit 5:4 에 영향을 받는 메시지&lt;br /&gt;
** ZUID - Send UUID - 우리 프로토콜&lt;br /&gt;
** ZGFL&lt;br /&gt;
** ZMSG&lt;br /&gt;
** UAVCAN Send DNA -&lt;br /&gt;
&lt;br /&gt;
=== Message ===&lt;br /&gt;
&lt;br /&gt;
* ZMSG, id2: 4 byte, id1: 1 byte, level: 1 byte, msg&lt;br /&gt;
&lt;br /&gt;
=== History ===&lt;br /&gt;
==== 2026_03_05 ====&lt;br /&gt;
&lt;br /&gt;
* add ZIDG&lt;br /&gt;
&lt;br /&gt;
==== 2025_06_19 ====&lt;br /&gt;
&lt;br /&gt;
* Replace message by bug in ZRUU, ZRID&lt;br /&gt;
** ZSUU -&amp;gt; ZSuu&lt;br /&gt;
** ZXUU -&amp;gt; ZXuu&lt;br /&gt;
** ZGUU -&amp;gt; ZGuu&lt;br /&gt;
** ZRUU -&amp;gt; ZRuu&lt;br /&gt;
** ZSID -&amp;gt; ZSid&lt;br /&gt;
** ZXID -&amp;gt; ZXid&lt;br /&gt;
** ZGID -&amp;gt; ZGid&lt;br /&gt;
** ZRID -&amp;gt; ZRid&lt;br /&gt;
&lt;br /&gt;
== T-Message ==&lt;br /&gt;
&lt;br /&gt;
[[CanServo/Protocol/T-Message]]&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/V1.1&amp;diff=1962</id>
		<title>CanServo/Protocol/V1.1</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/V1.1&amp;diff=1962"/>
		<updated>2026-04-29T05:47:51Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* File Access */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Up ==&lt;br /&gt;
&lt;br /&gt;
* Up page: [[CanServo/Protocol/0]]&lt;br /&gt;
&lt;br /&gt;
== CAN Protocol Ver 1.1 ==&lt;br /&gt;
&lt;br /&gt;
* This protocol needs FW Ver 1.12+&lt;br /&gt;
&lt;br /&gt;
* All messages below are sent in T-Message format.&lt;br /&gt;
&lt;br /&gt;
* CAN ID&lt;br /&gt;
** 0x7FF : Servo -&amp;gt; Host&lt;br /&gt;
** 0x7FE : Host -&amp;gt; Servo&lt;br /&gt;
&lt;br /&gt;
=== UID ===&lt;br /&gt;
&lt;br /&gt;
* Message : Servo -&amp;gt; Host&lt;br /&gt;
** ZUID, &amp;lt;UID : 16 byte&amp;gt;, &amp;lt;ID2 : 4 byte&amp;gt;, &amp;lt;ID1 : 1 byte&amp;gt;, &amp;lt;CAN Mode : 1 byte&amp;gt;&lt;br /&gt;
** This message is sent periodically by the servo if either servo setting ID1 or ID2 is 0.&lt;br /&gt;
&lt;br /&gt;
* Message: Host -&amp;gt; Servo&lt;br /&gt;
** ZIDS, &amp;lt;UID : 16 byte&amp;gt;, &amp;lt;ID2 : 4 byte&amp;gt;&lt;br /&gt;
** ZIDS, &amp;lt;UID : 16 byte&amp;gt;, &amp;lt;ID2 : 4 byte&amp;gt;, &amp;lt;ID1 : 1 byte&amp;gt;&lt;br /&gt;
** ZIDS, &amp;lt;UID : 16 byte&amp;gt;, &amp;lt;ID2 : 4 byte&amp;gt;, &amp;lt;ID1 : 1 byte&amp;gt;, &amp;lt;CAN Mode : 1 byte&amp;gt;&lt;br /&gt;
** The servo with matching UID sets ID2, ID1, and CAN Mode depending on the length of the message.&lt;br /&gt;
&lt;br /&gt;
* This message is delivered using the MultiPacket method below.&lt;br /&gt;
&lt;br /&gt;
=== UID 2 ===&lt;br /&gt;
&lt;br /&gt;
* Message: Host -&amp;gt; Servo&lt;br /&gt;
** ZGUu - Get UID&lt;br /&gt;
*** ID2 (4), ID1 (1)&lt;br /&gt;
* Servo -&amp;gt; Host&lt;br /&gt;
** ZUID&lt;br /&gt;
&lt;br /&gt;
=== UID 3 ===&lt;br /&gt;
&lt;br /&gt;
* DATE: 2026_03_05&lt;br /&gt;
* Message: Host -&amp;gt; Servo&lt;br /&gt;
** ZIDG - Get ID-Mode by UID&lt;br /&gt;
*** UID(16)&lt;br /&gt;
* Servo -&amp;gt; Host&lt;br /&gt;
** ZUID&lt;br /&gt;
&lt;br /&gt;
=== Write/Read Register's bits by ID or UID ===&lt;br /&gt;
&lt;br /&gt;
* Protocol V2.1 로 대체 예정 (260403)&lt;br /&gt;
&lt;br /&gt;
* Message: Host -&amp;gt; Servo&lt;br /&gt;
** ZSuu - Set Register by UID&lt;br /&gt;
*** UID (16), ADDR (1), bit 0.5, bits (0.5), Value (2)&lt;br /&gt;
** ZGuu - Get Register by UID&lt;br /&gt;
*** UID (16), ADDR (1), bit 0.5, bits (0.5)&lt;br /&gt;
** ZXuu - Set/Get Register by UID&lt;br /&gt;
** ZSid - Set Register by ID&lt;br /&gt;
*** ID2 (4), ID1 (1), ADDR (1), bit 0.5, bits (0.5), Value (2)&lt;br /&gt;
** ZXid - Set/Get Register by ID&lt;br /&gt;
** ZGid - Get Register by ID&lt;br /&gt;
*** ID2 (4), ID1 (1), ADDR (1), bit 0.5, bits (0.5)&lt;br /&gt;
* Mesasge: Servo -&amp;gt; Host&lt;br /&gt;
** ZRuu - return register by UID&lt;br /&gt;
*** UID (16), ADDR (1), bit 0.5, bits (0.5), Value (2)&lt;br /&gt;
** ZRid - return register by ID&lt;br /&gt;
*** ID2 (4), ID1 (1), ADDR (1), bit 0.5, bits (0.5), Value (2)&lt;br /&gt;
&lt;br /&gt;
=== File Access ===&lt;br /&gt;
* ZFWU - Update 대상 FW 파일이름을 Host가 Servo에게 알리는 메시지&lt;br /&gt;
* ZGFL - Servo가 받은 파일이름을 &lt;br /&gt;
* ZSDF - Host가 받은 ZGFL 에 대한 응답&lt;br /&gt;
&lt;br /&gt;
* NOTE: ID2, ID1&lt;br /&gt;
&lt;br /&gt;
* 276 bit 5:4 에 영향을 받는 메시지&lt;br /&gt;
** ZUID - Send UUID - 우리 프로토콜&lt;br /&gt;
** ZGFL&lt;br /&gt;
** ZMSG&lt;br /&gt;
** UAVCAN Send DNA -&lt;br /&gt;
&lt;br /&gt;
=== Message ===&lt;br /&gt;
&lt;br /&gt;
* ZMSG, id2: 4 byte, id1: 1 byte, level: 1 byte, msg&lt;br /&gt;
&lt;br /&gt;
=== History ===&lt;br /&gt;
==== 2026_03_05 ====&lt;br /&gt;
&lt;br /&gt;
* add ZIDG&lt;br /&gt;
&lt;br /&gt;
==== 2025_06_19 ====&lt;br /&gt;
&lt;br /&gt;
* Replace message by bug in ZRUU, ZRID&lt;br /&gt;
** ZSUU -&amp;gt; ZSuu&lt;br /&gt;
** ZXUU -&amp;gt; ZXuu&lt;br /&gt;
** ZGUU -&amp;gt; ZGuu&lt;br /&gt;
** ZRUU -&amp;gt; ZRuu&lt;br /&gt;
** ZSID -&amp;gt; ZSid&lt;br /&gt;
** ZXID -&amp;gt; ZXid&lt;br /&gt;
** ZGID -&amp;gt; ZGid&lt;br /&gt;
** ZRID -&amp;gt; ZRid&lt;br /&gt;
&lt;br /&gt;
== T-Message ==&lt;br /&gt;
&lt;br /&gt;
[[CanServo/Protocol/T-Message]]&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/V1.1&amp;diff=1961</id>
		<title>CanServo/Protocol/V1.1</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/V1.1&amp;diff=1961"/>
		<updated>2026-04-29T05:35:54Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* File Access */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Up ==&lt;br /&gt;
&lt;br /&gt;
* Up page: [[CanServo/Protocol/0]]&lt;br /&gt;
&lt;br /&gt;
== CAN Protocol Ver 1.1 ==&lt;br /&gt;
&lt;br /&gt;
* This protocol needs FW Ver 1.12+&lt;br /&gt;
&lt;br /&gt;
* All messages below are sent in T-Message format.&lt;br /&gt;
&lt;br /&gt;
* CAN ID&lt;br /&gt;
** 0x7FF : Servo -&amp;gt; Host&lt;br /&gt;
** 0x7FE : Host -&amp;gt; Servo&lt;br /&gt;
&lt;br /&gt;
=== UID ===&lt;br /&gt;
&lt;br /&gt;
* Message : Servo -&amp;gt; Host&lt;br /&gt;
** ZUID, &amp;lt;UID : 16 byte&amp;gt;, &amp;lt;ID2 : 4 byte&amp;gt;, &amp;lt;ID1 : 1 byte&amp;gt;, &amp;lt;CAN Mode : 1 byte&amp;gt;&lt;br /&gt;
** This message is sent periodically by the servo if either servo setting ID1 or ID2 is 0.&lt;br /&gt;
&lt;br /&gt;
* Message: Host -&amp;gt; Servo&lt;br /&gt;
** ZIDS, &amp;lt;UID : 16 byte&amp;gt;, &amp;lt;ID2 : 4 byte&amp;gt;&lt;br /&gt;
** ZIDS, &amp;lt;UID : 16 byte&amp;gt;, &amp;lt;ID2 : 4 byte&amp;gt;, &amp;lt;ID1 : 1 byte&amp;gt;&lt;br /&gt;
** ZIDS, &amp;lt;UID : 16 byte&amp;gt;, &amp;lt;ID2 : 4 byte&amp;gt;, &amp;lt;ID1 : 1 byte&amp;gt;, &amp;lt;CAN Mode : 1 byte&amp;gt;&lt;br /&gt;
** The servo with matching UID sets ID2, ID1, and CAN Mode depending on the length of the message.&lt;br /&gt;
&lt;br /&gt;
* This message is delivered using the MultiPacket method below.&lt;br /&gt;
&lt;br /&gt;
=== UID 2 ===&lt;br /&gt;
&lt;br /&gt;
* Message: Host -&amp;gt; Servo&lt;br /&gt;
** ZGUu - Get UID&lt;br /&gt;
*** ID2 (4), ID1 (1)&lt;br /&gt;
* Servo -&amp;gt; Host&lt;br /&gt;
** ZUID&lt;br /&gt;
&lt;br /&gt;
=== UID 3 ===&lt;br /&gt;
&lt;br /&gt;
* DATE: 2026_03_05&lt;br /&gt;
* Message: Host -&amp;gt; Servo&lt;br /&gt;
** ZIDG - Get ID-Mode by UID&lt;br /&gt;
*** UID(16)&lt;br /&gt;
* Servo -&amp;gt; Host&lt;br /&gt;
** ZUID&lt;br /&gt;
&lt;br /&gt;
=== Write/Read Register's bits by ID or UID ===&lt;br /&gt;
&lt;br /&gt;
* Protocol V2.1 로 대체 예정 (260403)&lt;br /&gt;
&lt;br /&gt;
* Message: Host -&amp;gt; Servo&lt;br /&gt;
** ZSuu - Set Register by UID&lt;br /&gt;
*** UID (16), ADDR (1), bit 0.5, bits (0.5), Value (2)&lt;br /&gt;
** ZGuu - Get Register by UID&lt;br /&gt;
*** UID (16), ADDR (1), bit 0.5, bits (0.5)&lt;br /&gt;
** ZXuu - Set/Get Register by UID&lt;br /&gt;
** ZSid - Set Register by ID&lt;br /&gt;
*** ID2 (4), ID1 (1), ADDR (1), bit 0.5, bits (0.5), Value (2)&lt;br /&gt;
** ZXid - Set/Get Register by ID&lt;br /&gt;
** ZGid - Get Register by ID&lt;br /&gt;
*** ID2 (4), ID1 (1), ADDR (1), bit 0.5, bits (0.5)&lt;br /&gt;
* Mesasge: Servo -&amp;gt; Host&lt;br /&gt;
** ZRuu - return register by UID&lt;br /&gt;
*** UID (16), ADDR (1), bit 0.5, bits (0.5), Value (2)&lt;br /&gt;
** ZRid - return register by ID&lt;br /&gt;
*** ID2 (4), ID1 (1), ADDR (1), bit 0.5, bits (0.5), Value (2)&lt;br /&gt;
&lt;br /&gt;
=== File Access ===&lt;br /&gt;
* ZFWU&lt;br /&gt;
* ZGFL&lt;br /&gt;
* ZSDF&lt;br /&gt;
&lt;br /&gt;
* NOTE: ID2, ID1&lt;br /&gt;
&lt;br /&gt;
=== Message ===&lt;br /&gt;
&lt;br /&gt;
* ZMSG, id2: 4 byte, id1: 1 byte, level: 1 byte, msg&lt;br /&gt;
&lt;br /&gt;
=== History ===&lt;br /&gt;
==== 2026_03_05 ====&lt;br /&gt;
&lt;br /&gt;
* add ZIDG&lt;br /&gt;
&lt;br /&gt;
==== 2025_06_19 ====&lt;br /&gt;
&lt;br /&gt;
* Replace message by bug in ZRUU, ZRID&lt;br /&gt;
** ZSUU -&amp;gt; ZSuu&lt;br /&gt;
** ZXUU -&amp;gt; ZXuu&lt;br /&gt;
** ZGUU -&amp;gt; ZGuu&lt;br /&gt;
** ZRUU -&amp;gt; ZRuu&lt;br /&gt;
** ZSID -&amp;gt; ZSid&lt;br /&gt;
** ZXID -&amp;gt; ZXid&lt;br /&gt;
** ZGID -&amp;gt; ZGid&lt;br /&gt;
** ZRID -&amp;gt; ZRid&lt;br /&gt;
&lt;br /&gt;
== T-Message ==&lt;br /&gt;
&lt;br /&gt;
[[CanServo/Protocol/T-Message]]&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/0&amp;diff=1960</id>
		<title>CanServo/0</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/0&amp;diff=1960"/>
		<updated>2026-04-22T23:31:51Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* Issue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary of Manual ==&lt;br /&gt;
* [[CanServo/Manual/Summary/en | English]] / [[CanServo/Manual/Summary | Korean]]&lt;br /&gt;
&lt;br /&gt;
== Issue ==&lt;br /&gt;
=== I want move servo to center position ===&lt;br /&gt;
* [[CanServo/I want move servo to center position/en | English]] / [[CanServo/I want move servo to center position | Korean]]&lt;br /&gt;
=== Set Target Position ===&lt;br /&gt;
* [[CanServo/Set Target Position/en | English]] / [[CanServo/Set Target Position | Korean]]&lt;br /&gt;
=== Servo Control Protocol ===&lt;br /&gt;
* [[CanServo/Protocol/Control/en | English]] / [[CanServo/Protocol/Control | Korean]]&lt;br /&gt;
=== I want read Servo's poisition ===&lt;br /&gt;
* [[CanServo/ReadPosition/en | English]] / [[CanServo/ReadPosition | Korean]]&lt;br /&gt;
=== Save ===&lt;br /&gt;
* [[CanServo/Save/en | English]] / [[CanServo/Save | Korean]]&lt;br /&gt;
=== Reset ===&lt;br /&gt;
* [[CanServo/Reset/en | English]] / [[CanServo/Reset | Korean]]&lt;br /&gt;
== CAN Network ==&lt;br /&gt;
* [[CAN/StubLength]] - Cable Length&lt;br /&gt;
&lt;br /&gt;
== DroneCAN ==&lt;br /&gt;
=== Protocol ===&lt;br /&gt;
* [[CanServo/Protocol/UAVCAN/en | English]] / [[CanServo/Protocol/UAVCAN | Korean]]&lt;br /&gt;
=== Setup Node ID, Actuator ID ===&lt;br /&gt;
* [[CanServo/ID/modes/en | English]] / [[CanServo/ID/modes | Korean]]&lt;br /&gt;
=== float16 type ===&lt;br /&gt;
* [[type/float16/en | English]] / [[type/float16 | Korean]]&lt;br /&gt;
=== Param Service ===&lt;br /&gt;
* [[CanServo/DroneCAN/ParamService/List/en | English]]&lt;br /&gt;
=== Read/Write Register ===&lt;br /&gt;
* [[CanServo/Protocol/DroneCAN/ReadWriteRegister/en | English]] / [[CanServo/Protocol/DroneCAN/ReadWriteRegister | Korean]]&lt;br /&gt;
&lt;br /&gt;
=== Position Min/Mid/Max ===&lt;br /&gt;
&lt;br /&gt;
* [[CanServo/DroneCAN/PositionMinMidMax/en | English ]] / [[CanServo/DroneCAN/PositionMinMidMax | Korean ]]&lt;br /&gt;
&lt;br /&gt;
=== Multi Turn ===&lt;br /&gt;
&lt;br /&gt;
* [[CanServo/DroneCAN/Multi-Turn/en | English ]] / [[CanServo/DroneCAN/Multi-Turn | Korean]]&lt;br /&gt;
&lt;br /&gt;
== FW ==&lt;br /&gt;
* FW File Types - [[CanServo/FW Type/en | English]] / [[CanServo/FW Type | Korean]]&lt;br /&gt;
* XHY: FW File Extension - [[CanServo/XHY/en | English]] / [[CanServo/XHY | Korean]]&lt;br /&gt;
* FW Version Value - [[CanServo/FW Version Value/en | English]] / [[CanServo/FW Version Value | Korean]]&lt;br /&gt;
* FW History - [[CanServo/History | English]]&lt;br /&gt;
* FW Files - [[CanServo/FW Files/en | FW Files]]&lt;br /&gt;
&lt;br /&gt;
* CRC16 - [[Code/CRC16]]&lt;br /&gt;
&lt;br /&gt;
== Bootloader ==&lt;br /&gt;
* Bootloader Types - [[CanServo/Bootloader/Types/en | English]] / [[CanServo/Bootloader/Types | Korean]]&lt;br /&gt;
* Enter to Bootloader - [[CanServo/Bootloader/Enter/en | English]] / [[CanServo/Bootloader/Enter | Korean]]&lt;br /&gt;
* Switch to Bootloader - [[CanServo/Bootloader/Switch/en | English]] / [[CanServo/Bootloader/Switch | Korean]]&lt;br /&gt;
* Update FW all servo connected - [[CanServo/FW/Update/Connected/en | English]] / [[CanServo/FW/Update/Connected | Korean]]&lt;br /&gt;
&lt;br /&gt;
== Product Info ==&lt;br /&gt;
* Product No - [[CanServo/Product No/en | English]] - [[CanServo/Product No | Korean]]&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Concept/Stream&amp;diff=1959</id>
		<title>CanServo/Concept/Stream</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Concept/Stream&amp;diff=1959"/>
		<updated>2026-04-16T05:14:06Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* Stream B */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Stream B ==&lt;br /&gt;
&lt;br /&gt;
* 주소 256 이상의 Stream B가 추가되었습니다.&lt;br /&gt;
&lt;br /&gt;
* Stream B의 활성화는 Stream Mode = On 에 추가적으로&lt;br /&gt;
** Setup_EX / StreamB / Enable = On 까지 되어야 활성화 됩니다.&lt;br /&gt;
&lt;br /&gt;
* 기존 Stream, 새로 추가된 Stream B는 상호 연동없이 개별적으로 작동합니다.&lt;br /&gt;
** 기존 Stream은, 설정된 주소가 없으면 기본 항목 (Position, Turn Count 등)을 발신합니다. (기능 변경 없음)&lt;br /&gt;
** Stream B는, 설정된 주소가 없으면 아무 것도 발신하지 않습니다.&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Concept/Stream&amp;diff=1958</id>
		<title>CanServo/Concept/Stream</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Concept/Stream&amp;diff=1958"/>
		<updated>2026-04-16T05:13:30Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* Stream B */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Stream B ==&lt;br /&gt;
&lt;br /&gt;
* 주소 256 이상의 Stream B가 추가되었습니다.&lt;br /&gt;
&lt;br /&gt;
* Stream B의 활성화는 Stream Mode = On 에 추가적으로&lt;br /&gt;
** Setup_EX / StreamB / Enable = On 까지 되어야 활성화 됩니다.&lt;br /&gt;
&lt;br /&gt;
* 기존 Stream, 새로 추가된 Stream B는 각각 작동합니다.&lt;br /&gt;
** 기존 Stream은, 설정된 주소가 없으면 기본 항목 (Position, Turn Count 등)을 발신합니다. (기능 변경 없음)&lt;br /&gt;
** Stream B는, 설정된 주소가 없으면 아무 것도 발신하지 않습니다.&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Concept/Stream&amp;diff=1957</id>
		<title>CanServo/Concept/Stream</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Concept/Stream&amp;diff=1957"/>
		<updated>2026-04-16T02:53:24Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* Stream B */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Stream B ==&lt;br /&gt;
&lt;br /&gt;
* 주소 256 이상의 Stream B가 추가되었습니다.&lt;br /&gt;
* 기존 256 미만의 Stream을 Stream A라고 지칭합니다.&lt;br /&gt;
&lt;br /&gt;
* Stream 전체 활성화는 Stream Mode = On&lt;br /&gt;
** Stram B는, 여기에, Setup_EX / StreamB / Enable = On 까지 되어야 활성화 됩니다.&lt;br /&gt;
&lt;br /&gt;
* Stream A, B는 각각 개별적으로 작동합니다.&lt;br /&gt;
** Stream A는, 설정된 주소가 없으면 기본 항목 (Position, Turn Count 등)이 전송됩니다.&lt;br /&gt;
** Stream B는, 설정된 주소가 없으면 아무 것도 전송하지 않습니다.&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Concept/Stream&amp;diff=1956</id>
		<title>CanServo/Concept/Stream</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Concept/Stream&amp;diff=1956"/>
		<updated>2026-04-16T02:53:06Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* Stream B */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Stream B ==&lt;br /&gt;
&lt;br /&gt;
* 주소 256 이상의 Stream B가 추가되었습니다.&lt;br /&gt;
* 기존 256 미만의 Stream을 Stream A라고 지칭합니다.&lt;br /&gt;
&lt;br /&gt;
* Stream 전체 활성화는 Stream Mode = On&lt;br /&gt;
** Stram B는, 여기에, Setup_EX / StreamB / Enable = On 까지 되어야 활성화 됩니다.&lt;br /&gt;
&lt;br /&gt;
* Stream A, B는 각각 개별적으로 작동합니다.&lt;br /&gt;
** Stream A는, 설정된 주소가 없으면 기본 항목 (위치, Turn Count등)이 전송됩니다.&lt;br /&gt;
** Stream B는, 설정된 주소가 없으면 아무 것도 전송하지 않습니다.&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Concept/Stream&amp;diff=1955</id>
		<title>CanServo/Concept/Stream</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Concept/Stream&amp;diff=1955"/>
		<updated>2026-04-16T02:01:11Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* Stream B */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Stream B ==&lt;br /&gt;
&lt;br /&gt;
* 주소 256 이상의 Stream B가 추가되었습니다.&lt;br /&gt;
* 기존 256 미만의 Stream을 Stream A라고 지칭합니다.&lt;br /&gt;
&lt;br /&gt;
* Stream 전체 활성화는 Stream Mode = On&lt;br /&gt;
** Stram B는, 여기에, Setup_EX / StreamB / Enable = On 까지 되어야 활성화 됩니다.&lt;br /&gt;
&lt;br /&gt;
* Stream A, B는 별도로 작동하며&lt;br /&gt;
** Stream A는, 설정된 주소가 없으면 기본 항목 (위치, Turn Count등)이 전송됩니다.&lt;br /&gt;
** Stream B는, 설정된 주소가 없으면 아무 것도 전송하지 않습니다.&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Concept/Stream&amp;diff=1954</id>
		<title>CanServo/Concept/Stream</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Concept/Stream&amp;diff=1954"/>
		<updated>2026-04-16T01:55:44Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* Stream B */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Stream B ==&lt;br /&gt;
&lt;br /&gt;
* 주소 256 이상의 Stream B가 추가되었습니다.&lt;br /&gt;
* 기존 256 미만의 Stream을 Stream A라고 지칭합니다.&lt;br /&gt;
&lt;br /&gt;
* Stream A는 기존 작동 원칙대로, 설정된 주소가 없으면, 기본 항목 (위치, Turn Count)등이 전송됩니다.&lt;br /&gt;
* Stream B는 설정된 주소가 없으면, 아무 것도 전송하지 않습니다.&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Concept/Stream&amp;diff=1953</id>
		<title>CanServo/Concept/Stream</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Concept/Stream&amp;diff=1953"/>
		<updated>2026-04-16T01:53:33Z</updated>

		<summary type="html">&lt;p&gt;Choiyh: /* Stream B */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Stream B ==&lt;br /&gt;
&lt;br /&gt;
* 주소 256 이상의 Stream B가 추가되었습니다.&lt;br /&gt;
* 기존 256 미만의 Stream을 Stream A라고 지칭합니다.&lt;br /&gt;
&lt;br /&gt;
* Stream A는 기존 작동 원칙대로, 설정된 주소가 없으면, 기본 항목 (위치, Turn Count)등이 전송됩니다.&lt;br /&gt;
* Stream B는 설정 내용이 없으면, 아무 것도 전송하지 않습니다.&lt;/div&gt;</summary>
		<author><name>Choiyh</name></author>
	</entry>
</feed>