Skip to content

Commit

Permalink
unified control table, preliminary watermark
Browse files Browse the repository at this point in the history
  • Loading branch information
ROBOTIS-Will committed Dec 19, 2018
1 parent 90e4100 commit c674775
Show file tree
Hide file tree
Showing 123 changed files with 974 additions and 1,281 deletions.
Original file line number Diff line number Diff line change
@@ -1,28 +1,67 @@
# [Control Table](#control-table)
The Control Table is a structure of data implemented in the device. Users can read a specific Data to get status of the device with Read Instruction Packets, and modify Data as well to control the device with WRITE Instruction Packets.

{% assign protocol= "Protocol 2.0" %}
{% assign data_size= "1 ~ 4" %}

{% if page.product_group=='dxl_pro_plus' %}
**WARNING** : PRO+ series use different Control Table from PRO series. Please pay attention when replacing PRO with PRO+.
{: .notice--warning}
{% assign torque_enable= "512" %}

{% elsif page.product_group=='dxl_pro_a' %}
**WARNING** : PRO(A) series use different Control Table from PRO series. Please pay attention when upgrading PRO to PRO(A).
{: .notice--warning}
{% assign torque_enable= "512" %}

{% elsif page.product_group=='dxl_pro' %}
{% assign torque_enable= "562" %}

{% elsif page.product_group=='dxl_mx2' %}
{% capture mx2_control_table %}
**CAUTION**
1. MX(2.0) Firmware is different from MX series' control table and address. Please check the control table address before usage.
2. MX(2.0) Firmware inherits Dynamixel X's function. Therefore, it supports [Protocol 1.0](/docs/en/dxl/protocol1/) and [Protocol 2.0](/docs/en/dxl/protocol2/), and various Operating Modes, Secondary ID, Drive Mode, Bus Watchdong, etc. Please refer to the control table for more details.
{% endcapture %}

<div class="notice--warning">{{ mx2_control_table | markdownify }}</div>
{% assign torque_enable= "64" %}

{% elsif page.product_group=='dxl_x' %}
{% assign torque_enable= "64" %}

{% elsif page.product_group=='dxl_xl320' %}
{% assign torque_enable= "24" %}
{% assign protocol= "Protocol 2.0" %}
{% assign data_size= "1 ~ 2" %}

{% elsif page.product_group=='dxl_ax' or page.product_group=='dxl_dx' or page.product_group=='dxl_ex' or page.product_group=='dxl_mx' or page.product_group=='dxl_rx' %}
{% assign torque_enable= "24" %}
{% assign protocol= "Protocol 1.0" %}
{% assign data_size= "1 ~ 2" %}

{% endif %}

## [Control Table, Data, Address](#control-table-data-address)
The Control Table is a structure that consists of multiple Data fields to store status or to control the device. Users can check current status of the device by reading a specific Data from the Control Table with Read Instruction Packets. WRITE Instruction Packets enable users to control the device by changing specific Data in the Control Table. The Address is a unique value when accessing a specific Data in the Control Table with Instruction Packets. In order to read or write data, users must designate a specific Address in the Instruction Packet. Please refer to [Protocol 2.0] for more details about Instruction Packets.
The Control Table is a structure that consists of multiple Data fields to store status or to control the device. Users can check current status of the device by reading a specific Data from the Control Table with Read Instruction Packets. WRITE Instruction Packets enable users to control the device by changing specific Data in the Control Table. The Address is a unique value when accessing a specific Data in the Control Table with Instruction Packets. In order to read or write data, users must designate a specific Address in the Instruction Packet. Please refer to [{{ protocol }}] for more details about Instruction Packets.

**NOTE** : Two's complement is applied for the negative value. For more information, please refer to [Two's complement] from Wikipedia.
{: .notice}

### [Area (EEPROM, RAM)](#area-eeprom-ram)
The Control Table is divided into 2 Areas. Data in the RAM Area is reset to initial values when the power is reset(Volatile). On the other hand, data in the EEPROM Area is maintained even when the device is powered off(Non-Volatile).
**Data in the EEPROM Area can only be written to if Torque Enable(512) is cleared to ‘0’(Off).**
**Data in the EEPROM Area can only be written to if Torque Enable({{ torque_enable }}) is cleared to ‘0’(Off).**

### [Size](#size)
The Size of data varies from 1 to 4 bytes depend on their usage. Please check the size of data when updating the data with an Instruction Packet. For data larger than 2 bytes will be saved according to [Little Endian].
The Size of data varies from {{ data_size }} bytes depend on their usage. Please check the size of data when updating the data with an Instruction Packet. For data larger than 2 bytes will be saved according to [Little Endian].

### [Access](#access)
The Control Table has two different access properties. ‘RW’ property stands for read and write access permission while ‘R’ stands for read only access permission. Data with the read only property cannot be changed by the WRITE Instruction. Read only property(‘R’) is generally used for measuring and monitoring purpose, and read write property(‘RW’) is used for controlling device.

### [Initial Value](#initial-value)
Each data in the Control Table is restored to initial values when the device is turned on. Default values in the EEPROM area are initial values of the device (factory default settings). If any values in the EEPROM area are modified by a user, modified values will be restored as initial values when the device is turned on. Initial Values in the RAM area are restored when the device is turned on.

[Protocol 1.0]: /docs/en/dxl/protocol1/
[Protocol 2.0]: /docs/en/dxl/protocol2/
[Two's complement]: https://en.wikipedia.org/wiki/Two%27s_complement
[Little Endian]: https://en.wikipedia.org/wiki/Endianness#Little
24 changes: 0 additions & 24 deletions _includes/en/dxl/control_table_protocol1.md

This file was deleted.

34 changes: 0 additions & 34 deletions _includes/en/dxl/control_table_protocol2.md

This file was deleted.

24 changes: 0 additions & 24 deletions _includes/en/dxl/control_table_protocol2_pro.md

This file was deleted.

12 changes: 6 additions & 6 deletions _includes/en/dxl/note_performance_graph.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
**NOTE** : The max torque measurement method for the Stall Torque and Performance Graph is different.
Stall torque is measured from the max torque that it can reach. This is generally how RC servos measure their torque.
For the Performance graph with the N-T curves, it is measured with the load gradually increasing.
The motor operation environment is closer to the performance graph, not stall torque method.
This is probably why the performance graph is being broadly used in the industrial market.
This is why the max torque of the performance grap can actually be less than the stall torque.
**NOTE** : The Max Torque and the Stall Torque of Performance Graph are different in measurement methods.
Stall torque is a measured value of the momentary torque that it can reach. This is generally how RC servos are measured.
The Performance graph is also called as N-T curves, which is measured with the gradually increasing load.
The actual motor operation environment is closer to the performance graph, not stall torque method.
For this reason, the performance graph is broadly used in the industrial field.
Generally, Max Torque of the Performance Graph is less than the Stall Torque.
{: .notice}

{% capture caution_power %}
Expand Down
12 changes: 6 additions & 6 deletions _includes/en/dxl/warning.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,17 @@
{% endcapture %}
<div class="notice--danger">{{ dxl_danger | markdownify }}</div>

{% if page.ref contains 'ax' or page.ref contains 'dx' or page.ref contains 'ex' or page.ref contains 'rx' %}
{% if page.product_group=='dxl_ax' or page.product_group=='dxl_dx' or page.product_group=='dxl_ex' or page.product_group=='dxl_rx' %}
{% assign target_file = 'dxl_info' %}
{% elsif page.ref contains 'mx' %}
{% elsif page.product_group=='dxl_mx' %}
{% assign target_file = 'dxl_mx_info' %}
{% elsif page.ref contains 'h54p' or page.ref contains 'h42p' %}
{% elsif page.product_group=='dxl_pro_plus' %}
{% assign target_file = 'dxl_pro_plus_info' %}
{% elsif page.ref contains 'ra' %}
{% elsif page.product_group=='dxl_pro_a' %}
{% assign target_file = 'dxl_proa_info' %}
{% elsif page.ref contains '-s' %}
{% elsif page.product_group=='dxl_pro' %}
{% assign target_file = 'dxl_pro_info' %}
{% elsif page.ref contains 'xl' or page.ref contains 'xm' or page.ref contains 'xh' %}
{% elsif page.product_group=='dxl_x' or page.product_group=='dxl_xl320' %}
{% assign target_file = 'dxl_x_info' %}
{% else %}
{% endif %}
Expand Down
Loading

0 comments on commit c674775

Please sign in to comment.